Extraction des mots de passe des comptes de service avec Kerberoasting
Aug 31, 2022
Dans notre article sur la reconnaissance LDAP reconnaissance post, nous avons exploré comment un attaquant peut effectuer une reconnaissance pour découvrir des comptes de service à cibler dans un domaine Active Directory (AD). Examinons maintenant une méthode qu'un attaquant peut utiliser pour compromettre ces comptes et exploiter leurs privilèges : le Kerberoasting. Cette technique est particulièrement effrayante car elle ne nécessite aucun privilège d'administrateur dans le domaine, est très facile à réaliser et est pratiquement indétectable.
Contenu connexe sélectionné :
Kerberoasting : Vue d'ensemble
Kerberoasting est une attaque qui abuse d'une fonctionnalité du protocole Kerberos pour récolter les hachages de mots de passe des comptes utilisateurs d'Active Directory : tout utilisateur de domaine authentifié peut demander des tickets de service pour un compte en spécifiant son Nom Principal de Service (SPN), et le service de délivrance de tickets (TGS) sur le contrôleur de domaine retournera un ticket qui est chiffré en utilisant le hachage NTLM du mot de passe du compte.
Contenu connexe sélectionné :
Par conséquent, une fois qu'un adversaire a découvert les SPN des comptes de service en utilisant une tactique telle que la reconnaissance LDAP, il peut collecter des tickets pour tous ces comptes. En emportant ces données hors ligne, ils peuvent effectuer une attaque par force brute pour craquer le mot de passe en clair de chaque compte de service — sans aucun risque de détection ou de blocage de compte.
Il ne faut que quelques minutes à un attaquant pour accéder à un domaine, collecter des tickets et commencer le processus de craquage. À partir de là, c'est juste une question de temps avant qu'ils ne compromettent un ou plusieurs comptes de service, qu'ils peuvent utiliser pour voler ou chiffrer des données sensibles ou causer d'autres dommages.
Les adversaires se concentrent sur les comptes de service pour plusieurs raisons. Premièrement, ces comptes ont souvent des privilèges bien plus étendus que les autres comptes d'utilisateurs AD, donc les compromettre donne à l'attaquant un accès plus important. De plus, les mots de passe des comptes de service changent rarement, donc l'adversaire est susceptible de conserver l'accès pendant longtemps. Pour comprendre les types d'accès qui peuvent être obtenus en utilisant le Kerberoasting, regardez la liste des SPN d'Active Directory maintenue par Sean Metcalf.
Kerberoasting : Comment ça fonctionne
Étape 1. Obtenez les SPNs des comptes de service.
. Il existe de nombreuses façons d'obtenir ces SPN, y compris :
- Requêtes PowerShell et reconnaissance LDAP
- Module Active Directory pour PowerShell
- Script GetUserSPNs dans le Kerberoast toolkit
- Commande Get-NetUser de PowerSploit
Étape 2. Demandez des tickets de service pour les SPN des comptes de service.
Exécutez simplement quelques lignes de PowerShell, et un ticket de service sera retourné et stocké en mémoire dans votre système.
Add-Type –AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken –ArgumentList ‘MSSQLSvc/jefflab-sql02.jefflab.local:1433’
Étape 3. Extraire les tickets de service en utilisant Mimikatz.
Mimikatz extraira les tickets locaux et les sauvegardera sur le disque pour un craquage hors ligne. Installez simplement Mimikatz et lancez une seule commande :
Étape 4. Déchiffrer les tickets.
Les tickets Kerberos sont chiffrés avec le mot de passe du compte de service associé au SPN spécifié dans la demande de ticket. Les outils Kerberoasting fournissent un script Python pour craquer les tickets et fournir leurs mots de passe en clair en exécutant un dictionnaire de hachages de mots de passe contre eux. Cela peut nécessiter une certaine configuration pour s'assurer que vous avez l'environnement requis pour exécuter le script, mais ce blog couvre ces détails.
Alternativement, vous pouvez collecter les tickets Kerberos en utilisant le script GetUserSPNs et les déchiffrer avec l'outil de récupération de mot de passe Hashcat.
Protection contre les attaques de Kerberoasting
La principale atténuation des attaques de Kerberoasting consiste à s'assurer que tous les comptes de service utilisent des mots de passe longs et complexes qui sont plus difficiles à craquer, et à les faire tourner régulièrement pour minimiser le temps pendant lequel le compte pourrait être utilisé par un adversaire qui parvient à craquer un mot de passe. L'utilisation de comptes de service gérés par groupe est une meilleure pratique pour attribuer des mots de passe aléatoires et complexes qui peuvent être changés automatiquement.
Puisque les adversaires craquent les tickets hors ligne, le processus ne génère aucun trafic réseau, rendant cette partie de l'attaque indétectable. Mais vous pouvez repérer les étapes antérieures en surveillant Active Directory avec une solution de sécurité solide. En particulier, les comptes de service sont normalement utilisés depuis les mêmes systèmes de la même manière, alors surveillez les demandes d'authentification anormales. De plus, surveillez les pics de demandes de tickets de service.
Enfin, les spécialistes de la sécurité recommandent également de désactiver le chiffrement basé sur RC4. Sinon, même si un compte utilisateur prend en charge le chiffrement AES, un attaquant peut demander un ticket chiffré en RC4, qui est plus facile à craquer qu'un ticket créé avec le chiffrement AES.
Partager sur
En savoir plus
À propos de l'auteur
Jeff Warren
Directeur des produits
Jeff Warren supervise le portefeuille de produits Netwrix, apportant plus d'une décennie d'expérience dans la gestion et le développement de produits axés sur la sécurité. Avant de rejoindre Netwrix, Jeff dirigeait l'organisation des produits chez Stealthbits Technologies, où il a utilisé son expérience en tant qu'ingénieur logiciel pour développer des solutions de sécurité innovantes à l'échelle de l'entreprise. Avec une approche pratique et un don pour résoudre des défis de sécurité complexes, Jeff se concentre sur la création de solutions pratiques qui fonctionnent. Il est titulaire d'un BS en Systèmes d'Information de l'Université du Delaware.
En savoir plus sur ce sujet
Exemple d'analyse des risques : Comment évaluer les risques
Le Triangle CIA et son application dans le monde réel
Créez des utilisateurs AD en masse et envoyez leurs identifiants par e-mail à l'aide de PowerShell
Comment ajouter et supprimer des groupes AD et des objets dans des groupes avec PowerShell
Attributs Active Directory : Dernière connexion