Mimikatz之DPAPI学习与实践

栏目: 编程工具 · 发布时间: 6年前

内容简介:​ 本文就讲解下Windows下的DPAPI,并且利用mimikatz来解密那些由DPAPI加密的文件。本文使用mimikatz版本2.1.1-20180820,Chrome 版本68.0.3440.106 (Official Build) (64-bit)。​ DPAPI 英文全称:Data Protection API ,顾名思义就是用来保护数据的接口。这个接口在windows中大量的使用来加密数据,比如chrome的cookies和login data。

Mimikatz之DPAPI学习与实践

0x00 前言

​ 本文就讲解下Windows下的DPAPI,并且利用mimikatz来解密那些由DPAPI加密的文件。本文使用mimikatz版本2.1.1-20180820,Chrome 版本68.0.3440.106 (Official Build) (64-bit)。

0x01 什么是DPAPI

​ DPAPI 英文全称:Data Protection API ,顾名思义就是用来保护数据的接口。这个接口在windows中大量的使用来加密数据,比如chrome的cookies和login data。

​ 更多的详情可以看 这篇文章 。 在这里我大致的把这篇文章总结下也是更加详细的介绍DPAPI:

​ 1.DPAPI 使用了叫做 Master Key 的东西,用来解密和加密。 Master Key 并不会存在在磁盘上,是通过用户的密码HASH加密生成。

​ 2. Master Key 的第一种实现方式用用户NTLM Hash来加密。由于NTLM Hash在Windows中有着各种重要的作用,而且NTLM Hash是存储在SAM文件中,只要攻击者获取到Hash就可以用来生成 Master Key 来解密数据了。所以为了防止这样的事,就有了第二种:直接用用户密码生成,函数: SHA‑1(UTF16LE(user_password))

就算攻击者获取到NTLM,如果不能解密出用户的密码不能生成 Master Key

​ 3.文章中还提到了 ARSOTBAL 。ARSO 英文全称:Automatic Restart Sign-On 。TBAL 文中作者猜测AL是Auto Logon,不清楚TB什么意思。但是评论中有个猜测是Trusted Boot Auto Logon。都是在WIndows 8和Windows 10中才添加的新特性,就是保存了用户会话,恢复到重启之前的状态,也就是在重启之前密码都保存在磁盘中,具体可以看看文章的详细说明。

​ 4.视频演示了整个过程,关闭虚拟机,通过挂载磁盘的方式,来读取security与system文件获取TBAL中保存的SHA1 HASH,之后通过这个HASH与用户的GUID就可以解密得到 Master Key 。其中也有这样一句话: but if it were a real computer, imagine physically connecting the HDD to your machine. 所以~~

微软 官方文章 更加详细介绍了生成 Master key 与加密 Master Key ,及怎么备份。而上面第四步就是解密,我这里利用一个在线 工具 演示下生成 Matser key

Mimikatz之DPAPI学习与实践

0x02 DPAPI的利用

1.Chrome Cookies/Login Data

本地用户登录时,解密Cookies:

dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect

Mimikatz之DPAPI学习与实践

如果通过某些方式从其它电脑获取到cookie到本地:

先执行上面这条命令看看,会报错:

Mimikatz之DPAPI学习与实践

提示需要GUID {219d25e6-27f5-4754-8bcb-2aa77df53b68} 这个用户的 Master key 才能解密,所以在你拿回这个cookie文件时,要把那个机器的masterkey导出一下,两个命令 privilege::debug sekurlsa::dpapi

Mimikatz之DPAPI学习与实践

接下来就 dpapi::chrome /in:"c:tempCookies" /masterkey:上图的masterkey值 /unprotect

Mimikatz之DPAPI学习与实践

而如果是域用户的话,是由域用户的master key就是由域的DPAPI key来保护的, lsadump::backupkeys /system:DC CONTROLLER /export 会得到一个PVK文件,可以用来解密所有域用户的Master Key,而且这个key是不会改变的。 dpapi::masterkey /in:"C:UsersxxxxxAppDataRoamingMicrosoftProtectsid值ca748af3–8b95–40ae-8134-cb9534762688" /pvk:导出的PVK文件 这里就可以解密得到域用户的Master Key值。然后跟上面一样 dpapi::chrome /in:Cookies /masterkey:a3fv34aedd7... ,这样就能解密Cookies的内容了。

导出pvk:

Mimikatz之DPAPI学习与实践

利用PVK解密得到masterkey值,后面一样解密就是了:

Mimikatz之DPAPI学习与实践

解密保存的密码跟上面类似,把传入文件改成login data:

Mimikatz之DPAPI学习与实践

2.Rdg 文件

最新release版本添加了解密rdg的功能,windows中 C:WindowsSystem32configsystemprofileAppDataLocalMicrosoftCredentialsxxx 中保存的信息与WIFI密码的保存都是利用了DPAPI来加密:

Mimikatz之DPAPI学习与实践

先向DC进行RPC查询出key,利用key, dpapi::cred /in:C:UsersxxAppDataLocalMicrosoftCredentialsxxxxx /unprotect /masterkey:X 解密Credentials下保存的凭据:

Mimikatz之DPAPI学习与实践

0X03 总结

现在mimikatz功能越来越多,并不是所有功能都会在当时的渗透环境中使用,其实大家完全可以把其中每个模块单独分出来用,这样体积可以减少,而且还可以过下静态查杀。windows下还有很多接口是MSDN中没有文档或者很少文档的,很多大佬应该都FUZZ出来一些了。可以看看这位 BLOG 经常有windows的一些TRICKS。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

超预期

超预期

[美] 莱昂纳多·因基莱里、迈卡·所罗门 / 杨波 / 后浪丨江西人民出版社 / 2017-11 / 45.00元

用户体验决定产品成败,只有超预期才能赢得好口碑! 互联网大佬一致推崇的打造爆款产品及服务的核心理念 ................... ※编辑推荐※ ☆ 超预期,才有用户体验,互联网大佬一致推崇的打造爆款产品及服务的核心理念 - 周鸿祎:“什么叫用户体验?超过用户预期才叫 体验!” - 雷军:“口碑的真谛是超越用户的期望值。” - 马化腾:“用户体验,......一起来看看 《超预期》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码