2. Objectif : cracker des mots de passe de services AD faibles qui
peuvent être utilisés pour effectuer des mouvements latéraux, une
escalade de privilège ou de la persistance.
N’importe quel utilisateur du domaine AD peut faire une requête pour
n’importe quel service
- Aucun privilège n’est requis
- Le service ne doit pas être déjà actif
Le Kerberoasting n’est pas détectable avec les alertes de sécurité par
défaut.
Kerberoasting
4. Rappel : Fonctionnement de Kerberos
1. Le client envoie sa demande de TGT
[KRB_AS_REQUEST]
2. Si l’utilisateur est validé, l’AS va construire 2 parties et
les envoyer au client [KRB_AS_REPONSE]
3. L’utilisateur effectue sa demande de TGS (avec SPN)
en envoyant : [KRB_TGS_REQUEST]
4. Le KDC va envoyer les informations pour que
l’utilisateur puisse faire sa demande auprès du service
[KRB_TGS_RESPONSE]
5. L’utilisateur fait une demande auprès du service
[KRB_AP_REQUEST]
6. Le service renvoi au client un timestamp (F) chiffrée
avec la
7. « SERVICE_SESSION_KEY ».
[KRB_AP_RESPONSE]
5. 1. Compromission d’un compte utilisateur
Dans un premier temps, l’attaquant compromet le compte d’un utilisateur du
domaine visé, l’utilisateur doit être administrateur ou avoir des privilèges
administrateur.
Une fois fait, l’attaquant s’authentifie au domaine cible
6. 2. Obtention du TGT et requête TGS
Une fois authentifié, l’attaquant reçoit un TGT (Ticket Granting Ticket) par le
KDC qui est signé et qui va lui permettre de réclamer un ticket de service
pour le service qu'il souhaite compromettre.
7. 3. Requête TGS avec SPN
Lorsque la requête pour accéder à un service est faite, Le contrôleur de
domaine récupérera les autorisations de la base de données Active
Directory et créera un ticket TGS, en le chiffrant avec le mot de passe du
service. En conséquence, seuls le service et le contrôleur de domaine sont
capables de déchiffrer le ticket puisque ce sont les deux seules entités qui
partagent le secret.
8. 4. Identifier les SPN
Le nom principal du service est un identifiant unique pour
une instance de service
ServiceClass/Host:Port (ServiceName)
DNS/PC-VICTIME-001@test.lab:443
Les SPN sont des composants clés du mécanisme de Kerberos,
ils sont utilisés par les services du domaine AD. Lors de la
demande de TGS, on peut spécifier le SPN du service auquel on
souhaite accéder. Si le SPN est enregistré, le KDC fournira une
partie des informations avec la clé secrète du compte.
Service
Principal
Name
9. Identifier les SPN
Le contrôleur de domaine
fournit à l'utilisateur le ticket
de service qui est ensuite
présenté au service, qui le
déchiffrera et déterminera si
l'utilisateur a reçu
l'autorisation d'accéder au
service.
10. 5. Casser le hash
Le chiffrement étant fait par
défaut en RC4, l’attaquant
peut utiliser des outils tels que
John the ripper, Hashcat etc…
Solution
A partir des informations fournies
l’attaquant peut tenter de trouver le
mot de passe en effectuant une
attaque par bruteforce ou
dictionnaire pour essayer de casser
le chiffrement.
Problème
11. Une fois cela fait,
l’attaquant peut
maintenant s’authentifier à
l’AD comme un utilisateur
normal et tenter des
mouvement latéraux, une
élévation de privilège et
tout ce qui peut en
découler comme actions.