halilibrahimd27/goad-light-vmware-windows

GitHub: halilibrahimd27/goad-light-vmware-windows

该项目提供了一套完整的指南和修复脚本,用于在 Windows + VMware Workstation 上顺利部署 GOAD-Light Active Directory 渗透测试实验环境。

Stars: 0 | Forks: 0

# 🏰 在 VMware + Windows 上部署 GOAD-Light — 完整设置指南 **🌍 语言:** English (本文) · [🇹🇷 Türkçe](README.tr.md) ## 📖 这是什么? [GOAD (Game of Active Directory)](https://github.com/Orange-Cyberdefense/GOAD) 由 Orange Cyberdefense 开发,是一个刻意设计存在漏洞的 Active Directory 实验环境——非常适合用于 **OSCP / OSCP+ AD 练习**、渗透测试培训以及红队演练。 在 **Windows + VMware Workstation** 上部署它会遇到几个未记录的陷阱,可能会浪费你整整一天的时间。本仓库就是我希望当初能拥有的指南:它将**每一个修复都融入到主流程**中,并提供了可直接运行的**修复脚本**。 ## ⚡ 为什么本指南与众不同 大多数教程只让你执行 `install` 然后就不管了。本指南预先解决了在 Windows 上破坏 GOAD 的**五个陷阱**: | # | 陷阱 | 症状 | 修复 | |---|------|---------|-----| | 1 | **Python 3.13/3.14 太新** | `configparser.InvalidWriteError ... delimiter :` | 使用 Python 3.12 | | 2 | **GOAD `windows.py` bug** | `TypeError: is_in_path() takes 2 positional arguments but 3` | [`01-fix-windows-py.ps1`](scripts/01-fix-windows-py.ps1) | | 3 | **宿主机不在实验网络中** | Kali/宿主机无法 ping 通 DC(虚拟机之间可以互相 ping 通) | [`02-setup-host-network.ps1`](scripts/02-setup-host-network.ps1) | | 4 | **PROVISIONING 虚拟机没有 IP** | `ssh: connect to 192.168.56.3 ... timed out` | [`03-fix-provisioning-ip.sh`](scripts/03-fix-provisioning-ip.sh) | | 5 | **SSMS 安装卡住** | 在 `Install SSMS on srv02` 处卡住超过 30 分钟 | [`04-disable-ssms.sh`](scripts/04-disable-ssms.sh) | 好消息:**vagrant-vmware-desktop 插件不再需要付费许可**(于 2025 年末在 MPL 许可下开源),并且供个人使用的 **VMware Workstation Pro 是免费的**。 ## 🗺️ 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ WINDOWS HOST (VMware Workstation) │ │ • goad.py + Vagrant (orchestrator — runs on the host) │ │ • host-only vmnet adapter: 192.168.56.1 │ │ │ │ ┌──────────────── VMware (host-only 192.168.56.0/24) ────┐ │ │ │ Kali (.250) ← attacker │ │ │ │ PROVISIONING (.3) ← temp Ubuntu box, runs Ansible │ │ │ │ DC01 kingslanding (.10) sevenkingdoms.local │ │ │ │ DC02 winterfell (.11) north.sevenkingdoms.local │ │ │ │ SRV02 castelblack (.22) north.* (Defender OFF) │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` `goad.py` + Vagrant 必须在**宿主机**上运行(`vagrant-vmware-desktop` 插件驱动宿主机的 VMware)。Ansible 在自动创建的 **PROVISIONING** 虚拟机内运行(`-m vm` 方法)。 ## ✅ 前置条件 - Windows 10/11 宿主机,建议有 **~80–120 GB 可用磁盘空间**和 **32 GB RAM** - 在 BIOS 中启用 CPU 虚拟化 (VT-x/AMD-V) - 宿主机电源设置 → **永不休眠**(以免下载/重启被中断) - 已经在 VMware 中作为虚拟机安装好的 Kali ## 🚀 设置 ### 阶段 1 — Windows 宿主机工具 1. [Visual C++ 2019 Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe) 2. [Vagrant](https://developer.hashicorp.com/vagrant/install) → **重启** 3. [Vagrant VMware Utility (驱动)](https://developer.hashicorp.com/vagrant/install/vmware) — 强制必装 4. 插件(管理员 PowerShell): vagrant plugin install vagrant-reload vagrant-vmware-desktop winrm winrm-fs winrm-elevated ### 阶段 2 — Python 3.12 + GOAD ``` :: install Python 3.12 first (py install 3.12 OR python.org classic installer) cd C:\lab git clone https://github.com/Orange-Cyberdefense/GOAD.git cd GOAD py -3.12 -m venv .env .env\Scripts\python.exe --version :: MUST say 3.12.x .env\Scripts\python.exe -m pip install --upgrade pip .env\Scripts\python.exe -m pip install -r noansible_requirements.yml ``` ### 阶段 2.5 — 修复 GOAD windows.py bug(必做) ``` powershell -ExecutionPolicy Bypass -File scripts\01-fix-windows-py.ps1 ``` ### 阶段 3 — 网络(关键部分) 实验环境使用 **192.168.56.0/24**。在 **VMware → 编辑 → 虚拟网络编辑器**(管理员)中: - 选择/创建位于 `192.168.56.0/24` 的 host-only vmnet,子网掩码 `255.255.255.0` - ☑ **“将主机虚拟适配器连接到此网络”** ← 很容易漏掉,如果关闭会破坏一切 - ☐ **“使用本地 DHCP 服务”** → 关闭(GOAD 使用静态 IP) 然后为宿主机适配器分配 IP + 添加防火墙规则: ``` :: Run as Administrator powershell -ExecutionPolicy Bypass -File scripts\02-setup-host-network.ps1 ``` 在 Kali 中添加**第二块网卡**(虚拟机关机状态):网卡 1 = NAT,网卡 2 = 56.x vmnet。在 Kali 中: ``` sudo nmcli con add type ethernet con-name goad-net ifname eth1 ip4 192.168.56.250/24 sudo nmcli con up goad-net ``` ### 阶段 4 — 安装 ``` .env\Scripts\python.exe goad.py -m vm ``` ``` > check # everything green > set_provider vmware > set_lab GOAD-Light > set_ip_range 192.168.56 > install # confirm with y ``` ### 阶段 4.6 — 修复 PROVISIONING IP(在 Windows 上你一定会遇到这个) 当你看到 `ssh: connect to host 192.168.56.3 port 22: Connection timed out` 时: 1. `Ctrl+C` 中断安装(虚拟机**不会**被销毁) 2. VMware 托盘图标 → **“打开所有后台虚拟机”** → 打开 **PROVISIONING** → 登录 `vagrant`/`vagrant` 3. 运行(把脚本复制过去,或者手动输入命令): sudo bash 03-fix-provisioning-ip.sh # 或者 --persist 用于 netplan 4. 回到宿主机:`ping 192.168.56.3`,然后重新运行 `install`。 ### 阶段 4.7 — 如果 SSMS 卡住则禁用它 如果在 `Install SSMS on srv02` 处停滞超过 30 分钟: ``` # 在 PROVISIONING 内部(即 ~/GOAD/ansible 所在位置) bash 04-disable-ssms.sh ``` 然后重新运行 `install`。SSMS 是可选的——MSSQL 和所有漏洞都会在它之前安装。 ### 阶段 5 — 验证 + 快照 ``` # 来自 Kali nxc smb 192.168.56.10 192.168.56.11 192.168.56.22 ``` 你应该看到 `sevenkingdoms.local`、`north.sevenkingdoms.local` 以及三个主机名。然后: ``` :: in workspace\-goad-light-vmware\provider vagrant snapshot save clean-goad ``` ## 🩹 修复脚本 | 脚本 | 运行于 | 用途 | |--------|---------|---------| | [`01-fix-windows-py.ps1`](scripts/01-fix-windows-py.ps1) | 🪟 宿主机 (GOAD 根目录) | 修补 `is_in_path()` bug | | [`02-setup-host-network.ps1`](scripts/02-setup-host-network.ps1) | 🪟 宿主机 (管理员) | 宿主机 vmnet IP + 防火墙 | | [`03-fix-provisioning-ip.sh`](scripts/03-fix-provisioning-ip.sh) | 🐧 PROVISIONING 虚拟机 | 设置 `192.168.56.3` | | [`04-disable-ssms.sh`](scripts/04-disable-ssms.sh) | 🐧 PROVISIONING 虚拟机 | 注释掉 SSMS play | | [`check-network.ps1`](scripts/check-network.ps1) | 🪟 宿主机 | 连接诊断 | ## 🎯 攻击快速入门 (Kali) 添加到 `/etc/hosts`: ``` 192.168.56.10 kingslanding.sevenkingdoms.local kingslanding sevenkingdoms.local 192.168.56.11 winterfell.north.sevenkingdoms.local winterfell north.sevenkingdoms.local 192.168.56.22 castelblack.north.sevenkingdoms.local castelblack ``` | 技术 | 目标用户 | 工具 | |-----------|-------------|------| | AS-REP Roasting | `brandon.stark` | `impacket-GetNPUsers` → hashcat `-m 18200` | | Kerberoasting | `jon.snow` | `impacket-GetUserSPNs` → hashcat `-m 13100` | | 密码喷洒 | `hodor` (用户=密码) | `nxc smb ... spray` | | LLMNR + NTLM Relay | responder bots | `responder` + `ntlmrelayx` | | ACL 滥用链 | jaime→joffrey→…→varys→DA | BloodHound + `bloodyAD` | | MSSQL + 模拟 | `jon.snow`, `arya.stark` | `impacket-mssqlclient` | | GPO 滥用 | `STARKWALLPAPER` | `SharpGPOAbuse` | **推荐工具包:** mimikatz · chisel · evil-winrm · impacket · proxychains · **BloodHound legacy 4.2/4.3**(不要用较新的 CE 版本——大多数指南/考试材料都是针对旧版的)。 ## 🔒 安全提示 GOAD 是故意设计存在漏洞的。这些漏洞**存在于虚拟机内部**,由 VMware 在 **host-only** 网络上进行沙盒隔离。你的宿主机不会变得脆弱——**只是千万不要将实验虚拟机桥接到你的真实网络中。** ## 📄 许可证 MIT — 见 [LICENSE](LICENSE)。这是社区文档;GOAD 本身由 Orange Cyberdefense 单独授权。
标签:AI合规, IPv6, IP 地址批量处理, Libemu, PowerShell, VMware, 应用安全, 数据展示, 活动目录, 系统提示词, 红队, 逆向工具, 靶场环境