TP1 ‐ Préambule - NergYR/SAE-PentestAD GitHub Wiki
Bienvenue dans ce premier TP dédié à la découverte des outils essentiels pour le pentest Active Directory.
Vous trouverez ici une présentation synthétique de chaque outil, des exemples de commandes et des conseils pratiques.
Active Directory est le célèbre service d'annuaire développé par Microsoft.
Il permet de centraliser et de gérer les ressources d’un réseau informatique (utilisateurs, ordinateurs, groupes, imprimantes, etc.).
-
Fonctionnalités principales :
- Application de stratégies de sécurité (GPO)
- Contrôle des accès et authentification
- Gestion centralisée des objets du réseau
-
Composants clés :
- Domaine : unité de base regroupant les objets
- Contrôleur de domaine (DC) : serveur hébergeant l’annuaire
- Unités d'organisation (OU) : structuration fine des objets
- GPO (Group Policy Objects) : règles de configuration automatique
- Schéma : structure et attributs des objets
-
Rôles FSMO :
- Schema Master : modifications du schéma
- Domain Naming Master : gestion des domaines
- RID Master : attribution des identifiants uniques
- PDC Emulator : compatibilité et gestion des mots de passe
- Infrastructure Master : références inter-domaines
Exegol est un environnement de pentest AD basé sur Docker, centralisant tous les outils nécessaires à l’audit de réseaux Windows.
-
Installation rapide :
- Installez Docker Desktop
- Installez pipx si besoin :
python3 -m pip install --user pipx python3 -m pipx ensurepath
- Installez Exegol avec pipx :
pipx install exegol
- Lancez Exegol :
exegol start
- 💡 Astuce : Utilisez Exegol pour éviter d’installer des outils sensibles sur votre machine principale.
nmap est un scanner de ports et de services incontournable pour la reconnaissance réseau.
-
Commandes utiles :
- Scan rapide :
nmap -T4 -F <IP cible>
- Scan complet + détection de services/OS :
nmap -sS -sV -O <IP cible>
- Scan avec scripts SMB :
nmap --script smb-enum-shares,smb-enum-users -p 445 <IP cible>
- Scan rapide :
- 📝 Conseil : Analysez bien les résultats pour repérer les services critiques exposés (LDAP, SMB, WinRM...).
WinRM (Windows Remote Management) permet d’exécuter des commandes à distance sur des machines Windows.
-
Outil recommandé :
evil-winrm
-
Commandes types :
- Connexion :
evil-winrm -i <IP cible> -u <utilisateur> -p <motdepasse>
- Exécution de script :
evil-winrm -i <IP cible> -u <utilisateur> -p <motdepasse> -c script.ps1
- Utilisation d’un hash NTLM :
evil-winrm -i <IP cible> -u <utilisateur> -H <hash_ntlm>
- Connexion :
-
⚠️ Vérifiez que le port 5985 (HTTP) ou 5986 (HTTPS) est ouvert.
ldapsearch permet d’interroger un annuaire LDAP (comme AD) pour extraire des informations sur les utilisateurs, groupes, ordinateurs, etc.
-
Commandes types :
- Lister tous les utilisateurs :
ldapsearch -x -H ldap://<IP_DC> -D "<USER>@<DOMAIN>" -W -b "dc=<DOMAIN>,dc=fr" "(objectClass=user)"
- Lister tous les groupes :
ldapsearch -x -H ldap://<IP_DC> -D "<user>@<domaine>" -W -b "dc=<domaine>,dc=local" "(objectClass=group)"
- Chercher les ordinateurs :
ldapsearch -x -H ldap://<IP_DC> -D "<user>@<domaine>" -W -b "dc=<domaine>,dc=local" "(objectClass=computer)"
- Lister tous les utilisateurs :
- 🔎 Conseil : Adaptez le filtre LDAP selon vos besoins (ex : comptes admin).
net use est une commande Windows pour monter des partages réseau SMB/CIFS. Sur exegol / Kali, vous pouvez utiliser
smbclient
pour des fonctionnalités similaires.
-
Commandes types :
- Lister les partages :
net view \\<IP cible>
smbclient -L //IP_cible -U <utilisateur>
- Monter un partage :
net use Z: \\<IP cible>\<partage> /user:<utilisateur> <motdepasse>
smbclient //IP_cible/<partage> -U <utilisateur>
- Déconnecter un partage :
net use Z: /delete
smbclient -c 'exit' //IP_cible/<partage>
- Lister les partages :
- 🚩 Conseil : Les partages ouverts à "Everyone" sont souvent une source de failles.
john (John the Ripper) et hashcat servent à craquer des mots de passe à partir de hachages récupérés. Pour effectuer les tests nous utiliserons ce fichier de hash :
echo "test::UVSQ:1122334455667788:07516ECEB93B6C007D14EBEF8606DF5B:010100000000000000B34E256DD4DB01313150228147D1CD0000000002000800330049004700560001001E00570049004E002D0034003900390038004F00590046005200380053004F0004003400570049004E002D0034003900390038004F00590046005200380053004F002E0033004900470056002E004C004F00430041004C000300140033004900470056002E004C004F00430041004C000500140033004900470056002E004C004F00430041004C000700080000B34E256DD4DB010600040002000000080030003000000000000000000000000030000055E9C6F3E476B409194F23C9ED4E10AE08C71ABBE1C6543226B38F461BEFADB10A001000000000000000000000000000000000000900120063006900660073002F0074006500730074000000000000000000" > responder.hash
-
Commandes types :
- Craquer un hash NTLM avec john :
john hash.hash --wordlist=/opt/lists/rockyou.txt ```
- Craquer un hash NTLM avec hashcat :
hashcat -m 1000 -a 0 hash.hash rockyou.txt
- Reprendre une session hashcat :
hashcat --restore
- Craquer un hash NTLM avec john :
- 🧠 Conseil : Analysez les mots de passe trouvés pour détecter des schémas faibles ou des réutilisations.
Dans cette partie, vous allez réaliser une phase de reconnaissance discrète sur le domaine iut-velizy.uvsq.fr.
Vous êtes sur un poste client du même réseau que le contrôleur de domaine (qui fait aussi serveur DNS).
il ne faut pas oublier de changer ses DNS pour pointer sur le contrôleur de domaine (iut-velizy.uvsq.fr) pour pouvoir faire des requêtes DNS. (ex : sudo nano /etc/resolv.conf
et ajouter nameserver 172.20.10.2
)
Récolter un maximum d'informations sur l'infrastructure Active Directory sans générer trop de bruit réseau.
- But : Identifier les services ouverts sur le contrôleur de domaine.
-
Commandes à tester :
- Scan rapide des ports principaux :
nmap -T4 -F iut-velizy.uvsq.fr
- Scan ciblé sur les ports AD classiques (LDAP, SMB, DNS, Kerberos...) :
nmap -p 53,88,135,139,389,445,464,636,3268,3269 iut-velizy.uvsq.fr
- Scan rapide des ports principaux :
-
Questions :
- Quels ports sont ouverts ?
- Quels services sont associés à ces ports ?
- But : Utiliser le serveur DNS local pour obtenir des informations sur le domaine.
-
Commandes à tester :
- Interroger le serveur DNS :
dig iut-velizy.uvsq.fr ANY
- Chercher des enregistrements spécifiques :
nslookup -type=SRV _ldap._tcp.iut-velizy.uvsq.fr nslookup -type=SRV _kerberos._tcp.iut-velizy.uvsq.fr
- Interroger le serveur DNS :
-
Questions :
- Quels enregistrements DNS trouvez-vous ?
- Que révèlent-ils sur l’architecture AD ?
- But : Lister les partages accessibles anonymement ou avec des identifiants fournis.
-
Commandes à tester :
- Enumération anonyme :
smbclient -L //iut-velizy.uvsq.fr/ -N
- Connexion à un partage (si trouvé) :
smbclient //iut-velizy.uvsq.fr/<partage> -N
- Enumération anonyme :
-
Questions :
- Quels partages sont accessibles ?
- Pouvez-vous lire ou télécharger des fichiers ?
-
But : Utiliser Snaffler pour rechercher des fichiers intéressants sur les partages SMB.
-
Étapes :
- Téléchargez et exécutez Snaffler depuis Exegol ou votre poste :
(ou utilisez la version Python si disponible)
snaffler.exe --host iut-velizy.uvsq.fr --no-gui
- Analysez les résultats pour repérer des fichiers sensibles (mots de passe, scripts, configs...).
- Téléchargez et exécutez Snaffler depuis Exegol ou votre poste :
-
Questions :
- Quels types de fichiers Snaffler a-t-il trouvés ?
- Y a-t-il des informations exploitables pour la suite ?
- But : Observer le trafic généré par vos scans pour comprendre leur discrétion.
-
Commandes à tester :
- Capture réseau avec tcpdump ou Wireshark pendant un scan nmap ou une requête SMB :
sudo tcpdump -i <interface> host iut-velizy.uvsq.fr
- Capture réseau avec tcpdump ou Wireshark pendant un scan nmap ou une requête SMB :
-
Questions :
- Quelles différences voyez-vous entre un scan rapide et un scan complet ?
- Quels protocoles sont utilisés ?
- But : Faire le point sur toutes les informations collectées.
-
À faire :
- Dressez un schéma de l’infrastructure découverte (services, partages, machines, utilisateurs si trouvés).
- Listez les potentielles pistes d’attaque pour la suite.
-
Questions :
- Quelles informations sont exploitables pour une attaque ultérieure ?
- Quelles zones restent à explorer ?
- But : Utiliser les outils vus pour tenter d’identifier des comptes utilisateurs ou groupes.
-
Commandes à tester :
- Enumération LDAP anonyme (si possible) ou via des scripts simples.
- Recherche de fichiers contenant des noms d’utilisateurs sur les partages SMB.
-
Questions :
- Avez-vous trouvé des noms d’utilisateurs ou de groupes ?
- Ces informations sont-elles exploitables ?
Dans cette partie, vous allez réaliser une phase de scan plus poussée sur le domaine iut-iut-velizy.uvsq.fr (toujours contrôleur en local).
L'objectif est d'identifier des failles, des partages sensibles et de cartographier les relations d'administration dans l'Active Directory.
-
But : Lister tous les partages SMB et leurs permissions, repérer les partages en écriture.
-
Commandes à tester :
smbmap -H smb-velizy.iut-velizy.uvsq.fr
(Ajoutez des options d'authentification si besoin :
-u <user> -p <password>
) -
Questions :
- Quels partages sont accessibles en lecture/écriture ?
- Y a-t-il des fichiers ou dossiers sensibles accessibles ?
-
But : Automatiser la recherche de fichiers intéressants sur tous les partages détectés.
-
Commandes à tester :
snaffler.exe --host smb-velizy.iut-velizy.uvsq.fr --no-gui
(ou version Python si disponible)
-
Questions :
- Quels types de fichiers Snaffler a-t-il trouvés ?
- Ces fichiers peuvent-ils aider à l'escalade de privilèges ?
-
But : Cartographier les relations d'administration et trouver un chemin pour devenir admin du domaine.
-
Étapes :
- Collectez les données avec SharpHound (depuis Exegol ou un poste Windows) :
(ou utilisez la version Python si besoin)
SharpHound.exe -c All -d iut-iut-velizy.uvsq.fr -v
- Importez les résultats dans l'interface BloodHound.
- Analysez les graphes pour identifier un chemin d'escalade de privilèges jusqu'au groupe Domain Admins.
- Collectez les données avec SharpHound (depuis Exegol ou un poste Windows) :
-
Questions :
- Quel est le chemin le plus court pour devenir admin du domaine ?
- Quelles relations ou faiblesses permettent cette escalade ?
- But : Identifier des vulnérabilités connues sur les services détectés.
-
Commandes à tester :
- Utilisation de nmap avec des scripts de vulnérabilité :
nmap --script vuln -p 445,389,88 iut-iut-velizy.uvsq.fr
- Recherche de CVE sur les versions de services trouvées.
- Utilisation de nmap avec des scripts de vulnérabilité :
-
Questions :
- Des vulnérabilités connues sont-elles détectées ?
- Quelles seraient les prochaines étapes pour les exploiter ?
- But : Utiliser BloodHound pour analyser les permissions délégataires et les chemins d’escalade alternatifs.
-
Étapes :
- Dans BloodHound, cherchez les utilisateurs ayant des droits particuliers (WriteDACL, GenericAll, etc.) sur des objets sensibles.
- Essayez de trouver un chemin d’escalade qui ne passe pas par les groupes classiques.
-
Questions :
- Existe-t-il des chemins d’escalade non évidents ?
- Quelles techniques pourraient être utilisées pour exploiter ces permissions ?
- But : Synthétiser toutes vos découvertes dans un mini-rapport.
-
À faire :
- Décrivez la méthodologie utilisée.
- Listez les services, partages, utilisateurs, failles potentielles, chemins d’escalade.
- Proposez des recommandations de sécurité pour chaque point faible identifié.
-
Questions de réflexion :
- Quelles étapes ont été les plus efficaces pour la collecte d’informations ?
- Quelles actions auraient pu être détectées par un administrateur ?
- Quelles précautions prendre pour rester discret lors d’un pentest réel ?
Astuce : Prenez le temps de bien documenter chaque manipulation et résultat, cela vous aidera pour les TP suivants et pour la rédaction de rapports professionnels.