网络安全渗透测试【免费下载链接】GOADgame of active directory项目地址https://gitcode.com/gh_mirrors/go/GOAD点击查看免费下载本文基于 GOAD 仓库的 Windows 部署文档 install_with_vmware_Windows.md 展开面向「Windows 宿主机 VMWare Workstation」这一经典组合给出在 GOAD 标准 VMWare 部署流程详见 install_with_vmware.md之上的增量步骤宿主机侧 Vagrant 工具链准备、Kali/Ubuntu 跳板机搭建、Ansible 控制节点初始化再到vagrant up拉起五台 Windows 靶机、以goad.sh一键完成域环境配置。读完本文你可以掌握在 Windows 上从零搭建 GOADGame of Active Directory攻防靶场的完整方案并理解其底层依赖检查、Vagrantfile 与 Ansible inventory 的联动机制。部署拓扑Windows 宿主机、跳板 VM 与五台靶机的分工与纯 Linux 主机部署不同Windows 环境下的 GOAD 采用「双节点 双工具链」架构角色位置承担的工作Windows 宿主机物理机/工作站运行 VMWare Workstation 与 Vagrant负责创建、启动、管理五台 Windows 靶机Kali / Ubuntu 跳板 VMVMWare Workstation 内的虚拟机充当 Ansible 控制节点执行全部配置 Playbook五台 Windows 靶机VMWare Workstation 内GOAD 的 AD 域环境DC01/DC02/DC03 SRV02/SRV03核心思路由于 Ansible 生态在 Windows 宿主机上运行不便文档将 Ansible 控制节点放到 VMWare Workstation 内的 Kali/Ubuntu 虚拟机中Windows 侧只保留 Vagrant 负责「提供Provision虚拟机」两者通过实验室专用网段192.168.56.0/24通信。第一阶段宿主机Windows侧工具准备部署的第一步是在 Windows 宿主机上安装以下工具VMWare WorkstationPro 版必须使用支持克隆与快照的 Pro 版本Workstation Player 无法配合 Vagrant 管理 clone/snapshotVagrant for Windows从官方渠道安装 Windows 版本VMware Utility DriverVagrant 的 VMWare provider 依赖的后台服务组件安装后需保证其证书与服务正常运行两个 Vagrant 插件vagrant-reload靶机首次启动后需要重启以完成初始化vagrant-vmware-desktopVagrant 连接 VMWare Workstation 的官方 provider 插件。插件安装命令在 PowerShell 中执行vagrant plugin install vagrant-reload vagrant plugin install vagrant-vmware-desktop提示若你的发行版/系统还需要 WinRM 相关 gem部分场景下vagrant up依赖 winrm 通信可补充安装vagrant plugin install winrm、winrm-fs、winrm-elevated详见 install_with_vmware.md 中的说明。第二阶段搭建 Kali/Ubuntu 跳板 VM双网卡配置Virtual Network Editor在 VMWare Workstation 中新建 Kali 或 Ubuntu 虚拟机必须为其配置两块网卡第一块网卡NAT 或 Bridged 模式——用于访问 Internet完成软件包下载与git clone第二块网卡仅主机Host-Only模式——通过 VMWare Workstation 的Virtual Network Editor创建一个与 GOAD 默认网段一致的子网192.168.56.0子网掩码255.255.255.0。这块 Host-Only 网卡将承载 Ansible 与五台靶机之间的 WinRM 管理流量网段必须与 ad/GOAD/providers/vmware/Vagrantfile 中定义的{{ip_range}}默认192.168.56严格对应否则 Ansible 将无法寻址到靶机。安装 Ansible 与依赖进入跳板 VM按文档顺序执行以下命令完成 Python 侧依赖安装pip install --upgrade pip pip install ansible-core2.12.6 pip install pywinrm sudo apt install sshpass lftp rsync openssh-clientansible-core2.12.6是 GOAD 官方测试通过的版本仓库 scripts/check.sh 中也以2.12.6作为校验基准pywinrm是 Ansible 通过 WinRM 协议管理 Windows 靶机的关键依赖sshpass、lftp、rsync等为容器/文件同步等辅助操作提供支持。随后克隆 GOAD 仓库并进入ansible目录安装 Galaxy 依赖git clone GOAD 仓库地址 # 例如本项目镜像https://gitcode.com/gh_mirrors/go/GOAD cd GOAD/ansible ansible-galaxy install -r ansible/requirements.yml文档原文在GOAD/ansible目录下执行该命令若从仓库根目录执行路径为ansible/requirements.yml。ansible/requirements.yml 声明了 GOAD 所需的全部 Ansible 集合Collection包括ansible.windows1.11.0、community.general、community.windows1.11.0、chocolatey.chocolatey、community.crypto、community.mysql、scicore.guacamole、ansible.posix以及geerlingguy.mysql角色。这些集合是后续所有 Playbook域部署、漏洞注入、安全配置等能够运行的前提。第三阶段依赖自检可选但强烈建议正式部署前可在跳板 VM或 Linux 环境中运行依赖检查脚本提前暴露环境缺口./goad.sh -t check -l GOAD -p vmware -m local从 scripts/check.sh 的源码可以看到vmwareprovider 分支会依次检查vmrunVMWare Workstation 命令行工具是否在 PATH 中Vagrant 是否安装且版本不低于 2.2.9vagrant-reload插件vagrant-vmware-utility服务是否在运行pgrep -f vagrant-vmware-utilityvagrant-vmware-desktop插件并会检测已废弃的vagrant-vmware-fusion插件并提示升级磁盘剩余空间是否不少于 120 GBcheck_disk_free_space内存是否不少于 24 GBcheck_ram_space选择local作为 Ansible 执行方式时还会校验 Python ≥ 3.8、ansible-core、pywinrm与 Galaxy 集合是否齐全。其中「120 GB 磁盘 / 24 GB 内存」阈值并非凭空设定——五台靶机默认内存合计约 20 GB见下文 Vagrantfile加上跳板 VM 与宿主机开销24 GB 是一个合理的基线。第四阶段Vagrant 创建五台靶机前置工作就绪后回到 Windows 宿主机在cmd 或 PowerShell中执行cd ad\GOAD\providers\vmware vagrant up该命令会从 Vagrant Cloud 拉取五台 GOAD 基础镜像虚拟机并启动。五台 VM 的定义集中在 ad/GOAD/providers/vmware/Vagrantfile 中虚拟机名IP默认网段BoxBox 版本CPU内存GOAD-DC01192.168.56.10StefanScherer/windows_20192021.05.1523000 MBGOAD-DC02192.168.56.11StefanScherer/windows_20192021.05.1523000 MBGOAD-DC03192.168.56.12StefanScherer/windows_20162017.12.1423000 MBGOAD-SRV02192.168.56.22StefanScherer/windows_20192021.05.1526000 MBGOAD-SRV03192.168.56.23StefanScherer/windows_20162019.02.1425000 MB注意 Vagrantfile 中 IP 以{{ip_range}}模板变量书写实际渲染为192.168.56网段与跳板 VM 第二块 Host-Only 网卡的网段一致。对应的 Ansible 主机分组见 ad/GOAD/providers/vmware/inventorydc01、dc02、dc03、srv02、srv03分别映射到.10/.11/.12/.22/.23并标注了各自所属域sevenkingdoms.local、north.sevenkingdoms.local、essos.local。vagrant up全部结束后五台虚拟机应处于 running 状态即可进入下一阶段。第五阶段Ansible 配置goad.sh 一键部署一键命令跳板 VMKali/Ubuntu中进入 GOAD 目录后以普通用户执行./goad.sh -t install -l GOAD -p vmware -m local -a各参数含义如下对应 goad.py 中parse_args的定义参数含义取值-t install任务类型安装install / check / start / stop / destroy / status 等-l GOAD选择实验室场景GOAD / GOAD-Light / GOAD-Mini / DRACARYS / NHA / SCCM 等-p vmware虚拟机提供方vmware / virtualbox / vmware_esxi / proxmox / aws / azure-m localAnsible 执行方式local本机执行/ docker容器执行-a仅执行 Ansible 配置阶段配合安装任务使用goad.sh 的内部逻辑goad.sh 并非简单的参数转发脚本它会在首次运行时自动完成 Python 环境准备检查 Python 版本是否 ≥ 3.8低于则退出根据 Python 版本选择依赖清单Python 3.11 使用requirements.yml≥ 3.11 使用requirements_311.yml在~/.goad/.venv创建虚拟环境并安装 pip 依赖进入ansible目录执行ansible-galaxy install -r requirements 文件最后激活 venv 并以python3 goad.py 原始参数启动实际逻辑。因此即便跳板 VM 上尚未手动安装 Ansiblegoad.sh也会自动将其装入独立 venv避免污染系统 Python。关于-a参数的一个源码级提醒原文档给出的命令带有-a--ansible_only仅执行配置阶段。不过从当前 goad.py 源码看-a或-r--run_playbook需要配合-i instance_id指定具体实例使用否则会直接报错Instance must be selected (-i) to use --run_playbook (-r) or --ansible_only (-a)也就是说若你的仓库版本较新可先不带-a执行完整安装./goad.sh -t install -l GOAD -p vmware -m local或先创建/选择实例-i后再使用-a。这属于文档与最新源码之间的版本差异实操时以实际报错为准。Ansible 如何连上 Windows 靶机Ansible 通过 WinRM 连接靶机连接参数集中定义在 ad/GOAD/data/inventory 的[all:vars]段ansible_uservagrant、ansible_passwordvagrantVagrant 创建的 Windows 靶机默认账号ansible_connectionwinrm使用 WinRM 协议ansible_winrm_server_cert_validationignore忽略自签名证书校验ansible_winrm_operation_timeout_sec400/ansible_winrm_read_timeout_sec500放宽超时适配靶场大量软件安装场景。同一文件还包含域场景配置domain_nameGOAD、DNS 转发、HTTP 代理开关enable_http_proxy等全局变量以及[dc]、[server]、[iis]、[mssql]、[laps_dc]等主机分组——这些分组正是 ansible 目录下各 Playbook如 ad.yml、adcs.yml、servers.yml的执行依据。若你希望跳过goad.sh、手动执行 Ansible可参考 install_with_vmware.md 中的等价命令在跳板 VM 内cd ansible/ ansible-playbook -i ../ad/GOAD/data/inventory -i ../ad/GOAD/providers/vmware/inventory main.yml更多配置流程细节见 docs/olddocs/provisioning.md。验证部署结果与常用信息虚拟机状态在 Windows 宿主机ad\GOAD\providers\vmware目录执行vagrant status确认五台 VM 均为 running账户与凭据所有用户、组、ACL、密码等场景数据集中在 ad/GOAD/data/config.json例如各域管理员密码sevenkingdoms.local/north.sevenkingdoms.local/essos.local的domain_password、各主机local_admin_password、以及大量实验用户的默认口令进入攻防练习以跳板 VMKali为攻击机靶机开放 SSH/WinRM/RDP 等入口即可开始 AD 攻防实验。常见问题与排错提示Vagrant 版本问题官方文档建议在 2.3.4 上测试通过部分社区反馈某些版本存在兼容问题可回退到 2.2.19apt install vagrant2.2.19WinRM gem 缺失部分发行版需额外执行gem install winrm winrm-fs winrm-elevatedubuntu 23.04 等较新版本尤其要注意否则vagrant up或 Ansible 连接会失败网段不一致跳板 VM 的 Host-Only 网卡必须与 Vagrantfile 的{{ip_range}}默认192.168.56.0/24一致这是 Windows 部署中最常见的「Ansible 找不到主机」根因资源不足五台靶机默认内存合计约 20 GBcheck.sh会警告低于 24 GB 内存与 120 GB 磁盘的情况资源紧张时可考虑先部署部分主机或使用 GOAD-Light 场景-a报错新版本仓库要求-a/--ansible_only必须配合-i instance_id使用遇到该报错时按上文「源码级提醒」调整命令即可。至此Windows VMWare Workstation 环境下的 GOAD 靶场部署完成——五台 Windows 靶机已按 Ansible 规格完成域控制器、成员服务器、漏洞场景与安全配置的构建可直接投入红蓝对抗与 AD 安全研究。赞分享网络安全渗透测试【免费下载链接】GOADgame of active directory项目地址https://gitcode.com/gh_mirrors/go/GOAD点击查看免费下载相关推荐如何在 Kubernetes 部署 FunASR 的 OpenAI 兼容 API 并用端口转发做冒烟验证如何在 Kubernetes 部署 FunASR 的 OpenAI 兼容 API 并用端口转发做冒烟验证 目标是在自己的 Kubernetes 集群里部署一个私网络安全渗透测试Typer 如何实现 --version 选项并用 is_eager 让它在其他参数处理前退出Typer 如何实现 version 选项并用 is_eager 让它在其他参数处理前退出 当你给命令行程序加一个 version 选项时期望的行为通常是只网络安全渗透测试DRACARYS 靶场实战GOAD 中从零到域管的 AD 攻击训练环境搭建与机制解析DRACARYS 靶场实战GOAD 中从零到域管的 AD 攻击训练环境搭建与机制解析 本篇以 GOAD 仓库中的 DRACARYS 实验文档 ad/DRA网络安全渗透测试上一篇如何轻松提取RPA文件unrpa终极教程让RenPy游戏资源提取变得简单高效下一篇3步搭建Talos Linux高可用MySQL集群告别数据丢失风险创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考