域渗透中的DPAPI和Kerberos协议

内网渗透的本质就是信息收集

常见的敏感信息:

  • 用户账户密码
  • Windows登录凭据
  • 浏览器中保存的密码、Cookies
  • Wifi账户密码
  • 远程登录记录的账户密码

以上这些数据,总是离不开DPAPIKerberos协议

我们先来了解一下DPAPI

有兴趣的可以看下这篇文章,跟着做一遍
抓取Chrome所有版本密码

DPAPI架构

DPAPI提供了两个用户态接口:
加密数据CryptProtectData
解密数据CryptUnprotectData

实际上,在老版本(80之前)的谷歌浏览器,仅仅是使用了CryptProtectMemory来对密码进行加密

加密后的数据由应用程序负责安全存储,应用无需解析加密后的数据格式,但是加密后的数据存储需要一定的机制,因为该数据可以被其他任何进程用来解密。
当然CryptProtectData也提供了用户输入额外数据来对用户数据进行加密的参数,但依然无法防止暴力破解。

域渗透中的DPAPI和Kerberos协议_第1张图片

DPAPI加密机制

域渗透中的DPAPI和Kerberos协议_第2张图片

MasterKeyFile文件结构

域渗透中的DPAPI和Kerberos协议_第3张图片

DPAPI的利用

获取MasterKey:

  1. 注入lsass进程,从内存中读取MasterKey,也可以dump lsass进程离线读
  2. 从注册表中获取(HKLM\SYSTEM、HKLM\SECURITY)
  3. 解密MasterKeyFile

域用户的MasterKey是由域DPAPI Key来保护的,backup DC的私钥可以用来解密所有域用户的MasterKey,这个过程中,私钥一般不会改变。

你可能感兴趣的:(安全)