别再只会sekurlsa::logonpasswords了:mimikatz的dpapi模块实战,解密Chrome密码和Windows凭据
深入探索mimikatz的DPAPI模块解密Windows凭据与Chrome密码实战指南在渗透测试和安全研究中mimikatz早已成为提取Windows系统凭证的标配工具。大多数安全研究人员对sekurlsa::logonpasswords命令耳熟能详却鲜少深入挖掘其更强大的功能模块。今天我们将聚焦于mimikatz中一个被严重低估的利器——DPAPI模块它能帮助我们解密Windows系统中各类受保护的用户数据。1. DPAPI技术原理深度解析DPAPIData Protection API是Windows提供的一套加密接口广泛应用于系统组件和应用程序中保护敏感数据。理解其工作原理是成功解密的关键。核心加密机制用户主密钥Master Key每个用户账户拥有1-3个64字节的主密钥文件存储在%APPDATA%\Microsoft\Protect\SID目录下域保护与本地保护域账户主密钥由域控制器备份可通过域身份验证恢复本地账户主密钥仅依赖用户登录密码加密保护加密链用户密码 → 派生密钥 → 解密Master Key → 解密具体凭据有趣的是即使更改了用户密码系统也会自动保留旧的主密钥解密能力这为凭证恢复提供了便利。常见DPAPI保护数据Chrome/Firefox等浏览器保存的密码Windows凭据管理器中的网站/应用凭据RDP连接配置与密码WiFi配置文件中的PSK密钥Outlook等邮件客户端的账户信息2. 获取Master Key的三种实战方法成功解密DPAPI保护数据的前提是获取用户的主密钥。以下是经过实战验证的有效方法2.1 通过LSASS直接提取最直接的方式是从LSASS进程内存中获取解密状态的主密钥mimikatz # privilege::debug mimikatz # sekurlsa::dpapi输出关键字段解析guidMasterKey主密钥的唯一标识符key解密后的主密钥内容sha1/md4用于派生加密密钥的哈希值注意此方法需要LSASS中存在活跃的用户会话。在Server 2016等新版系统中可能受LSA保护限制。2.2 从磁盘文件解密主密钥当无法从内存提取时可以解密磁盘上的主密钥文件定位主密钥文件dir %APPDATA%\Microsoft\Protect\SID\GUID使用mimikatz解密mimikatz # dpapi::masterkey /in:C:\path\to\keyfile /sid:用户SID /password:用户密码参数说明/in主密钥文件路径/sid用户安全标识符/password当前或历史用户密码可尝试多个2.3 域环境下的密钥恢复技巧在域环境中即使不知道用户密码也能恢复主密钥mimikatz # lsadump::backupkeys /system:DC01 /export mimikatz # dpapi::masterkey /in:keyfile /pvk:exported.pvk此方法利用域控制器的密钥备份功能需要域管理员权限。3. Chrome浏览器密码解密实战掌握了主密钥后解密Chrome保存的密码变得轻而易举。以下是完整操作流程3.1 定位Chrome密码文件Chrome将密码加密存储在SQLite数据库中%LocalAppData%\Google\Chrome\User Data\Default\Login Data实战技巧当Chrome运行时该文件会被锁定。可通过以下方式解决关闭所有Chrome进程复制文件到其他位置操作使用Volume Shadow Copy服务获取副本3.2 执行解密操作使用获取的主密钥直接解密mimikatz # dpapi::chrome /in:C:\path\to\Login Data /unprotect高级选项/masterkey手动指定主密钥16进制格式/password提供用户密码自动派生密钥/sid指定用户SID3.3 结果解析与导出成功解密后将输出包含以下字段的每条凭证origin_url网站URLusername_value登录用户名password_value解密后的密码date_created记录创建时间戳自动化技巧 将输出重定向到文件后可用Python脚本解析import re pattern rorigin_url:(.*?)\susername_value:(.*?)\spassword_value:(.*?)\s matches re.findall(pattern, open(output.txt).read(), re.DOTALL)4. Windows凭据管理器解密进阶技巧Windows凭据管理器是另一个DPAPI保护的宝库存储着各类应用和网站的认证信息。4.1 定位凭据文件用户凭据存储位置%APPDATA%\Local\Microsoft\Credentials\随机GUID系统凭据存储位置%WINDIR%\System32\config\systemprofile\AppData\Local\Microsoft\Credentials\4.2 解密单个凭据文件mimikatz # dpapi::cred /in:C:\path\to\credential /masterkey:主密钥关键输出字段TargetName凭据关联的目标服务CredentialBlob解密后的凭据内容Persist存储类型会话/本地/企业4.3 批量解密技巧首先枚举所有凭据文件Get-ChildItem -Path $env:APPDATA\Local\Microsoft\Credentials\* | Select Name使用循环批量解密mimikatz # foreach /file:cred_list.txt /delim:| /var:CRED { dpapi::cred /in:%CRED% /unprotect }5. 防御检测与对抗措施了解攻击手法是为了更好地防御。以下是针对DPAPI攻击的防护建议企业防护策略启用Credential GuardEnable-WindowsOptionalFeature -Online -FeatureName Windows-Defender-CredentialGuard配置LSA保护[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA] RunAsPPLdword:00000001用户级防护定期清理保存的浏览器密码对敏感凭据使用专用密码管理器启用Windows Hello等二次认证检测指标异常访问Login Data或凭据文件大量读取Protect目录下的主密钥文件LSASS进程中出现DPAPI相关操作在最近的一次红队演练中我们通过DPAPI模块成功解密了目标系统上三年内所有Chrome保存的密码其中包括多个内部系统的管理员凭证。这充分证明了即使在不接触LSASS的情况下DPAPI也能成为横向移动的强力跳板。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2514971.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!