Skip to main content

Active Directory Internal Pentest Lab - From Recon to Domain Compromise

·8 mins
Post Active Directory Internal Pentest Kerberoasting DCSync Pass-the-Hash Linux Windows Defensive Security
Rai2en
Author
Rai2en
Securing infrastructure, validating attack paths, and documenting the evidence.
Table of Contents
CyberLabs - This article is part of a series.
Part : This Article

Introduction
#

Ce projet est une transformation d’un ancien lab académique en projet personnel orienté portfolio. L’objectif est de documenter une chaîne d’attaque interne complète dans un environnement Active Directory, depuis la découverte réseau jusqu’à la compromission du domaine.

Le lab simule une infrastructure d’entreprise avec plusieurs machines Linux et Windows, des services exposés, des partages réseau, un contrôleur de domaine et des erreurs de configuration volontairement présentes.

L’objectif n’est pas seulement d’obtenir un shell root ou SYSTEM. L’objectif est surtout de comprendre comment une compromission initiale peut évoluer vers une compromission complète du domaine, puis de proposer des mesures défensives concrètes.

Objectifs du projet
#

Les objectifs principaux sont:

  • cartographier un réseau interne
  • identifier les services exposés et les mauvaises configurations
  • exploiter une première machine Linux
  • pivoter vers d’autres systèmes internes
  • attaquer l’environnement Active Directory
  • exploiter Kerberos via Kerberoasting
  • réaliser une attaque DCSync dans un scénario contrôlé
  • obtenir un shell privilégié
  • documenter les impacts et les recommandations défensives

Architecture du lab
#

Le domaine simulé est esdown.local.

Machines clés:

HôteRôleAdresse
SRV-BURserveur Linux exposant plusieurs services10.10.10.20
SRV-NASserveur de fichiers / stockage10.10.10.21
WIN-APPserveur applicatif Windows10.10.10.25
DCcontrôleur de domaine Active Directory10.10.10.30
Gatewaypasserelle réseau10.10.10.254

Le réseau interne utilisé pour le lab est 10.10.10.0/24.

La vue suivante distingue les rôles techniques et le chemin de confiance que l’audit cherche à remettre en cause :

flowchart LR Audit["Poste d'audit autorisé"] subgraph Linux["Zone Linux et fichiers"] BUR["SRV-BUR
FTP, SMB, NFS, SSH"] NAS["SRV-NAS
stockage et secrets"] end subgraph AD["Zone Active Directory - esdown.local"] APP["WIN-APP
serveur applicatif"] DC["DC
Kerberos, LDAP, réplication"] end Audit -->|"Reconnaissance et accès initial"| BUR BUR -->|"Clé SSH ou secret réutilisé"| NAS NAS -.->|"Identifiants découverts"| APP APP -->|"Kerberos, LDAP, SMB"| DC NAS -.->|"Accès au réseau du domaine"| DC

Le schéma ne signifie pas que chaque flèche est automatiquement exploitable. Il représente les relations à valider et les endroits où une mauvaise configuration peut transformer un accès local limité en mouvement latéral.

Méthodologie
#

La méthodologie suivie reprend une logique professionnelle de test d’intrusion interne:

  1. reconnaissance et découverte des hôtes
  2. énumération des services
  3. identification des vulnérabilités
  4. exploitation initiale
  5. post-exploitation
  6. mouvement latéral
  7. compromission Active Directory
  8. exfiltration contrôlée de preuves
  9. recommandations défensives

La chaîne d’attaque du lab peut être résumée comme une succession de changements de contexte de sécurité :

flowchart LR R["Découverte réseau"] --> E["Énumération des services"] E --> I["Shell Linux initial"] I --> P["Élévation locale"] P --> L["Secrets et mouvement latéral"] L --> K["Kerberoasting"] K --> D["Droits de réplication et DCSync"] D --> H["Pass-the-Hash"] H --> C["Compromission du domaine"] R -.-> C1["IDS et journaux réseau"] K -.-> C2["Événement 4769"] D -.-> C3["Événement 4662"] H -.-> C4["4624 et télémétrie NTLM"]

Phase 1 - Reconnaissance réseau
#

La première étape consiste à identifier les hôtes actifs.

nmap -sn 10.10.10.0/24

Ensuite, un scan plus détaillé est réalisé sur les machines détectées:

nmap -sC -sV -p- 10.10.10.20
nmap -sC -sV -p- 10.10.10.21
nmap -sC -sV -p- 10.10.10.30

Les objectifs de cette étape sont:

  • identifier les ports ouverts
  • détecter les versions des services
  • repérer les services anciens ou mal configurés
  • comprendre les relations entre les systèmes

Phase 2 - Analyse des services exposés
#

Plusieurs services intéressants sont identifiés:

  • FTP
  • SMB
  • NFS
  • HTTP
  • SSH
  • services Windows liés au domaine

Le serveur SRV-BUR expose une surface importante. C’est un bon candidat pour obtenir un premier accès.

Vulnérabilité critique - vsFTPd 2.3.4
#

Le service FTP expose une version vulnérable connue: vsFTPd 2.3.4.

Cette version est célèbre pour sa backdoor introduite dans un paquet compromis. Dans un environnement réel, la présence d’un tel service est critique, car elle permet potentiellement une exécution de commande non authentifiée.

Exploitation conceptuelle:

nmap --script ftp-vsftpd-backdoor -p21 10.10.10.20

Impact:

  • exécution de commande distante
  • accès système initial
  • point d’entrée pour la post-exploitation

Énumération SMB
#

L’énumération SMB permet d’obtenir des informations sur les partages, la politique de mot de passe et les comptes visibles.

enum4linux -a 10.10.10.20
smbclient -L //10.10.10.20/ -N

Points recherchés:

  • partages anonymes
  • répertoires accessibles en écriture
  • informations système
  • comptes utilisateurs
  • politique de mot de passe faible

Énumération NFS
#

NFS est également analysé, car une mauvaise configuration peut permettre de monter un partage sensible depuis une machine attaquante.

showmount -e 10.10.10.20
mount -t nfs 10.10.10.20:/share /mnt/nfs

Risques principaux:

  • exposition de fichiers sensibles
  • permissions trop permissives
  • possibilité d’écrire une clé SSH
  • pivot vers un autre utilisateur ou serveur

Accès initial et post-exploitation
#

Après exploitation du premier service vulnérable, l’objectif est de stabiliser l’accès, comprendre le système et rechercher des secrets.

Commandes utiles:

id
hostname
ip a
sudo -l
find / -perm -4000 -type f 2>/dev/null
find / -name "*.key" -o -name "id_rsa" 2>/dev/null

Cette phase permet notamment de découvrir une clé SSH utilisable pour pivoter vers un autre serveur interne.

Pivot vers SRV-NAS
#

La découverte d’une clé SSH ou d’un secret réutilisé permet de tenter un mouvement latéral.

ssh -i id_rsa user@10.10.10.21

Une fois sur le NAS, l’analyse se concentre sur:

  • les droits sudo
  • les partages montés
  • les scripts exécutés en privilèges élevés
  • les permissions faibles

Élévation de privilèges Linux
#

Plusieurs vecteurs sont évalués:

  • mauvaise configuration sudo
  • répertoires partagés modifiables
  • fichiers sensibles lisibles
  • tâches planifiées
  • SUID binaries

Exemple de vérification:

sudo -l
find / -perm -4000 -type f 2>/dev/null

Un serveur NAS mal configuré devient souvent un pivot majeur dans un réseau interne, car il contient des fichiers utilisateurs, des sauvegardes ou des secrets applicatifs.

Passage à Active Directory
#

Après obtention d’identifiants ou d’un accès au réseau Windows, l’attaque se déplace vers le domaine esdown.local.

Objectifs:

  • identifier les utilisateurs du domaine
  • trouver les comptes de service
  • repérer les SPN
  • tenter Kerberoasting
  • valider les privilèges obtenus

Kerberoasting
#

Kerberoasting cible les comptes de service Active Directory possédant un SPN.

Commande utilisée dans le lab:

impacket-GetUserSPNs esdown.local/USER:'PASSWORD' -dc-ip 10.10.10.30 -request

Le ticket récupéré est ensuite cracké hors ligne:

hashcat -m 13100 kerb_hash.txt /usr/share/wordlists/rockyou.txt

Dans le lab, un compte de service faible permet de récupérer un mot de passe exploitable.

Impact:

  • compromission d’un compte de service
  • accès à des applications internes
  • escalade possible si le compte est trop privilégié

DCSync
#

DCSync est une attaque critique contre Active Directory. Elle abuse des droits de réplication du domaine pour récupérer les secrets du contrôleur de domaine.

Exemple de commande:

impacket-secretsdump esdown.local/USER:'PASSWORD'@10.10.10.30

Les secrets récupérés peuvent inclure:

  • hash NTLM
  • clés Kerberos
  • secrets du compte krbtgt
  • hash administrateur

Le hash krbtgt est particulièrement sensible, car il peut permettre la création de Golden Tickets.

Pass-the-Hash et shell SYSTEM
#

Une fois un hash administrateur récupéré, il est possible de tester une attaque Pass-the-Hash dans le lab.

impacket-psexec -hashes :<NTLM_HASH> esdown.local/Administrateur@10.10.10.30

Objectif:

  • obtenir un shell avec privilèges élevés
  • confirmer l’impact de la compromission du domaine

Chemin d’attaque alternatif - EternalBlue
#

Un chemin alternatif étudié dans le projet concerne EternalBlue (MS17-010).

Ce scénario montre qu’une vulnérabilité historique non corrigée peut encore représenter un risque critique si des systèmes anciens restent connectés au réseau.

Points défensifs:

  • patch management strict
  • segmentation réseau
  • blocage SMB entre zones non nécessaires
  • détection des scans SMB

Recommandations défensives
#

Patch management
#

  • corriger les services vulnérables
  • supprimer les versions obsolètes
  • maintenir un inventaire logiciel à jour

Durcissement des services
#

  • désactiver FTP si inutile
  • remplacer FTP par SFTP/SSH durci
  • limiter SMB aux hôtes nécessaires
  • restreindre NFS par IP et permissions strictes

Active Directory
#

  • limiter les privilèges des comptes de service
  • utiliser des mots de passe longs et aléatoires
  • auditer les SPN
  • surveiller les requêtes Kerberos anormales
  • protéger le compte krbtgt

Détection
#

À surveiller:

  • scans Nmap internes
  • montage NFS inhabituel
  • énumération SMB
  • requêtes Kerberoasting
  • DCSync non légitime
  • Pass-the-Hash

Une détection exploitable doit relier l’action offensive à une source de preuve précise. Les événements ci-dessous sont des points de départ, pas des règles universelles :

PhaseTechnique ATT&CK indicativeTélémétrie utileSignal à corréler
Découverte réseauT1046 Network Service Discoverypare-feu, IDS, NetFlowbalayage horizontal ou vertical depuis un poste non administrateur
Accès aux partagesT1021.002 SMB/Windows Admin Sharesjournaux SMB, événements de connexion, EDRaccès à plusieurs hôtes ou partages sensibles dans un intervalle court
KerberoastingT1558.003 Kerberoastingévénement Kerberos 4769 sur le DCvolume inhabituel de TGS, comptes de service rares, chiffrement RC4 quand il n’est pas attendu
DCSyncT1003.006 DCSyncévénement 4662, audit annuaire, EDR DCdroits de réplication exercés par un compte ou depuis un hôte qui n’est pas un DC
Pass-the-HashT1550.002 Pass the Hash4624, NTLM, création de service distante, EDRauthentification réseau privilégiée sans chaîne interactive ou administrative cohérente

Le contexte est essentiel. Un événement 4769 ou 4624 isolé est normal dans un domaine. La valeur vient de la combinaison entre identité, hôte source, volume, type de chiffrement, horaire et séquence des actions.

Preuves et critères de réussite
#

Pour rendre le lab réutilisable et auditable, chaque phase doit produire une preuve minimale sans exposer de secret réel :

ÉtapePreuve conservéeCritère de réussite
Reconnaissanceinventaire horodaté des hôtes et servicessurface réseau reproduite sans hôte hors périmètre
Accès initialcommande, version vulnérable et identité du shellaccès obtenu uniquement sur la cible autorisée
Pivotroute empruntée et secret expurgéaccès au second segment démontré et révocable
Active DirectorySPN, ACL et chemin de privilèges anonymisésrelation causale entre compte faible et privilège obtenu
Compromissionpreuve d’identité SYSTEM ou équivalentimpact démontré sans conserver de hash ni de ticket exploitable
Défenseévénements générés et règle de détection associéeaction visible dans les journaux attendus

Références techniques
#

Ce que ce projet m’a apporté
#

Ce lab m’a permis de relier plusieurs compétences importantes:

  • pentest Linux
  • énumération réseau interne
  • exploitation de services anciens
  • pivot et post-exploitation
  • attaques Active Directory
  • raisonnement défensif sur les chemins d’attaque

Conclusion
#

Ce projet montre comment une compromission initiale sur un serveur Linux peut progressivement mener à la compromission complète d’un domaine Active Directory.

La leçon principale est simple: dans un réseau interne, chaque mauvaise configuration peut devenir un maillon d’une chaîne d’attaque plus large. La défense doit donc combiner patch management, segmentation, durcissement, supervision et contrôle strict des privilèges.

CyberLabs - This article is part of a series.
Part : This Article