This is a personal deployment writeup for GOAD, the intentionally vulnerable Active Directory lab by Orange Cyberdefense. Written to make the process accessible where the official docs can feel overwhelming.
Retour d'expérience personnel sur le déploiement de GOAD, le lab Active Directory vulnérable d'Orange Cyberdefense. Rédigé pour rendre le processus accessible là où la doc officielle peut sembler dense.
Full deployment report (PDF) / Rapport de déploiement complet (PDF)
GOAD is the exclusive work of Orange Cyberdefense.
This repository claims no ownership whatsoever over GOAD, not its architecture, not its Ansible playbooks, not its PowerShell scripts, not its vulnerable AD configurations, not its attack scenarios. Everything belongs to Orange Cyberdefense and its contributors.
What you'll find here is strictly a personal experience report: the exact commands I ran, the errors I hit, how I resolved them, and what I built on top of the lab afterwards. Nothing is redistributed. Always clone GOAD from the official repository.
GOAD est le travail exclusif d'Orange Cyberdefense.
Ce repository ne revendique aucune propriété sur GOAD, ni son architecture, ni ses playbooks Ansible, ni ses scripts PowerShell, ni ses configurations AD vulnérables, ni ses scénarios d'attaque. Tout appartient à Orange Cyberdefense et à ses contributeurs.
Ce que vous trouverez ici est strictement un rapport d'expérience personnel : les commandes exactes exécutées, les erreurs rencontrées, les résolutions appliquées, et ce que j'ai construit par-dessus le lab ensuite. Rien n'est redistribué. Toujours cloner GOAD depuis le dépôt officiel.
An intentionally vulnerable Active Directory lab maintained by Orange Cyberdefense. It provisions multiple Windows Server VMs with realistic AD misconfigurations, Kerberoasting, ACL abuse, delegation issues, trust attacks. So you can practice both offensive and defensive techniques in a safe, isolated environment.
Un laboratoire Active Directory intentionnellement vulnérable maintenu par Orange Cyberdefense. Il déploie plusieurs VMs Windows Server avec des erreurs de configuration AD réalistes, Kerberoasting, abus d'ACL, problèmes de délégation, attaques de trust pour pratiquer les techniques offensives et défensives dans un environnement sûr et isolé.
Orange Cyberdefense maintains several variants on the official repo. This guide only covers GOAD-Light. Check the official documentation for the full and up-to-date list.
Orange Cyberdefense maintient plusieurs variantes sur le dépôt officiel. Ce guide ne couvre que GOAD-Light. Consulter la documentation officielle pour la liste complète et à jour.
| Lab | VMs | RAM required / RAM requise | Notes |
|---|---|---|---|
| GOAD-Light | 3 | ~12 GB | This guide. Best starting point. / Ce guide. Meilleur point de départ. |
| GOAD | 5 | ~24 GB | Full lab, more domains and scenarios. / Lab complet, plus de domaines et scénarios. |
| SCCM | 4 | ~16 GB | Focused on SCCM/MECM attack paths. / Axé sur les attaques SCCM/MECM. |
| NHA | 5 | ~20 GB | No Hand Allowed — no guided scenarios. / Sans scénarios guidés, plus difficile. |
sevenkingdoms.local
┌───────────────────────────────────────┐
│ DC01 — 192.168.56.10 │
│ Windows Server 2016 │
│ Domain Root Controller │
└────────────────┬──────────────────────┘
│ Bidirectional trust / Trust bidirectionnel
┌────────────────▼──────────────────────┐
│ north.sevenkingdoms.local │
│ DC02 — 192.168.56.11 │
│ Windows Server 2016 │
│ Child Domain Controller │
│ │
│ SRV02 — 192.168.56.22 │
│ Windows Server 2016 │
│ Member Server · MSSQL · No Defender │
└───────────────────────────────────────┘
Host-Only network / Réseau isolé : 192.168.56.0/24
Local credentials / Credentials : vagrant / vagrant
Educational use only. Never deploy outside an isolated network.
Usage éducatif uniquement. Ne jamais déployer hors réseau isolé.
GOAD-Light was used as the target environment in a broader detection lab. Three additional layers were added on the same isolated network:
GOAD-Light a servi d'environnement cible dans un lab de détection plus large. Trois couches supplémentaires ont été ajoutées sur le même réseau isolé :
┌──────────────────────────────────────────────────────────┐
│ 192.168.56.0/24 │
│ │
│ GOAD-Light (DC01, DC02, SRV02) ←── Attack machine │
│ Target AD environment Kali Linux │
│ ↕ traffic │
│ Suricata gateway │
│ East-West traffic analysis │
│ (IDS/IPS on the network segment) │
│ ↕ alerts + logs │
│ Wazuh SIEM │
│ Log collection · Alert triage │
│ Rule correlation · DFIR │
└──────────────────────────────────────────────────────────┘
Stack :
- GOAD-Light : vulnerable AD target / cible AD vulnérable
- Kali Linux : attack machine on the same network segment / machine attaquante sur le même segment réseau
- Suricata : inline gateway for East-West traffic inspection / passerelle inline pour l'analyse du trafic Est-Ouest
- Wazuh : SIEM for log collection, alert correlation, and detection rule testing / SIEM pour la collecte de logs, corrélation d'alertes et test de règles de détection
This setup allows running real attack chains (Kerberoasting, lateral movement, DCSync...) and validating detection coverage end-to-end — from network-level signatures in Suricata to endpoint telemetry in Wazuh.
Ce setup permet d'exécuter de vraies chaînes d'attaque (Kerberoasting, mouvement latéral, DCSync...) et de valider la couverture de détection de bout en bout des signatures réseau dans Suricata jusqu'à la télémétrie endpoint dans Wazuh.
Specs of the host machine used for this deployment:
Specs de la machine hôte utilisée pour ce déploiement :
| Component / Composant | Spec |
|---|---|
| OS | Ubuntu 24.04 LTS |
| CPU | Intel Core i7 — 8 cores / cœurs |
| RAM | 16 GB |
| Disk / Disque | ~95 GB used for the lab / utilisés pour le lab |
| Hypervisor | Oracle VirtualBox 7.x |
Per VM / Par VM (GOAD-Light) :
| VM | vCPU | RAM | Disk / Disque | OS |
|---|---|---|---|---|
| GOAD-Light-DC01 | 2 | 2 GB | 60 GB | Windows Server 2016 |
| GOAD-Light-DC02 | 2 | 2 GB | 60 GB | Windows Server 2016 |
| GOAD-Light-SRV02 | 2 | 2 GB | 60 GB | Windows Server 2016 |
sudo apt install -y virtualbox virtualbox-ext-pack
sudo usermod -aG vboxusers $USER
sudo rebootReboot is mandatory : group membership only takes effect after a full session reload.
Le reboot est obligatoire : l'appartenance au groupe ne prend effet qu'après rechargement complet de la session.
sudo apt install -y vagrant ansible-core python3-pip
pip3 install --user pywinrmgit clone https://github.com/Orange-Cyberdefense/GOAD.git ~/GOAD
cd ~/GOADCritical. This avoids module not found errors and eliminates any dependency on Ansible Galaxy, which can be slow or unavailable.
Critique. Évite les erreurs module not found et élimine toute dépendance à Ansible Galaxy, qui peut être lent ou indisponible.
mkdir -p ansible/collections/ansible_collections
cp -r /usr/lib/python3/dist-packages/ansible_collections/* \
ansible/collections/ansible_collections/cat > ansible.cfg << 'EOF'
[defaults]
collections_paths = ./ansible/collections:/usr/lib/python3/dist-packages/ansible_collections
host_key_checking = False
interpreter_python = auto_silent
timeout = 60
gather_timeout = 60
deprecation_warnings = False
[ssh_connection]
pipelining = True
EOF
timeout = 60is critical : the default 10s causes falseunreachableerrors on Windows DCs that are slow to boot.
timeout = 60est critique : le défaut de 10s provoque de fauxunreachablesur les DCs Windows lents au démarrage.
./goad.sh -t install -l GOAD-Light -p virtualbox -m localExpect ~2 hours. Do not interrupt.
Comptez ~2 heures. Ne pas interrompre.
# Success / Succès
dc01 : ok=18 unreachable=0 failed=0
dc02 : ok=33 unreachable=0 failed=0
srv02 : ok=18 unreachable=0 failed=0
[*] Lab successfully provisioned in 01:57:41
VBoxManage list runningvms
ping -c 2 192.168.56.10 # DC01
ping -c 2 192.168.56.11 # DC02
ping -c 2 192.168.56.22 # SRV02
nc -zv 192.168.56.10 88 # Kerberos
nc -zv 192.168.56.10 389 # LDAP
nc -zv 192.168.56.10 445 # SMBNS_ERROR_FAILURE
→ vboxusers group not active. Reboot. / Groupe non actif. Rebooter.
couldn't resolve module ansible.windows
→ Step 4 failed or skipped. Redo it. / Étape 4 ratée ou sautée. La refaire.
unreachable=1 on dc01
→ DC01 rebooted after domain promotion. Wait 10 min, rerun. Ansible resumes. / DC01 a redémarré. Attendre 10 min, relancer. Ansible reprend.
machine already exists
→ Old VMs still registered. Clean up: / Anciennes VMs encore enregistrées. Nettoyer :
VBoxManage controlvm "GOAD-Light-DC01" poweroff 2>/dev/null
VBoxManage unregistervm "GOAD-Light-DC01" --delete
# Repeat for DC02 and SRV02 / Répéter pour DC02 et SRV02
rm -rf ~/GOAD/workspace/*Ansible Galaxy HTTP 500
→ Galaxy is down. No impact if step 4 is done. / Galaxy est down. Aucun impact si l'étape 4 est faite.
# Start / Démarrer
VBoxManage startvm "GOAD-Light-DC01" --type headless
VBoxManage startvm "GOAD-Light-DC02" --type headless
VBoxManage startvm "GOAD-Light-SRV02" --type headless
# Stop / Arrêter
VBoxManage controlvm "GOAD-Light-DC01" acpipowerbutton
VBoxManage controlvm "GOAD-Light-DC02" acpipowerbutton
VBoxManage controlvm "GOAD-Light-SRV02" acpipowerbutton
# Snapshot
VBoxManage snapshot "GOAD-Light-DC01" take "clean"
VBoxManage snapshot "GOAD-Light-DC02" take "clean"
VBoxManage snapshot "GOAD-Light-SRV02" take "clean"GOAD is created and maintained by Orange Cyberdefense.
All rights reserved to them and their contributors.
| Official repo / Dépôt officiel | github.com/Orange-Cyberdefense/GOAD |
| Official docs / Documentation | orange-cyberdefense.github.io/GOAD |
By / Par Jean Koumou · GitHub · Blue Team