Aller au contenu
Retour à la recherche en sécurité

Recherche en sécurité

Une empreinte NTLMv1, cent dollars et un rêve

Il y a quelques jours, en faisant défiler Twitter sans fin pour une sixième heure d’affilée, un gazouillis a retenu mon attention:

Moins de 150 $ et moins de 24 heures pour obtenir un accès administrateur à N’IMPORTE QUEL ordinateur où NetNTLMv1 est activé. À ce moment-là, votre EDR n’a plus d’importance. Si vous n’avez pas encore audité NTLM dans votre environnement, le meilleur moment, c’est maintenant.

(Je citerai mes sources si on me le demande, mais le compte est privé.)

— Tim McGuffin (@NotMedic) 18 avril 2024

Cela a piqué ma curiosité, mais restait juste assez vague pour que je ne sache pas trop par où commencer. Heureusement, en continuant à défiler, je suis tombé sur cet autre gazouillis:

J’ai fumé le crack

ça a fonctionné

je vide le dit en ce moment

netntlmv1 –> nt grâce à @Evil_Mog et à l’informatique moderne

Environ 20 heures avec 12 RTX 4090. Coût: 130 $

— IAMERICA (@EricaZelic) 18 avril 2024

J’avais enfin de quoi travailler! J’ai parcouru le fil d’EricaZelic (excellent compte, d’ailleurs, allez vous y abonner) et j’y ai trouvé les détails croustillants que je cherchais.

De quoi s’agit-il au fond?

En bref: grâce au service d’infonuagique de vast.ai, vous pouvez louer une configuration de cassage de mots de passe complètement démesurée, de 1 à 14 RTX 4090, et utiliser cette puissance de calcul pour casser n’importe quelle empreinte NTLMv1. Les coûts et les délais exacts varient selon le nombre de processeurs graphiques choisis, et selon la chance que vous aurez pendant le cassage, mais les tarifs se situent entre 35 cents et 8 dollars l’heure. Avec 14 RTX 4090, vous pouvez parcourir tout l’espace de clés en environ 24 heures.

Un échantillon des machines GPU offertes en location sur vast.ai, avec leur tarif horaire.

Échantillon aléatoire des configurations offertes

Si vous évoluez depuis un certain temps dans le monde des tests d’intrusion internes et du red teaming, vous savez qu’il y a quelques années, crack.sh servait à cela. On lançait Responder avec le défi bien connu de crack.sh (1122334455667788), on récupérait l’empreinte, on la formatait, on l’envoyait à crack.sh et on recevait en retour l’empreinte NT correspondante.

La sortie du service crack.sh pour une empreinte NTLMv1 soumise.

Exemple de sortie de crack.sh

Malheureusement, crack.sh ne fonctionne plus: le service est en « maintenance » depuis au moins deux ans, sans signe de retour. Même à l’époque où il existait, l’un des inconvénients du défi 1122334455667788 était que, précisément parce qu’il est si connu, il déclenche beaucoup d’EDR et de NDR, ce qui peut poser problème, surtout pendant un exercice de red teaming.

Il existe bien sûr d’autres chemins d’attaque fondés sur le relais d’empreintes NTLMv1, et vous n’avez donc pas nécessairement besoin de casser cette empreinte pour réussir. Mais les autres mauvaises configurations nécessaires à ces chemins ne sont pas toujours présentes dans l’environnement où vous vous trouvez. Et si une empreinte NTLMv1 suffit à une victoire rapide, tant mieux!

Qu’est-ce que cela signifie?

Pour revenir au gazouillis initial: tout environnement qui utilise encore NTLMv1, et oui, cela reste très courant, peut être compromis en moins de 24 heures pour un coût très abordable. Ce ne devrait probablement pas être votre PREMIÈRE tentative: si vous pouvez éviter la dépense, évitez-la. Mais cela rend la chose bien facile. Une fois les chemins d’attaque habituels épuisés et après avoir tenté de casser quelques empreintes d’utilisateurs sur une machine moins puissante sans y arriver, il est temps de forcer le contrôleur de domaine en NTLMv1 à s’authentifier auprès de votre Responder, de récupérer l’empreinte du compte de machine et de l’envoyer au cassage. Ah oui, ai-je mentionné que vous n’avez même pas besoin de l’empreinte d’un utilisateur privilégié, comme un administrateur de domaine? Les empreintes de comptes de machine sont habituellement ignorées lors du cassage pendant un mandat, parce que ces mots de passe sont incroyablement longs et complexes. Mais quand on peut parcourir tout l’espace de clés en moins de 24 heures, cette limite disparaît.

D’accord, mais comment?

Je passe l’étape de l’obtention de l’empreinte, qui dépasse la portée de ce billet, mais en résumé: lancez Responder (rappelez-vous, vous n’avez même pas besoin du défi courant 1122334455667788), puis forcez le contrôleur de domaine à vous envoyer l’empreinte de son compte de machine. Il faut ensuite manipuler un peu cette empreinte, mais un excellent outil existe déjà pour cela, réalisé par le grand EvilMog: https://github.com/evilmog/ntlmv1-multi.

Le guide du dépôt GitHub est assez exhaustif et clair, je n’entrerai donc pas dans le détail du formatage, mais voici les grandes étapes:

1. Obtenir l’empreinte NTLMv1 du compte de machine

Ligne de commande: obtention de l’empreinte NTLMv1 du compte machine.

2. Utiliser l’outil NTLMv1 Multi pour obtenir l’empreinte dans un format hashcat 14000 utilisable

Ligne de commande: conversion de l’empreinte avec NTLMv1 Multi Tool au format hashcat 14000.

3. Conserver cette sortie, vous en aurez besoin.

vast.ai a été mentionné plus haut parce que c’est le service qu’a utilisé EricaZelic et qui a inspiré cet article, mais rien ne vous y oblige: n’importe quel service d’infonuagique avec processeurs graphiques fera l’affaire. Le but de cet article n’est pas de faire de la publicité, je n’entrerai donc pas dans la configuration d’un service en particulier. Ils se ressemblent tous: vous louez une instance, vous vous y connectez en SSH, vous installez vos outils (ici, hashcat) et vous faites votre travail.

4. Créez le fichier 14000.hash sur votre machine louée surpuissante à partir de la sortie de l’étape 2, copiez la commande hashcat fournie par l’outil Multi à l’étape 2, puis… attendez.

5. Vous obtiendrez éventuellement le résultat magique pour lequel vous avez fait tout cela:

Ligne de commande: le cassage retourne les clés DES récupérées.

6. Vous y êtes presque: convertissez les clés DES obtenues en NTLM, puis assemblez-les

Ligne de commande: reconversion des clés DES en empreinte NTLM.

7. Testez votre toute nouvelle empreinte de compte de machine et videz le ntds.dit (à titre d’exemple ici; libre à vous de procéder d’une manière plus discrète, ou de faire tout autre usage de l’empreinte):

Ligne de commande: utilisation de l’empreinte du compte machine pour extraire ntds.dit.

Félicitations! Vous êtes maintenant administrateur de domaine.

Envoyez-nous un message

Seul votre courriel est requis. Choisissez un sujet, ajoutez une note, puis envoyez.

Incident en cours? Appelez la ligne 24/7 plutôt que d’attendre une réponse: +1 450 681-1681, poste 277