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** 打造并武器化 · 仅限授权的测试项目 ![bash](https://img.shields.io/badge/bash-5%2B-1f425f?style=flat-square&logo=gnubash&logoColor=white) ![platform](https://img.shields.io/badge/platform-Kali%20%7C%20Parrot-2ea44f?style=flat-square&logo=linux&logoColor=white) ![kerberos](https://img.shields.io/badge/auth-Kerberos--first-blueviolet?style=flat-square) ![license](https://img.shields.io/badge/license-PolyForm%20Noncommercial-orange?style=flat-square)
## ✨ 为什么选择 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报告查看器, 域渗透, 应用安全, 模拟器, 电子数据取证, 自动化攻击, 逆向工具