记一次内网横向破解管理员密码
字数 1223 2025-08-18 11:37:37
Windows内网横向渗透:利用DPAPI破解管理员密码
0x01 前言
本文详细讲解如何通过DPAPI机制在内网环境中横向渗透获取管理员密码的技术。注意:本文仅用于网络安全技术研究,所有渗透测试必须获得合法授权。
0x02 初始入侵
-
信息收集与指纹识别
- 使用httpx工具进行存活检测
- 识别系统指纹,重点关注高危指纹
- 通过漏洞扫描发现可利用漏洞
-
获取初始立足点
- 发现/api/actuator接口泄露
- 利用Log4j漏洞(CVE-2021-44228)获取初始访问权限
- 使用CS(Cobalt Strike)生成payload并上线
0x03 内网信息收集
-
基础信息收集
whoami # 确认当前权限 systeminfo # 获取系统信息 arp -a # 查看内网主机 -
网络拓扑发现
- 识别内网IP段
- 确认当前所在网络位置
- 发现多台域内主机
0x04 DPAPI机制详解
1. DPAPI核心概念
DPAPI(Data Protection API)是Windows用于加密敏感数据的机制,包括:
- 用户保存的密码
- 浏览器凭据
- 无线网络密码
- 其他应用程序存储的敏感数据
2. MasterKey机制
| 组件 | 描述 |
|---|---|
| MasterKey | 用户登录后系统自动生成的主密钥 |
| GUID | MasterKey的唯一标识符 |
| Time | MasterKey创建时间 |
| sha1(key) | MasterKey的校验值 |
加密流程:
- 用户口令派生Key1 → 加密MasterKey
- MasterKey → 加密DPAPI中的敏感数据
- 应用数据(如WiFi密码)被加密存储
3. MasterKey文件位置
MasterKey文件通常存储在:
%APPDATA%\Microsoft\Protect\%SID%\
其中:
%SID%是用户的安全标识符Preferred文件指示当前使用的MasterKey文件
0x05 利用DPAPI破解密码
1. 获取MasterKey
使用Mimikatz工具:
sekurlsa::dpapi
该命令从lsass进程中提取当前用户的DPAPI MasterKey解密材料。
2. 查找特定凭据
-
定位管理员凭证文件:
C:\Users\Administrator\appdata\local\microsoft\credentials\ -
搜索最新凭证文件
3. 解密凭据
使用Mimikatz解密:
dpapi::cred /in:C:\Users\Administrator\appdata\local\microsoft\credentials\xxxxx /masterkey:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4. 横向移动
- 验证获取的密码是否为通用密码
- 使用RDP或其他协议尝试登录其他主机
- 确认权限提升可能性
0x06 防御建议
-
DPAPI防护措施
- 限制对%APPDATA%\Microsoft\Protect\目录的访问
- 监控lsass进程的异常访问
-
通用防御策略
- 实施多因素认证
- 避免使用通用密码
- 定期轮换密码
- 启用Credential Guard
-
日志监控
- 监控异常登录行为
- 记录对凭证存储的访问
0x07 总结
本文详细讲解了如何利用Windows DPAPI机制在内网环境中横向移动的技术。关键在于理解MasterKey的生成和使用机制,以及如何通过内存提取和离线解密获取敏感凭据。防御方应重点保护lsass进程和凭证存储位置,并实施严格的密码策略。