C4sh3R/ADAutoPwn
GitHub: C4sh3R/ADAutoPwn
ADAutoPwn 是一款自动化 Active Directory 渗透测试框架,通过递归凭据枢纽串联完整攻击链,实现从零凭据侦察到域管理员的全流程自动化利用。
Stars: 1 | Forks: 0
```
█████╗ ██████╗ █████╗ ██╗ ██╗████████╗ ██████╗
██╔══██╗██╔══██╗ ██╔══██╗██║ ██║╚══██╔══╝██╔═══██╗
███████║██║ ██║ ███████║██║ ██║ ██║ ██║ ██║
██╔══██║██║ ██║ ██╔══██║██║ ██║ ██║ ██║ ██║
██║ ██║██████╔╝ ██║ ██║╚██████╔╝ ██║ ╚██████╔╝
╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝
██████╗ ██╗ ██╗███╗ ██╗
██╔══██╗██║ ██║████╗ ██║ Active Directory
██████╔╝██║ █╗ ██║██╔██╗ ██║ Automated Pwnage
██╔═══╝ ██║███╗██║██║╚██╗██║ Framework
██║ ╚███╔███╔╝██║ ╚████║
╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝
```
# ⚡ ADAutoPwn
**从零到 Domain Admin —— 全自动化。**
这是一个单命令的 Active Directory 评估引擎,它将最佳攻击工具链(`netexec`、`impacket`、`certipy`、`bloodyAD`、`kerbrute`、`bloodhound-python` 等)串联成一个连贯、递归且色彩丰富的工作流。
由 **c4sh3r** 打造并武器化 · 仅限授权的测试项目




## ✨ 为什么选择 ADAutoPwn?
大多数 AD 评估的起步方式都一样:扫描、指纹识别 DC、修改 `/etc/hosts`、同步时钟、搜寻用户、爆破票据、枚举、寻找 ACL 路径、检查 ADCS、转储哈希。**ADAutoPwn 能为你包揽这一切 —— 并且还会继续深入。**
它的核心理念是一个**递归枢纽循环**:一旦它恢复了一个新身份(一个破解出的哈希、一个 LAPS/gMSA 密码、一个通过滥用 ACL 重置的密码),该身份就会被直接重新喂入引擎,并以该用户的身份重新运行*整个*枚举 + 利用链条 —— 直到不再出现新内容为止。
每一个用户、哈希、票据和发现都会**实时打印并保存到磁盘上**。
## 🚀 功能
| 阶段 | 执行内容 |
|------:|--------------|
| **0 · 发现** | 对关键 AD 端口进行 `nmap` 扫描 → **能力矩阵** (Kerberos/SMB/LDAP/RPC/WinRM)。通过 SMB **或 LDAP rootDSE + LDAPS 证书** 获取 Domain/FQDN(适用于纯 Kerberos 的 DC) |
| **1 · 主机与时间** | 自动追加到 `/etc/hosts`(幂等)+ 与 DC 进行时钟同步(Kerberos 的前置条件) |
| **2 · 未认证枚举** | null/guest 会话、匿名共享、RID 爆破、`rpcclient`、LDAP 匿名绑定、`enum4linux-ng`、`kerbrute` userenum |
| **3 · AS-REP + Timeroast** | `GetNPUsers` + MS-SNTP Timeroast —— 捕获的哈希会被破解并重新输入到枢纽队列中 |
| **4 · 验证 + TGT** | **TGT 优先**(`getTGT -dc-ip`,独立于 DNS)→ 验证凭据,通过 `-k --use-kcache` 进行缓存并在各处复用 |
| **5 · 认证枚举** | 用户、组、密码策略、描述、共享、MachineAccountQuota(LDAP,或在 LDAP 关闭时使用 `rpcclient` 作为后备) |
| **★ 用户名变体** | `ryan.naylor` → `rnaylor`、`r.naylor`、`naylor`… 通过 `kerbrute` 验证(不会锁定账户) |
| **★ 共享掠夺** | 爬取可读共享,下载文件,**破解**受密码保护的 Office/zip/pdf/keepass,**解密并读取**其内容,**提取**其中的密码 |
| **★ 机密** | 描述/文件中的密码、**GPP**、**LAPS**、**gMSA/dMSA**、**DPAPI**、预创建的计算机密码 → 对所有恢复的内容自动枢纽 |
| **★ WinRM + privesc** | 谁拥有 WinRM 权限;`whoami /priv` + `/groups` → 映射 **SeImpersonate→Potato**、SeBackup/SeDebug/SeRestore、Backup Operators、DnsAdmins… |
| **★ ACL/委派滥用** | `GenericAll`、`WriteDACL`、`ForceChangePassword`、`AddSelf`、`WriteOwner`、**WriteSPN**、约束委派 —— 搭配 `--abuse` 会执行链条:添加组/重置,**WriteSPN→Kerberoast**、**Shadow Credentials**、**RBCD**、S4U-to-Administrator 以及 **DCSync** |
| **★ 中继与强制** | SMB/LDAP 签名检查,`coerce_plus` (PetitPotam/PrinterBug/DFSCoerce)、spooler、WebDAV → 包含你的 IP 的**中继剧本** |
| **★ 信任** | 域与**跨林**信任、外部安全主体、跨林 Kerberoast |
| **6 · Kerberoast** | 对 SPN 账户(包含跨林账户)执行 `GetUserSPNs` |
| **7 · ADCS** | 使用 `certipy` 扫描 **ESC1…ESC16**,搭配 `--abuse` 会**自动利用 ESC1**(以 Administrator 身份请求证书 → 恢复其哈希/TGT → 枢纽) |
| **8 · BloodHound** | 完整的 `All` 收集 → 可导入的 `.zip` **+ 一个独立的交互式 `graph.html`**(离线,内置针对每条边的 Linux/Windows 滥用命令) |
| **9 · DCSync** | 在权限允许时执行 `secretsdump -just-dc` → **整个域的 NTLM 哈希** |
| **★ NTDS 离线** | 如果从共享中掠夺到了 `NTDS.dit` + `SYSTEM` → `secretsdump -ntds LOCAL` |
| **★ 报告** | 一份整合的、人类可读的 **`report.md`** + 整洁的战利品目录 (`enum/` · `secrets/` · `raw/`) |
| **∞ · 枢纽与喷射** | 每个恢复的身份/机密都会重新进入引擎;恢复的密码会在所有用户中进行**喷射**以寻找更多账户 |
此外:
- 🕸️ **交互式攻击图** —— 一个单一且独立的 `graph.html`(无需服务器、无需联网、无需安装 BloodHound)。它会从你拥有的权限出发,将焦点集中在指向 **Domain Admins / DC 的攻击路径**上,点击任何节点即可获得针对每个 ACL 边(GenericAll、WriteDacl、Shadow Credentials、RBCD、DCSync…)的精确的 **Linux *和* Windows 滥用命令**。运行结束后会自动打开;可以搜索/展开其余内容。可以在**任何** BloodHound zip 文件上独立使用:`adautopwn --graph data.zip`。
- 🔐 **默认 Kerberos 优先** —— 即使禁用了 NTLM 也能工作,并且更安静。使用 `--ntlm` 强制使用 NTLM。
- 🧠 根据目标自动生成**专注于域的字典** (`Season+Year`、`Name+123!`, …),并**首先**尝试用于离线破解;可选的受限制的在线喷射使用 `--spray`。
- ♻️ **自我输入 / 恢复** —— 手动拿到了凭据或用户?通过 `--creds-file` / `--users-file` 传递它们(或复用相同的 `-o` 战利品目录),引擎会从那里继续执行。
- 🩹 **默认破解** —— 捕获的 AS-REP / Kerberoast / NTLM 哈希会自动破解(使用 `--no-crack` 禁用);破解出的凭据会重新进行枢纽。
- 🥷 **`--stealth`** —— 跳过会产生大量噪音的技术,并在操作之间增加抖动。
- 🧹 **负责任的清理** —— 工具所做的每一个更改(添加组、重置密码、所有者/SPN 编辑、`/etc/hosts`)都会被记录在 `rollback.log` 中,并可通过 `--cleanup` 还原。*根据设计,不进行事件日志擦除 / 反取证。*
- 🎨 现代、多彩、实时的输出(每一个用户、哈希和步骤都会实时打印)。纯文本日志会一并保存。
## 📦 安装
```
git clone https://github.com/c4sh3r/ADAutoPwn.git
cd ADAutoPwn
chmod +x install.sh adautopwn.sh
./install.sh # installs the whole toolchain (apt + pipx + kerbrute + rockyou)
```
在 **Kali/Parrot** 上,大多数依赖项已经存在;`install.sh` 会填补缺失的部分。
### 从任意位置运行
```
ln -sf "$PWD/adautopwn.sh" ~/.local/bin/adautopwn # ~/.local/bin is on PATH
# 现在只需: adautopwn -t
...
```
(`install.sh` 还会在条件允许时创建一个 `/usr/local/bin/adautopwn` 符号链接。)
## 🧰 要求
**系统 (apt):** `nmap` · `smbclient` · `smbmap` · `rpcclient` · `ldap-utils` ·
`ntpdate` · `enum4linux-ng` · `john` · `hashcat` · `seclists`
**Python (pipx/pip):** `netexec` · `impacket` · `certipy-ad` · `bloodhound` ·
`bloodyAD` · `ldapdomaindump`
**独立程序:** `kerbrute` → `/opt/kerbrute` *(使用 `KERBRUTE_BIN=...` 覆盖)*
只需 `sudo` 一次,用于时钟同步和 `/etc/hosts` 条目。
## 💻 用法
```
adautopwn -t [-d ] [-u ] [-p | -H ] [options]
```
| 标志 | 描述 |
|------|-------------|
| `-t ` | Domain Controller IP **(必需)** |
| `-d ` | Domain FQDN(如省略则自动检测) |
| `-u ` | Domain 用户名 |
| `-p ` | 明文密码 |
| `-H ` | NT hash (pass-the-hash) |
| `-o ` | 输出/战利品目录(复用它以**恢复**) |
| `-w ` | 破解字典(默认:rockyou) |
| `--sudo-pass ` | 用于无人值守修改 `/etc/hosts` + 时间同步的 sudo 密码(或使用 `SUDO_PASS=…`) |
| `--creds-file ` | 提供额外凭据以继续执行 (`user:password` / `user:nthash`) |
| `--users-file ` | 合并外部用户名列表(喷射 / AS-REP / 变体) |
| `--no-crack` | 禁用哈希破解(**默认开启破解**) |
| `--spray` | 同时**在线**喷射专注于域的字典 ⚠️ *存在账户锁定风险* |
| `--abuse` | 主动利用 ACL(添加组、重置密码、WriteSPN roast)—— 会被跟踪以便回滚 |
| `--auto-pwn` | `--abuse --spray -y` 的便捷别名;`--abuse` 仍然是主要的利用开关 |
| `--cleanup` | 还原所有被跟踪的更改并退出 |
| `--stealth` | OPSEC 模式:跳过产生噪音的技术 + 抖动 |
| `--ntlm` | 强制使用 NTLM(默认为 Kerberos 优先) |
| `--no-bh` | 跳过 BloodHound 收集 |
| `--no-open` | 不要在浏览器中自动打开 `graph.html` |
| `--graph ` | **独立运行**:渲染 BloodHound zip → `graph.html` 并打开它(无需扫描) |
| `--owned ` | 在图中将这些主体(每行一个)标记为已攻陷 |
| `-y, --yes` | 默认同意 —— 完全无人值守 |
| `--no-color` | 禁用颜色 |
| `-h, --help` | 帮助 |
### 示例
```
# Zero-credential recon (users, AS-REP, anon shares, trusts)
adautopwn -t 10.10.10.10
# Full authenticated, auto-cracking, unattended (默认为 Kerberos)
adautopwn -t 10.10.10.10 -d corp.local -u jdoe -p 'P@ssw0rd' --crack -y
# Go loud: 同时滥用 ACLs(添加到组 / 重置密码)并支持 rollback
adautopwn -t 10.10.10.10 -d corp.local -u jdoe -p 'P@ssw0rd' --crack --abuse
# Pass-the-hash 直接执行到 DCSync
adautopwn -t 10.10.10.10 -d corp.local -u admin -H 31d6cfe0d16ae931b73c59d7e0c089c0
# 隐蔽行动
adautopwn -t 10.10.10.10 -d corp.local -u jdoe -p 'P@ssw0rd' --stealth
# 完成后清理环境
adautopwn -t 10.10.10.10 --cleanup -o loot_corp.local_20260607_2210
# 仅可视化现有的 BloodHound zip — 无需扫描,无需凭据
adautopwn --graph ~/Downloads/20260608_bloodhound.zip
adautopwn --graph data.zip --owned owned_users.txt # flag what you already control
```
### 自我输入 / 恢复
通过其他方式获得了凭据或用户列表?把它们交出来,引擎就会从那里继续执行(复用相同的 `-o` 会保留所有之前的战利品):
```
# 使用手动发现的凭据继续行动
printf 'svc_sql:Summer2025!\nbackupadmin:31d6cfe0d16ae931b73c59d7e0c089c0\n' > creds.txt
adautopwn -t 10.10.10.10 -d corp.local --creds-file creds.txt -o loot_corp.local_20260607_2210
# Seed 自定义用户列表(用于 spray / AS-REP / 变体生成)
adautopwn -t 10.10.10.10 -d corp.local -u jdoe -p 'P@ss' --users-file users.txt
```
## 📂 战利品布局
所有内容都会实时打印**并**写入一个带有时间戳的战利品目录中。
最后,该目录会被**整理**:战利品和恢复操作的关键文件会保留在顶部,其他所有内容都会被分类到子文件夹中,并且会清理空文件。
```
loot__/
├── report.md # ⭐ consolidated, human-readable engagement report
├── graph.html # ⭐ interactive offline attack graph (auto-opens)
├── adautopwn.log # full plain-text transcript
├── users_all.txt # consolidated, de-duplicated user list
├── found_passwords.txt # every recovered password (sprayed + resumed)
├── credential_map.txt # what we recovered & where it came from
├── asrep_hashes.txt # AS-REP roast (hashcat -m 18200)
├── kerberoast_hashes.txt # Kerberoast (hashcat -m 13100)
├── secretsdump.txt # DCSync dump
├── cracked_passwords.txt # cracked hashes → plaintext
├── *.ccache # reusable Kerberos tickets
├── rollback.log # undo actions for --cleanup
├── enum/ # users/groups, password policy, nmap, domain wordlist
├── secrets/ # LAPS · gMSA · GPP · DPAPI · ACL dumps · trusts · ADCS · coercion
├── shares/ # files looted from readable shares
├── bloodhound/*.zip # BloodHound collection
└── raw/ # misc intermediates (cracked docs, file hashes…)
```
## ♻️ 清理与 OPSEC 理念
ADAutoPwn 是为**专业测试项目**而构建的,因此它会自行清理:
- 每一次变更(添加组成员身份、重置密码、更改所有者、`/etc/hosts` 条目)都会作为一条**撤销命令**记录在 `rollback.log` 中。
- `--cleanup` 会读取该文件并将环境还原。
它刻意**不做的事情是:清除 Windows 事件日志或执行反取证。这会破坏客户的证据链,并且超出了合法测试的范围。这里的隐蔽意味着*保持安静*(`--stealth`、Kerberos、抖动),而不是*销毁证据*。
## 📜 许可证
**PolyForm Noncommercial 1.0.0** —— 见 [`LICENSE`](LICENSE)。可出于**非商业**目的(研究、教育、个人使用、非营利组织)自由使用、修改和分享。**不允许商业使用、出售或转售** —— 所有商业权利均由作者 (**c4sh3r**) 保留;如需商业许可证,请联系作者。仅供**授权的安全测试**使用;作者对任何滥用不承担责任。
由 c4sh3r 用 ☕ 和太多 impacket 标志制作
标签:Active Directory, Bash, Plaso, SNMP, Web报告查看器, 域渗透, 应用安全, 模拟器, 电子数据取证, 自动化攻击, 逆向工具