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 et Kerberos)
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'annuaire AD)SMB
port:445
(service de partage de ressources qui permet d'accéder à ces ressources)WinRM
port:5985/5986
(Remote Shell)
Authentifié ou non, crackmapexec permet de lister à peu près ce que l'on souhaite. Sinon enum4linux si ça ne marche pas. On peut aussi utiliser smbclient pour se connecter au service SMB.
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 le hash en bruteforce 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 :
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.
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.
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 du PtH (Pass the Hash).
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.
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.
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 le SMB.
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 via SMB. On peut cependant essayer diverses méthodes avec crackmapexec.
Dernière mise à jour