Active Directories
Les AD (Active Directories) sont des annuaires LDAP. Sur une machine avec un AD, est généralement présent un ensemble de services de partage de ressources centralisées sur un réseau d'ordinateurs (généralement Windows) avec un système d'identification et d'authentification.
Il existe deux difficultés dans la pénétration d'AD
:
Pénétration via authentification (Les protocoles d'authentifications sont
NTLM
etKerberos
)Escalade de privilèges (Via analyse des permissions et accès de l'utilisateur pawned)
Plusieurs services peuvent être observés sur un AD
:
Kerberos
port:88
(service d'authentification Kerberos)RPC
port:135/593
(Remote Procedure Call)LDAP
port:389/636
(Consultation de l'annuaireAD
)SMB
port:445
(service de partage de ressources qui permet d'accéder à ces ressources)RDP
port:3889
(Remote Desktop Protocol)WinRM
port:5985/5986
(Remote Shell)
#Enumérer les users|groups|shares|pass-pol
sudo crackmapexec smb <IP> -u <user> -p <mdp> --groups|users|shares|pass-pol
Non authentifié
Ne pas confondre hash NTLM (LM:NTLM) qui peut être utilisé pour l'authentification via du PtH (Pass the Hash) et Net-NTLMv1/2 qui ne peuvent pas être utilisés comme ceci et doivent être bruteforce.
Si le service
RPC
existe, essayer d'énumérer des informations utilisateurs avec rpcclient.Vérifier si on peut s'identifier sans mdp ni user.
On peut récupérer beaucoup d'informations avec ldapsearch si un service
LDAP
tourne. (Peut fonctionner en non authentifié)SMB Relay
: Attaque MitM permettant d'avoir l'accès de l'utilisateur lors de sa tentative de connexion. Si SMB Signing est activé sur la machine, l'attaque est impossible.On peut énumérer les utilisateurs de Kerberos avec Kerbrute ou crackmapexec.
AS_REP Roasting
: Possibilité d'obtenir le TGT sans avoir le mdp (l'utilisateur ciblé doit avoir la pré authentification désactivée). Permet ensuite de cracker lehash
enbruteforce
en local.
Authentifié
On peut lancer BloodHound pour commencer à trouver des chemins d'attaque et consulter les fichiers et permissions et groupes de chaque utilisateur de manière simple et efficace :
#Installer Java si besoin pour Neo4j
sudo apt-get install openjdk-11-jdk
#Installer Neo4j
sudo apt-get install apt-transport-https
sudo add-apt-repository universe
sudo apt install neo4j
#Installer BloodHound
sudo apt install bloodhound
#Lancer neo4j (accessible via https://localhost:7474/)
sudo neo4j console
#Lancer BloodHound
bloodhound
#Générer les json à charger dans BloodHound.
python3 -m pip install bloodhound
bloodhound-python -u username -p 'mdp' -ns ip_du_serveur -d domaine.local -c all
Une fois authentifié, on peut lister tous les utilisateurs de l'
AD
afin de récupérer leur nom et vérifier qu'aucun ne sont vulnérables à l'AS_REP Roasting.
#Non authentifié : Vérifier parmis une liste d'utilisateurs si ils sont AS_REP Roastsable
impacket-GetNPUsers domain/ -usersfile <users_file> -format [hashcat|john] -outputfile outfile
#Authentifié : Vérifier les comptes AS_REP Roastable pour tous les utilisateurs
impacket-GetNPUsers domain/user:passwrd -request -format [hashcat|john] -outputfile outfile
Kerberoast : On peut demander les TGS de tous les comptes SPN (Service Principal Name) si on est authentifié. Ils peuvent être bruteforce mais les mdp sont aléatoires. Cependant, si un compte utilisateur est
SPN
, alors on pourra peut être cracker le mot de passe via son TGS.
#Consulter la date de votre machine
date
#Télécharger rdate (remote date)
sudo apt install rdate
#Consulter la date de la machine distante
rdate -p <IP>
#Synchroniser votre date avec celle de la machine distante
rdate -s <IP>
On peut obtenir les hashs
NTLM
des comptes GMSA (Group Managed Service Account) auquel notre compte authentifié a accès via du GMSA Dumping. On pourra donc faire duPtH
(Pass the Hash).
python3 gMSADumper.py -u user -p password -d domain.local
Si l'utilisateur authentifié peut gérer le DC (Domain Controller), alors il aura les permissions pour voir les hashs des mots de passe d'autres utilisateurs. On peut les dump via le module secretsdump de impacket.
Selon la configuration d'un domaine enfant, la compromission de celui-ci peut permettre une escalade de privilège sur le domaine parent via injection de SID-History.
Si l'utilisateur authentifié est dans le groupe Account Operators, il peut changer le mot de passe et faire plusieurs autres manipulations sur les autres utilisateurs. D'autres groupes ont des permissions qui peuvent s'utiliser pour
privesc
:
Il peut tout faire au sein du domaine.
Il peut gérer les comptes, notamment changer les mots de passe d'autres comptes plus privilégiés.
Il a des permissions de lecture et d'écriture sur beaucoup de fichiers du domaine, voire tous.
Peut tout faire dans le domaine.
Peut tout faire dans une fôret.
Peut créer de nouvelles GPO
et donc privesc
via ce procédé.
Peut se connecter en RDP
aux machines du domaine, notamment le serveur d'administration de l'AD
.
Groupe vestige qui possède des permissions d'administrateur réduites.
Peut permettre à un utilisateur de configurer des trusts unidirectionnels de manière à ce que les ressources de son propre domaine soient accessibles depuis d'autres domaines.
Peut accéder à la base de données des clés d'authentification passwordless
de Windows Hellow For Business
(les empreintes, reconnaissance faciale, etc..)
Pareil que le précédent mais pas uniquement dans son domaine, mais dans l'ensemble des domaines de la fôret.
Peut gérer la configuration TCP/IP
et divers options réseau du domaine. On peut s'en servir pour mettre en place un montage de type MitM.
Peut administrer toute la configuration de la politique de réplication. Y compris le chiffrement. Peut alors accéder à l'ensemble des données auxquelles il est autorisé à accéder.
Peut modifier les autorités de certification, facilitant (voire rendant possible selon la configuration des machines) les attaques de type MitM.
Peut répliquer les mots de passe de tous les utilisateurs du domaine sur un autre DC (potentiellement possédé par l'attaquant)
Peut ajouter des certificats (considérés alors comme valides) sur les machines du domaine. Même problème que le groupe Certificate Service DCOM Access, c'est à dire une facilitation des attaques de type MitM.
Peut gérer les clés et certificats présents sur les machines du domaine, notamment importer et exporter des clés privées.
Peut gérer administrer les serveurs DNS du domaine. Les conséquences sont alors du déni des service, par suppression d'enregistrements, ou bien des attaques élaborées de phishing via modification des enregistrements, et encore bien d'autres.
Peut répliquer les mots de passe d'utilisateurs, via soon droit étendu Replicating Directory Changes All
.
On peut choper les
hashs
avec responder en faisant exécuter un fichier automatiquement par un utilisateur lorsqu'il entre dans le répertoire concerné en uploadant certains types de fichiers sur leSMB
.Pour toute action spécifiques, l'exécution de commandes PS (PowerShell) nécessite une connexion à
WinRM
(avec evil-winrm par exemple), ce n'est pas possible viaSMB
. On peut cependant essayer diverses méthodes avec crackmapexec.
#Connexion WinRM avec mot de passe
evil-winrm -u <username> -p <password> -i <IP>/<Domain>
#Connexion WinRM avec Pass the Hash NTLM
evil-winrm -u <username> -H <Hash> -i <IP>
Dernière mise à jour
Cet article vous a-t-il été utile ?