Challenge : Trouver le mot de passe de l'utilisateur à partir du fichier PCAP fourni.
Fichier : Bhack2TheFuture.pcap
But : Cracker le hash Kerberos AS-REP.
L'ouverture du fichier PCAP dans Wireshark ou l'analyse avec TShark révèle du trafic Kerberos. Plus précisément, il y a un paquet AS-REP (Type de message 11), qui est une réponse du KDC à la demande d'authentification de l'utilisateur.
Nous pouvons voir que le client est jacob et le royaume (realm) est BHACK.LOCAL.
Le paquet AS-REP contient une partie chiffrée (enc-part) qui, pour l'etype 23 (RC4-HMAC), est chiffrée avec le hash du mot de passe de l'utilisateur. Nous pouvons l'extraire pour effectuer une attaque par force brute hors ligne (AS-REP Roasting).
Utilisation de tshark pour extraire les champs nécessaires :
tshark -r Bhack2TheFuture.pcap \
-Y "kerberos.msg_type == 11" \
-T fields \
-e kerberos.CNameString \
-e kerberos.realm \
-e kerberos.encryptedKDCREPData_cipherSortie :
jacob BHACK.LOCAL 261f17155772ee636cf16310deefba7fe7452a1cc8611e4a489b121e9e30ab681600f41683ebcaff2441ef7762d1769042a28ec670770c58b33e2a6d70792d4e37066abdd68ce09700d08c20730e666b2a55202133ee98c62291b60953819b0eecffe871bba7610adc6bd8fc69ecdc476d9bae90a933c0809d096964e63e2e9a7bea06e9e267ac8b5fcb817135b108758438477e92314f0cb55719cc3a40768ead61dc27b737d710ff35872e5bde929f52c5f4450b80c44b9454c8c4966b9c
Le mode Hashcat 18200 (Kerberos 5, etype 23, AS-REP) attend le format suivant :
$krb5asrep$23$user@realm:checksum$ciphertext
- Utilisateur :
jacob - Royaume (Realm) :
BHACK.LOCAL - Checksum : Les 16 premiers octets (32 caractères hexadécimaux) du chiffrement.
- Ciphertext : Les octets restants du chiffrement.
Découpage du chiffrement :
- Checksum :
261f17155772ee636cf16310deefba7f - Ciphertext :
e7452a1cc8...(reste de la chaîne)
Chaîne de hash finale :
$krb5asrep$23$jacob@BHACK.LOCAL:261f17155772ee636cf16310deefba7f$e7452a1cc8611e4a489b121e9e30ab681600f41683ebcaff2441ef7762d1769042a28ec670770c58b33e2a6d70792d4e37066abdd68ce09700d08c20730e666b2a55202133ee98c62291b60953819b0eecffe871bba7610adc6bd8fc69ecdc476d9bae90a933c0809d096964e63e2e9a7bea06e9e267ac8b5fcb817135b108758438477e92314f0cb55719cc3a40768ead61dc27b737d710ff35872e5bde929f52c5f4450b80c44b9454c8c4966b9c
Utilisez Hashcat pour cracker le hash :
hashcat -m 18200 -a 0 hash.txt wordlist.txtRésultat : Le mot de passe est trouvé :
Maintenant que nous avons toutes les informations :
- UserPrincipalName :
jacob@BHACK.LOCAL(extrait du PCAP / Hash) - Mot de passe :
marty123(trouvé via Hashcat)
Le format du flag est MartyMcFlag{UserPrincipalName:Password}.
Flag Final :
MartyMcFlag{jacob@BHACK.LOCAL:marty123}