jonaslejon/ad-autopwn
GitHub: jonaslejon/ad-autopwn
一款自动化 Active Directory 渗透测试工具,将零凭证发现、凭据窃取、权限提升到域控攻陷等 25+ 种攻击技术编排为完整攻击链,实现从无认证到域管理员的一键化操作。
Stars: 1 | Forks: 0
# AD AutoPwn
**从零权限到域管理员 — 自动化 Active Directory 攻击链**
一个完全自动化的渗透测试工具,链式结合 25+ 种攻击技术以攻陷 Active Directory 环境。专为授权安全评估设计。
```
_ ___ _ _ ___
/_\ | \ /_\ _ _| |_ ___| _ \__ __ ___ _
/ _ \| |) | / _ \ || | _/ _ \ _/\ V V / ' \
/_/ \_\___/ /_/ \_\_,_|\__\___/_| \_/\_/|_||_|
⚡ Zero-Auth to Domain Admin — Attack Chain
Discover | Sniff | ARP | WPAD | WSUS | PXE | AD CS | SCCM | Roast
BloodHound | Reflect | Loot | RBCD+KCD | DCSync | DPAPI
```
## 功能特性
### 预认证用户名和凭据发现(零凭据)
- **kerbrute** KRB-AS-REQ 用户枚举(防锁定)
- **CLDAP NetLogon ping** 用户名枚举(防锁定)
- 对所有候选账户进行 **AS-REP roast**(为设置了 `DONT_REQ_PREAUTH` 的账户免费获取哈希)
- **pre2k 自动测试**(Windows 2000 兼容性默认密码机器)
- **单密码喷射**(防范账户锁定,通过 `--spray-password` 主动启用)
### 二层 / 被动零认证攻击
- **被动网络嗅探** — WPAD、WSUS、PXE、LLMNR、DHCPv6、TFTP、SCCM ProxyDHCP 检测
- **ARP 欺骗 + NTLM 中继** — 捕获并破解 NTLMv2 哈希
- **WPAD 投毒** — mitm6 / Responder IPv6 DNS 劫持
- **WSUS 中继** — 拦截 Windows Update NTLM 身份验证(端口 8530/8531)
- **PXE 启动凭据窃取** — 通过 TFTP/WIM 从启动镜像中提取凭据
- **NTLM 窃取文件投放** — 在可写共享上投放 `.library-ms` / `.theme` / `.url` 文件
- **WebDAV 强制认证** — WebClient HTTP → LDAP 中继(绕过 SMB 签名)
- **DHCP 强制认证** — DHCP 服务器机器账户中继
### 身份验证反射绕过 (Synacktiv 2026)
- **CVE-2025-58726 ghost-SPN** Kerberos AP-REQ 反射(由 BloodHound 自动动作自动触发)
- **CVE-2026-24294 LPE** — 任意 TCP 端口上的 SMB 反射(Win11 24H2 / Server 2025 2026年3月之前版本)
- **CVE-2026-26128 LPE** — 通过 Unicode SPN 实现 Kerberos 环回
- 当 CVE-2025-33073 路径被修补时的 **Unicode-SPN 回退**
### 凭据获取(认证后)
- **Kerberoasting** — 提取并自动破解 SPN 哈希(hashcat 模式 13100/19700)
- **AS-REP Roasting** — 破解无需预认证的账户(hashcat 模式 18200)
- **Timeroast** — 从任何已加入域的机器获取 SNTP-MS 哈希(hashcat 模式 31300)
- **LAPS 密码恢复** + **userPassword LDAP 属性** + **description 泄露的密码**(通过 nxc 扩充模块组挖掘)
- **SCCM NAA 窃取** — 通过 sccmhunter 提取网络访问账户凭据
### 图驱动的攻击链(BloodHound)
- **`bloodhound-python -c All`** 收集 + ZIP 分析
- **高价值发现** — Domain/Enterprise/Schema Admins、可 Kerberoasting、可 AS-REP Roasting、非约束委派、RBCD 入站、LAPS、AdminCount
- **可执行的边分析** — 受控主体闭包(你 + 传递性组成员身份) → 你作为主体的 ACE 边:`WriteSPN`、`AddKeyCredentialLink`、`GenericAll/Write`、`WriteDacl/Owner`、`WriteAccountRestrictions`、`AddAllowedToAct`、`ForceChangePassword`
- **自动动作链** — 自动触发匹配的攻击原语:
- `WriteSPN → ghost-SPN 升级`(CVE-2025-58726)
- `AddKeyCredentialLink → shadow credentials → PKINIT → NT hash`
- `对 Computer 拥有 GenericAll / WriteAccountRestrictions → RBCD 链 → admin TGS`
### 权限提升原语
- **AD CS 利用** — 通过 certipy 进行 ESC1-ESC16 利用(自动枚举 + 攻击利用)
- ESC8(Web 注册中继)
- ESC9/ESC10 UPN 交换(CVE-2022-26923 绕过)
- ESC4 模板修改+利用+还原(当前工作目录安全)
- 使用 certipy 作为后备的 Certihound 枚举(NT-hash 认证)
- **Shadow Credentials** — 通过 ntlmrelayx 或 pywhisker 修改 msDS-KeyCredentialLink
- **RBCD 滥用** — 基于资源的约束委派(addcomputer + S4U2Self + S4U2Proxy)
- **RBCD+KCD 链协调器** — 完整的 WriteSPN → ghost-SPN → RBCD → S4U2Proxy → `-altservice` 重写,在一个阶段内完成
- **TGS sname 重写**(tgssub 风格的 KCD 协议转换绕过) — 独立使用或通过 `-altservice` 内联使用
- **Dollar Ticket** — KDC 在主体查找时自动重试带有 `$` 后缀的名称 → 通过自动创建的 `$` 机器账户为 Linux 用户获取 TGT → GSSAPI SSH
- **GPO 滥用** — 通过 pyGPOAbuse 创建以 SYSTEM 权限运行的计划任务
### 域控攻陷
- **DCSync** — 通过 impacket-secretsdump 导出完整的域哈希
- **DPAPI 备份密钥** — 提取域 DPAPI 密钥用于离线凭据解密
- **AppLocker 绕过** — LOLBins(mshta、certutil、regsvr32 等)+ WSUS 签名分发
- **WSUS 更新注入** — 通过 wsuks 推送恶意的 Windows 更新
### 后渗透战利品
- **进程命令行收集** — 通过 `nxc -x` 执行 `Get-CimInstance Win32_Process`;使用正则表达式提取 mysql/sqlcmd/runas/KeePass/`--password` 类标志中的密码
- **KeePass 密码库发现与破解** — 在 `C:\Users` 中查找 `*.kdbx`,通过 smbclient 下载,执行 `keepass2john | hashcat -m 13400`
## 用法
```
# 全自动 — 零凭证链(自动发现所有内容)
sudo ./ad-autopwn.py
# 使用凭证 — 完整链
./ad-autopwn.py -u jsmith -p 'P@ss123' -d corp.local --dc-ip 10.0.0.1
# AWS / VPC 实验环境(Layer 2 攻击受阻) — 自动发现仍然有效
sudo ./ad-autopwn.py --no-arp --no-wpad
# 预认证凭证发现(锁定安全)
sudo ./ad-autopwn.py --phase discover --no-arp --no-wpad
# BloodHound 图收集 + 自动高价值分析
./ad-autopwn.py --phase bloodhound -u user -p pass -d corp.local \
--dc-ip 10.0.0.1 --dc-fqdn dc01.corp.local
# Dollar Ticket — 通过自动创建的 root$ 机器账户获取 'root' 的 TGT
./ad-autopwn.py -u user -p pass -d corp.local --dc-ip 10.0.0.1 \
--phase dollar-ticket --target-user root
# RBCD+KCD 链 — 完整的 ghost-SPN + RBCD + altservice 重写,一键完成
./ad-autopwn.py -u user -p pass -d corp.local --dc-ip 10.0.0.1 \
--phase rbcd-kcd -T VHAGAR$ --alt-spn HTTP/vhagar.corp.local
# AppLocker 绕过
./ad-autopwn.py -u user -p pass --applocker --lolbin mshta --custom-cmd "whoami"
# Dry run(打印每条命令,不运行任何内容 — 甚至包括后台进程)
./ad-autopwn.py --dry-run -u user -p pass -d corp.local --dc-ip 10.0.0.1
```
## 可用阶段
| 阶段 | 认证 | 描述 |
|-------------------|--------|-------------|
| `full` | 可选 | 完整的自动化攻击链(自动检测有无凭据) |
| `sniff` | 无 | 被动二层流量发现 |
| `discover` | 无 | kerbrute + CLDAP + AS-REP + pre2k + (可选) 喷射 |
| `arp` | 无 | ARP 欺骗 + NTLM 捕获 |
| `wpad` | 无 | WPAD/LLMNR 投毒 (mitm6 / Responder) |
| `wsus` | 无 | WSUS NTLM 中继 |
| `pxe` | 无 | PXE 启动凭据窃取 |
| `enum` | 需要 | 目标枚举(中继目标,非约束委派,WebClient 主机) |
| `enrich` | 需要 | nxc 13 个模块组(LAPS、timeroast、MAQ、nopac、zerologon 等) + 自动消费者 |
| `bloodhound` | 需要 | `bloodhound-python -c All` + 分析 + 自动动作链 |
| `roast` | 需要 | Kerberoast + AS-REP Roast |
| `adcs` | 需要 | AD CS 利用 (ESC1-ESC16) |
| `sccm` | 需要 | SCCM NAA 凭据窃取 |
| `exploit` | 需要 | 针对特定目标的 NTLM 反射 / 强制认证利用 |
| `dcsync` | 需要 (DA) | 域哈希转储 |
| `loot` | 需要 | 进程命令行收集 + KeePass 发现/破解 |
| `tgs-rewrite` | 无 | 离线 ccache sname 重写(tgssub 风格的 KCD 绕过) |
| `dollar-ticket` | 需要 | KDC `$` 后缀重试攻击(Linux GSSAPI 目标) |
| `rbcd-kcd` | 需要 | 完整的 RBCD+KCD 链协调器 (WriteSPN → ghost → RBCD → S4U+altservice) |
| `reflect-tcpport` | 需要 | CVE-2026-24294 LPE 原语 (SMB-on-tcpport) |
| `reflect-loopback`| 需要 | CVE-2026-26128 LPE 原语 (通过 Unicode SPN 实现 Kerberos 环回) |
| `kerb-reflect` | 需要 | CVE-2025-58726 ghost-SPN AP-REQ 反射 |
## 依赖项
### APT (Kali Linux)
```
apt install python3 impacket-scripts netexec nmap hashcat tcpdump \
responder dsniff arp-scan certipy-ad bloodyad bloodhound.py \
smbclient atftp wimtools john seclists
```
### Git 仓库(克隆到 `/opt/tools/`)
```
git clone https://github.com/mverschu/CVE-2025-33073 /opt/tools/CVE-2025-33073
git clone https://github.com/dirkjanm/krbrelayx /opt/tools/krbrelayx
git clone https://github.com/Wh04m1001/DFSCoerce /opt/tools/DFSCoerce
git clone https://github.com/ShutdownRepo/ShadowCoerce /opt/tools/ShadowCoerce
git clone https://github.com/ShutdownRepo/pywhisker /opt/tools/pywhisker
git clone https://github.com/dirkjanm/PKINITtools /opt/tools/PKINITtools
git clone https://github.com/csandker/pxethiefy /opt/tools/pxethiefy
git clone https://github.com/garrettfoster13/sccmhunter /opt/tools/sccmhunter
git clone https://github.com/dirkjanm/mitm6 /opt/tools/mitm6
git clone https://github.com/Hackndo/pyGPOAbuse /opt/tools/pyGPOAbuse
git clone https://github.com/Hackndo/WebclientServiceScanner /opt/tools/WebclientServiceScanner
git clone https://github.com/almandin/Certihound /opt/tools/Certihound
```
### Pipx 软件包
```
pipx install coercer
pipx install wsuks --system-site-packages
```
### 其他二进制文件
- `kerbrute` — 从 获取最新二进制文件 — 安装到 `/usr/local/bin/`
- `userenum-cldap` — 配套的 CLDAP NetLogon ping 枚举器(位于此仓库中的 `userenum-cldap.py`;安装到 `/usr/local/bin/userenum-cldap`)
- `asn1tools` — `pip install asn1tools`(CLDAP 枚举运行时依赖)
### 快速安装(Kali 上的所有依赖)
```
# APT 软件包
sudo apt install python3 impacket-scripts netexec nmap hashcat tcpdump \
responder dsniff arp-scan certipy-ad bloodyad bloodhound.py \
smbclient atftp wimtools john seclists
# 所有必需的 repos
for repo in mverschu/CVE-2025-33073 dirkjanm/krbrelayx \
Wh04m1001/DFSCoerce ShutdownRepo/ShadowCoerce \
ShutdownRepo/pywhisker dirkjanm/PKINITtools \
csandker/pxethiefy garrettfoster13/sccmhunter \
dirkjanm/mitm6 Hackndo/pyGPOAbuse \
Hackndo/WebclientServiceScanner almandin/Certihound; do
sudo git clone "https://github.com/$repo" "/opt/tools/$(basename $repo)"
done
# 需要这些 repos 的 Python deps
for repo in pywhisker PKINITtools sccmhunter pxethiefy mitm6 pyGPOAbuse Certihound; do
[ -f "/opt/tools/$repo/requirements.txt" ] && \
pip3 install --break-system-packages -r "/opt/tools/$repo/requirements.txt"
done
# Pipx 软件包
pipx install coercer
pipx install wsuks --system-site-packages
# kerbrute (ropnop) 二进制文件
sudo wget -q -O /usr/local/bin/kerbrute \
https://github.com/ropnop/kerbrute/releases/download/v1.0.3/kerbrute_linux_amd64
sudo chmod +x /usr/local/bin/kerbrute
# CLDAP userenum 运行时 dep
sudo pip3 install --break-system-packages asn1tools
# userenum-cldap 伴随脚本(本 repo)
sudo wget -q -O /usr/local/bin/userenum-cldap \
https://raw.githubusercontent.com/jonaslejon/ad-autopwn/main/userenum-cldap.py
sudo chmod +x /usr/local/bin/userenum-cldap
# ad-autopwn 本身
sudo cp ad-autopwn.py /usr/local/bin/ad-autopwn
sudo chmod +x /usr/local/bin/ad-autopwn
```
`check_prerequisites()` 在每次调用的顶部运行,并为脚本涉及到的每个工具打印绿色的 ✅ / 黄色的 ⚠️ 状态,同时为任何缺失的组件提供安装提示。
## 测试环境
- 在 AWS `eu-west-1` 上的 **GOAD-Light**(Game of Active Directory,Orange Cyberdefense)— 已验证完整覆盖 v4.10.0 所有阶段,端到端运行成功。在 AWS 上的自动发现现在只需使用 `--no-arp --no-wpad` 即可运行(其他一切——网络接口、攻击者 IP、域、DC IP、DC FQDN——均通过子网扫描 + 回退到 `@` 的 dig 查询自动检测)。
- BloodHound 自动动作链已在典型的 `stannis.baratheon → GenericAll → KINGSLANDING$` 边上得到验证:从单个低权限凭据到获取 DC 上的 admin TGS 只需 5 秒钟。
- DCSync 提取了 20 个凭据,包括 `krbtgt` — 具备制作黄金票据的条件。
## 安全机制
- `--dry-run` 会打印每条命令(前台**和**后台)而不实际执行 — 不会启动 ARP 欺骗器、mitm6、Responder 或 ntlmrelayx。
- ESC4 模板修改被包裹在带有 `os.chdir` 的 `try/finally` 块中,以确保在任何退出路径下都能在正确的目录中还原。
- AD CS / RBCD / ghost-SPN 攻击链在完成后会尝试清理植入的记录(DNS 记录、Trusted-For-Delegation UAC 位、ghost SPN)。你创建的机器账户将保留在 AD 中 — 请参阅运行输出中的操作员说明以获取清理命令。
- `--no-cleanup` 会保留所有内容以供取证审查。
## 免责声明
**仅供授权渗透测试和安全研究使用。**
此工具专为安全专业人员在授权测试活动中使用而设计。未经授权访问计算机系统是违法行为。在测试前请务必获取书面许可。
## 作者
Triop AB — [https://triop.se](https://triop.se)
## 许可证
MIT
标签:0click, Active Directory, AD CS攻击, AD域安全, ARP欺骗, AS-REP Roasting, BloodHound, CTF学习, CVE-2025-58726, CVE-2026-24294, CVE-2026-26128, DCSync, DPAPI, ICS, IPv6, IP 地址批量处理, JSONLines, Kerberoasting, Kerberos攻击, Modbus, NTLM Relay, PE 加载器, Plaso, PowerShell, PXE启动攻击, Python, RBCD, Shadow Credentials, Web报告查看器, WPAD欺骗, WSUS劫持, XXE攻击, Zero-Auth, 中间人攻击, 内网渗透, 协议分析, 反取证, 域渗透, 域管提权, 基于资源的约束委派, 安全评估, 插件系统, 无后门, 无线安全, 权限提升, 模拟器, 横向移动, 活动目录, 流量嗅探, 电子数据取证, 编程规范, 网络安全, 自动化攻击链, 逆向工具, 防御绕过, 隐私保护, 零信任