记一次内网横向破解管理员密码
字数 1223 2025-08-18 11:37:37

Windows内网横向渗透:利用DPAPI破解管理员密码

0x01 前言

本文详细讲解如何通过DPAPI机制在内网环境中横向渗透获取管理员密码的技术。注意:本文仅用于网络安全技术研究,所有渗透测试必须获得合法授权。

0x02 初始入侵

  1. 信息收集与指纹识别

    • 使用httpx工具进行存活检测
    • 识别系统指纹,重点关注高危指纹
    • 通过漏洞扫描发现可利用漏洞
  2. 获取初始立足点

    • 发现/api/actuator接口泄露
    • 利用Log4j漏洞(CVE-2021-44228)获取初始访问权限
    • 使用CS(Cobalt Strike)生成payload并上线

0x03 内网信息收集

  1. 基础信息收集

    whoami  # 确认当前权限
    systeminfo  # 获取系统信息
    arp -a  # 查看内网主机
    
  2. 网络拓扑发现

    • 识别内网IP段
    • 确认当前所在网络位置
    • 发现多台域内主机

0x04 DPAPI机制详解

1. DPAPI核心概念

DPAPI(Data Protection API)是Windows用于加密敏感数据的机制,包括:

  • 用户保存的密码
  • 浏览器凭据
  • 无线网络密码
  • 其他应用程序存储的敏感数据

2. MasterKey机制

组件 描述
MasterKey 用户登录后系统自动生成的主密钥
GUID MasterKey的唯一标识符
Time MasterKey创建时间
sha1(key) MasterKey的校验值

加密流程

  1. 用户口令派生Key1 → 加密MasterKey
  2. MasterKey → 加密DPAPI中的敏感数据
  3. 应用数据(如WiFi密码)被加密存储

3. MasterKey文件位置

MasterKey文件通常存储在:

%APPDATA%\Microsoft\Protect\%SID%\

其中:

  • %SID%是用户的安全标识符
  • Preferred文件指示当前使用的MasterKey文件

0x05 利用DPAPI破解密码

1. 获取MasterKey

使用Mimikatz工具:

sekurlsa::dpapi

该命令从lsass进程中提取当前用户的DPAPI MasterKey解密材料。

2. 查找特定凭据

  1. 定位管理员凭证文件:

    C:\Users\Administrator\appdata\local\microsoft\credentials\
    
  2. 搜索最新凭证文件

3. 解密凭据

使用Mimikatz解密:

dpapi::cred /in:C:\Users\Administrator\appdata\local\microsoft\credentials\xxxxx /masterkey:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4. 横向移动

  1. 验证获取的密码是否为通用密码
  2. 使用RDP或其他协议尝试登录其他主机
  3. 确认权限提升可能性

0x06 防御建议

  1. DPAPI防护措施

    • 限制对%APPDATA%\Microsoft\Protect\目录的访问
    • 监控lsass进程的异常访问
  2. 通用防御策略

    • 实施多因素认证
    • 避免使用通用密码
    • 定期轮换密码
    • 启用Credential Guard
  3. 日志监控

    • 监控异常登录行为
    • 记录对凭证存储的访问

0x07 总结

本文详细讲解了如何利用Windows DPAPI机制在内网环境中横向移动的技术。关键在于理解MasterKey的生成和使用机制,以及如何通过内存提取和离线解密获取敏感凭据。防御方应重点保护lsass进程和凭证存储位置,并实施严格的密码策略。

Windows内网横向渗透:利用DPAPI破解管理员密码 0x01 前言 本文详细讲解如何通过DPAPI机制在内网环境中横向渗透获取管理员密码的技术。 注意 :本文仅用于网络安全技术研究,所有渗透测试必须获得合法授权。 0x02 初始入侵 信息收集与指纹识别 使用httpx工具进行存活检测 识别系统指纹,重点关注高危指纹 通过漏洞扫描发现可利用漏洞 获取初始立足点 发现/api/actuator接口泄露 利用Log4j漏洞(CVE-2021-44228)获取初始访问权限 使用CS(Cobalt Strike)生成payload并上线 0x03 内网信息收集 基础信息收集 网络拓扑发现 识别内网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文件通常存储在: 其中: %SID% 是用户的安全标识符 Preferred 文件指示当前使用的MasterKey文件 0x05 利用DPAPI破解密码 1. 获取MasterKey 使用Mimikatz工具: 该命令从lsass进程中提取当前用户的DPAPI MasterKey解密材料。 2. 查找特定凭据 定位管理员凭证文件: 搜索最新凭证文件 3. 解密凭据 使用Mimikatz解密: 4. 横向移动 验证获取的密码是否为通用密码 使用RDP或其他协议尝试登录其他主机 确认权限提升可能性 0x06 防御建议 DPAPI防护措施 限制对%APPDATA%\Microsoft\Protect\目录的访问 监控lsass进程的异常访问 通用防御策略 实施多因素认证 避免使用通用密码 定期轮换密码 启用Credential Guard 日志监控 监控异常登录行为 记录对凭证存储的访问 0x07 总结 本文详细讲解了如何利用Windows DPAPI机制在内网环境中横向移动的技术。关键在于理解MasterKey的生成和使用机制,以及如何通过内存提取和离线解密获取敏感凭据。防御方应重点保护lsass进程和凭证存储位置,并实施严格的密码策略。