1. GOAD项目概述与部署价值
GOAD(Game of Active Directory)是一个开源的Active Directory渗透测试实验环境,它模拟了企业级AD域环境中的各种安全漏洞和攻击场景。这个项目最初由Orange Cyberdefense团队开发,现已成为安全研究人员和红队演练的标准工具之一。
在Ubuntu 24.04系统上通过VirtualBox部署GOAD具有几个显著优势:
- 完全隔离的测试环境,不影响主机系统
- 可以随时创建快照和回滚
- 资源占用相对较小
- 兼容性良好,特别是新版Ubuntu对虚拟化支持更完善
重要提示:GOAD环境仅限合法授权测试使用,部署前请确保已获得必要授权。该环境包含故意设置的安全漏洞,切勿在生产环境中使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与工具安装
2.1 系统要求与基础配置
建议的硬件配置:
- 至少8GB内存(16GB更佳)
- 100GB可用磁盘空间
- 支持硬件虚拟化的CPU
首先更新Ubuntu系统:
bash复制sudo apt update && sudo apt upgrade -y
安装必要的依赖包:
bash复制sudo apt install -y git curl wget build-essential dkms linux-headers-$(uname -r)
2.2 VirtualBox安装与配置
从Oracle官方仓库安装最新版VirtualBox:
bash复制wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
sudo apt install -y virtualbox-7.0
安装扩展包增强功能:
bash复制wget https://download.virtualbox.org/virtualbox/7.0.12/Oracle_VM_VirtualBox_Extension_Pack-7.0.12.vbox-extpack
sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-7.0.12.vbox-extpack
配置VirtualBox网络:
- 打开VirtualBox全局设置
- 进入"网络"选项卡
- 添加一个Host-Only网络适配器(vboxnet0)
- 设置IPv4地址为192.168.56.1,子网掩码255.255.255.0
3. GOAD环境部署流程
3.1 获取GOAD项目文件
克隆官方仓库:
bash复制git clone https://github.com/Orange-Cyberdefense/GOAD.git
cd GOAD
下载预构建的虚拟机镜像:
bash复制wget https://github.com/Orange-Cyberdefense/GOAD/releases/download/v1.1/GOAD-v1.1.ova
3.2 导入虚拟机镜像
在VirtualBox中导入OVA文件:
- 点击"文件"→"导入虚拟设备"
- 选择下载的GOAD-v1.1.ova文件
- 确保勾选"重新初始化所有网卡的MAC地址"
- 根据硬件配置调整CPU和内存分配(建议每个VM至少2GB内存)
导入后会看到三个虚拟机:
- DC01(域控制器)
- SRV01(成员服务器)
- WKSTN01(工作站)
3.3 网络配置调整
为每个虚拟机配置网络适配器:
- 选择虚拟机→设置→网络
- 适配器1:NAT(用于互联网访问)
- 适配器2:Host-Only网络(vboxnet0)
启动顺序建议:
- 先启动DC01并等待完全启动(约5分钟)
- 再启动SRV01和WKSTN01
4. 环境验证与基础使用
4.1 测试域环境连通性
从WKSTN01机器上测试:
powershell复制ping dc01.goad.local
nslookup goad.local
4.2 准备攻击机环境
在Ubuntu主机上安装常用渗透测试工具:
bash复制sudo apt install -y kali-tools-top10 impacket-scripts bloodhound neo4j
配置BloodHound数据收集:
bash复制python3 -m pip install bloodhound
4.3 基础攻击演示示例
使用Impacket进行Kerberoasting攻击:
bash复制GetUserSPNs.py -dc-ip 192.168.56.10 GOAD.LOCAL/username:password -request
使用BloodHound收集域信息:
bash复制bloodhound-python -d GOAD.LOCAL -u username -p password -ns 192.168.56.10 -c All
5. 常见问题与解决方案
5.1 虚拟机启动问题
问题1:虚拟机启动时卡在"Loading operating system..."
- 检查是否启用了硬件虚拟化(BIOS设置)
- 尝试禁用3D加速(显示设置中)
问题2:网络连接失败
- 确认Host-Only网络配置正确
- 检查虚拟机防火墙设置
- 在虚拟机中运行
ipconfig /all验证IP分配
5.2 域环境问题
问题1:无法加入域
- 确保DC01已完全启动
- 检查DNS解析是否正常
- 验证时间同步(域环境对时间敏感)
问题2:认证失败
- 使用默认凭据:GOAD.LOCAL/administrator:Password123!
- 检查账户是否被锁定
5.3 性能优化建议
- 为VirtualBox分配更多主机资源
- 关闭不需要的虚拟机服务
- 使用SSD存储提高IO性能
- 定期创建快照以便快速恢复
6. 高级配置与扩展
6.1 自定义域环境
编辑/GOAD/ansible/inventory文件可以修改:
- 域名称
- 用户和组结构
- 安全策略设置
重新配置环境:
bash复制cd GOAD/ansible
ansible-playbook main.yml
6.2 集成其他安全工具
在Ubuntu主机上配置Metasploit:
bash复制curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall
./msfinstall
配置Cobalt Strike团队服务器(需合法授权):
bash复制java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=50050 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=password -server -XX:+AggressiveHeap -XX:+UseParallelGC -classpath ./cobaltstrike.jar server.TeamServer $*
6.3 监控与日志分析
在Ubuntu主机上安装ELK堆栈用于日志分析:
bash复制sudo apt install -y elasticsearch kibana logstash
sudo systemctl enable --now elasticsearch kibana
配置Windows事件转发从域控制器收集日志:
- 在DC01上配置Windows事件转发
- 在Ubuntu上安装Winlogbeat
- 配置Logstash接收和分析安全事件
7. 安全注意事项与最佳实践
- 网络隔离:确保GOAD环境与生产网络完全隔离
- 定期更新:关注GOAD项目更新,及时获取最新漏洞场景
- 凭证管理:不使用简单密码作为测试账户凭据
- 日志记录:详细记录所有测试活动以备审计
- 法律合规:确保所有测试活动都有明确授权范围
在Ubuntu主机上配置防火墙规则限制访问:
bash复制sudo ufw allow from 192.168.56.0/24
sudo ufw deny in on vboxnet0
sudo ufw enable
对于长期运行的测试环境,建议:
- 定期更换所有账户密码
- 监控虚拟机资源使用情况
- 建立标准的测试流程文档
- 使用Vagrant等工具实现环境自动化部署
