Hacking Wiki

Notes persos. Il y a probablement beaucoup d'erreurs donc privilégiez des sources plus fiables.

View on GitHub

Kerberoasting

L’attaque Kerberoasting consiste à récupérer des TGS associés à un utilisateur du domaine et à essayer des les cracker.

Méthodologie

Les étapes de cette attaque sont:

  1. Lister les Service Principal Names (SPNs). Un SPN est de la forme suivante TERMSRV/DC1 (où TERMSRV est le type de service et DC1 est le serveur où le service est actif).
  2. Faire des requêtes pour récupérer les tickets Kerberos.
  3. Exporter les tickets pour les manipuler
  4. Convertir les tickets en un format manipulable par JtR ou Hashcat.
  5. Casser les “hashs” avec hashcat/JtR

Attention: dans la plupart des cas les “hashs” récupérés sont basés sur RC4 et donc cassable dans un temps raisonnable. Dans certains cas l’algorithme utilisé sera du AES (avec un grand nombre de répétition) ce qui réduit considérablement l’efficacité du cassage (facteur 20 000). Plus de détail dans l’article sur Kerberos

Pratique

La suite Powersploit permet de récupérer la liste des utilisateurs qui on un SPN associé:

Get-NetUser -Domain blabla.local -DomainController XX.XX.XX.XX -Verbose -SPN

Il est possible de récupérer les parties à cracker avec Impacket et l’outil GetUsersSPN.py

GetUserSPNs.py -dc-ip 192.168.1.1 -request domain.local/validaccount

Correction

Il est difficile de bloquer Kerberoasting qui utilise le fonctionnement normal de Kerberos. On peut cependant essayer de détecter une attaque en cours:

Il est également possible de forcer l’utilisation d’AES sur les comptes utilisateurs ayant un SPN. Plus d’informations sur site de Microsoft. Cependant cette méthode est incompatible avec des environnements XP / 2003.

Ressources