Yash-Patil-1/adseckit

GitHub: Yash-Patil-1/adseckit

ADSecKit 是一款自动化 Active Directory 渗透测试实验室工具,提供一键式漏洞环境配置、攻击链自动化执行与检测规则映射功能。

Stars: 1 | Forks: 0

# 🛡️ ADSecKit — Active Directory 攻击与检测实验室 [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Version](https://img.shields.io/badge/version-0.1.0-blue)]() [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)]() **为渗透测试人员和红队提供的自动化 Active Directory 实验环境配置、攻击链自动化和检测映射工具。** ## 概述 ADSecKit 提供了一个完整的 Active Directory 渗透测试实验室,只需一条命令即可启动。它会配置一个故意存在漏洞的 Windows 域(域控 + 工作站),然后提供模块化的攻击模块,供您练习完整的 AD 攻击链 —— 从枚举到域控接管。 ### 实验室架构 ``` ┌─────────────────────────────────────────────────┐ │ Host-Only Network │ │ 172.16.0.0/24 │ │ │ │ ┌──────────────────────┐ ┌──────────────────┐ │ │ │ DC01 │ │ WS01 │ │ │ │ Windows Server 2022 │ │ Windows 11 Pro │ │ │ │ Domain Controller │ │ Domain Joined │ │ │ │ IP: 172.16.0.10 │ │ IP: 172.16.0.20 │ │ │ │ RAM: 3GB / 2 vCPU │ │ RAM: 2GB / 2 vCPU│ │ │ │ │ │ │ │ │ │ adseclab.local │ │ Vulns injected: │ │ │ │ │ │ - Local admin │ │ │ │ Vulns injected: │ │ - AlwaysElevate │ │ │ │ - Kerberoastable │ │ - Unquoted paths │ │ │ │ - AS-REP roastable │ │ - Stored creds │ │ │ │ - Weak ACLs │ │ - Weak perms │ │ │ │ - Unconst deleg │ │ │ │ │ └──────────────────────┘ └──────────────────┘ │ └─────────────────────────────────────────────────┘ ``` ### 内置漏洞 | 漏洞 | 目标 | 攻击阶段 | |--------------|--------|-------------| | 可 Kerberoast 的 SPN | `sql_svc`, `web_svc` | Kerberos 攻击 (P3) | | 可 AS-REP Roast 的账户 | `bob_jones` | Kerberos 攻击 (P3) | | 弱 ACL (GenericAll) | `alice_smith` 对 Admins OU | ACL 滥用 (P5) | | 非约束委派 | `dc01` 计算机 | 委派滥用 (P3) | | DCSync 路径 | 位于 Domain Admins 中的 `sql_svc` | 凭据攻击 (P4) | | LAPS 错误配置 | WS01 extensionAttribute | 凭据攻击 (P4) | | AlwaysInstallElevated | WS01 注册表 | 提权 (P7) | | 未加引号的服务路径 | WS01 上的 `VulnSvc` | 提权 (P7) | | 已保存的凭据 | Windows 凭据管理器 | 凭据攻击 (P4) | | 弱文件权限 | WS01 上的 `db_config.ini` | 提权 (P7) | ## 快速开始 ### 前置条件 - **Linux、macOS 或 Windows**(需支持虚拟化) - **建议 16GB+ 内存**(最低 12GB) - 50GB 可用磁盘空间 ### 安装说明 #### 第一步:安装 ADSecKit(Python 包) ``` # Clone 仓库 git clone https://github.com/Yash-Patil-1/adseckit.git cd adseckit # 创建并激活虚拟环境 python3 -m venv venv source venv/bin/activate # 安装 ADSecKit pip install -e . # 验证是否正常工作 adseckit --help ``` #### 第二步:安装系统依赖(Vagrant + VirtualBox) ``` # 推荐 — 通过 ADSecKit CLI adseckit provision install-deps # 或手动操作: sudo apt update sudo apt install -y virtualbox virtualbox-ext-pack vagrant vagrant plugin install vagrant-winrm ``` ### 配置实验环境 ``` # 启动完整实验环境(DC01 + WS01) adseckit provision up # 或启动单个 VM adseckit provision up dc01 adseckit provision up ws01 # 检查状态 adseckit provision status # 显示配置 adseckit config ``` ### 当您运行 `adseckit provision up` 时会发生什么 1. **DC01** 启动 Windows Server 2022 2. PowerShell 安装 AD DS 角色 → 提升为域控 → 创建林 `adseclab.local` 3. 重启 4. 注入漏洞:易受攻击的用户、SPN、弱 ACL、非约束委派 5. 重启 6. **WS01** 启动 Windows 11 Pro 7. PowerShell 配置 DNS → 等待 DC → 加入域 8. 重启 9. 注入工作站漏洞:AlwaysInstallElevated、存储的凭据、计划任务 10. **准备好进行攻击!** ### 销毁环境 ``` # 停止 VM(保留状态) adseckit provision down # 销毁 VM(删除所有内容) adseckit provision destroy ``` ## 实验室用户 | 用户名 | 密码 | 类型 | 备注 | |----------|----------|------|-------| | `Administrator` | `ADSecKitP@ss2026!` | Domain Admin | 内置 DA | | `dave_admin` | `Admin@2026!` | Domain Admin | 特权用户 | | `sql_svc` | `Service@2026!` | 服务账户 | **可 Kerberoast** — SPN: MSSQLSvc | | `web_svc` | `Svc@dmin2026` | 服务账户 | **可 Kerberoast** — SPN: HTTP | | `alice_smith` | `Password123!` | 标准用户 | 对 Admins OU 拥有 **GenericAll** | | `bob_jones` | `Password123!` | 标准用户 | **无需预认证** — 可 AS-REP Roast | | `charlie_brown` | `Password123!` | 标准用户 | 普通用户 | | `svc_backup` | `Backup@2026!` | 本地管理员 (WS01) | 后备本地管理员 | ## 攻击模块 | 阶段 | 模块 | 状态 | |-------|--------|--------| | **1** | 实验环境配置 | ✅ **已完成** | | **2** | **BloodHound 自动化** | ✅ **已完成** | | **3** | **Kerberos 攻击** | ✅ **已完成** | | **4** | 凭据攻击 | ✅ **已完成** | | **5** | ACL 滥用 | ✅ **已完成** | | **6** | 横向移动 | ✅ **已完成** | | **7** | 提权 | ✅ **已完成** | | **8** | 检测映射 | ✅ **已完成** | | **9** | 报告生成 | ✅ **已完成** | ## CLI 参考 ### 环境配置命令 ``` adseckit provision install-deps # Install VirtualBox + Vagrant (+ dry-run flag) adseckit provision up [dc01|ws01] # Start VMs adseckit provision down [dc01|ws01] # Stop VMs adseckit provision destroy [dc01|ws01] # Destroy VMs adseckit provision status # Check VM status adseckit provision ssh [dc01|ws01] # Open WinRM session ``` ### BloodHound 自动化命令(阶段 2) ``` # 从实验环境收集 AD 数据 adseckit bloodhound collect # Uses bloodhound.py (or LDAP fallback) adseckit bloodhound collect --username dave_admin --password "Admin@2026!" # Neo4j 数据库管理(Docker) adseckit bloodhound start # Start Neo4j container adseckit bloodhound stop # Stop & remove Neo4j container adseckit bloodhound status # Show pipeline status adseckit bloodhound status --json # JSON output for scripting # 导入和分析 adseckit bloodhound import # Load collected data into Neo4j adseckit bloodhound analyze # Run Cypher attack path queries adseckit bloodhound report # Generate markdown findings report # 完整流程(所有步骤) adseckit bloodhound pipeline # Collect → Import → Analyze → Report adseckit bloodhound pipeline --skip-collect # Re-analyze existing data # 依赖项 adseckit bloodhound install-deps # Install bloodhound + neo4j + ldap3 ``` ### Kerberos 攻击命令(阶段 3) ``` # 安装 impacket(一次性) adseckit kerberos install-deps # LDAP 枚举 adseckit kerberos find-spns # Find Kerberoastable accounts adseckit kerberos find-asrep # Find AS-REP roastable accounts # Roasting adseckit kerberos roast # Kerberoast all SPN accounts adseckit kerberos roast --target sql_svc # Kerberoast specific user adseckit kerberos asrep # AS-REP roast all vulnerable accounts adseckit kerberos asrep --target bob_jones # AS-REP roast specific user # 针对 BloodHound 的攻击 adseckit kerberos targeted-roast # Kerberoast using BH findings adseckit kerberos targeted-asrep # AS-REP roast using BH findings # Hash 破解 adseckit kerberos crack kerberos_data/kerberoast_*.txt adseckit kerberos crack kerberos_data/asrep_*.txt --wordlist /path/to/wordlist.txt # 完整流程 adseckit kerberos pipeline # Enumerate → Roast → Report adseckit kerberos pipeline --crack # Include hash cracking adseckit kerberos pipeline --skip-enum # Skip LDAP enumeration ``` **哈希格式:** - Kerberoast: `$krb5tgs$23$*user$realm$service/spn*...` (hashcat 模式 **13100**) - AS-REP Roast: `$krb5asrep$23$user@realm:...` (hashcat 模式 **18200**) ### 配置 ``` adseckit config # Show lab config adseckit check # Check dependencies adseckit --version # Show version ``` ### BloodHound 工作流演示 ``` # 1. 安装依赖项(一次性) adseckit bloodhound install-deps # 2. 运行完整流程 adseckit bloodhound pipeline # 或分步运行: adseckit bloodhound collect # Collect AD data adseckit bloodhound start # Start Neo4j adseckit bloodhound import # Import data into Neo4j adseckit bloodhound analyze # Find attack paths adseckit bloodhound report # Generate report ``` **输出:** - 收集的数据:`bh_data/bh_collect/*.json` - Neo4j 数据:`bh_data/neo4j_data/`(持久化) - 报告:`bh_data/bh_report_*.md` **Neo4j 凭据(仅限本地实验环境):** - Bolt: `localhost:7687` - HTTP: `http://localhost:7474` (BloodHound CE / Neo4j Browser) - 认证:`neo4j` / `bloodhound` ## 项目结构 ``` adseckit/ ├── Vagrantfile # 2-VM topology (DC01 + WS01) ├── provisioning/ │ ├── ConfigureDC.ps1 # AD DS install + domain promotion │ ├── InjectVulnsDC.ps1 # DC misconfigs (users, SPNs, ACLs) │ ├── ConfigureWS.ps1 # Domain join + DNS + tools │ └── InjectVulnsWS.ps1 # WS misconfigs (priv esc paths) ├── adseckit/ # Python CLI tool │ ├── __init__.py # Package version │ ├── __main__.py # python -m adseckit │ ├── cli.py # Argparse CLI entry point │ ├── provision.py # Vagrant wrapper (up/down/status/deps) │ └── config.py # Lab configuration constants ├── pyproject.toml # Package config └── README.md # This file ``` ## 安全提示 - **此实验环境故意存在安全漏洞** —— 切勿将其暴露至您的本地网络 - 虚拟机配置在 **Host-Only 网络** 上 —— 与您的局域网隔离 - 默认凭据已在上方列出,请勿在生产环境中使用 - 不使用时,请务必销毁实验环境:`adseckit provision destroy` ## 作者 **Yash Patil** — 网络安全分析师 | 渗透测试工程师 - 📧 yashpatil7714@gmail.com - 🔗 [LinkedIn](https://www.linkedin.com/in/yash-patil-997357330) - 🐙 [GitHub](https://github.com/Yash-Patil-1) ## 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。
标签:AI合规, PE 加载器, Vagrant, Web报告查看器, 攻击模拟, 模拟器, 活动目录, 自动化环境部署, 请求拦截, 逆向工具, 配置修复, 驱动签名利用