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, 中间人攻击, 内网渗透, 协议分析, 反取证, 域渗透, 域管提权, 基于资源的约束委派, 安全评估, 插件系统, 无后门, 无线安全, 权限提升, 模拟器, 横向移动, 活动目录, 流量嗅探, 电子数据取证, 编程规范, 网络安全, 自动化攻击链, 逆向工具, 防御绕过, 隐私保护, 零信任