Atelier réécrit le 24 octobre 2026. Lina prépare une formation. Elle fabrique trois empreintes de mots de passe fictifs plutôt que de copier une base Windows. Les étudiants mesurent la couverture d’une table et comprennent pourquoi non retrouvé ne signifie pas invulnérable.
Le rejeu de cet atelier a été confirmé avec succès par Kenawek le 24 octobre 2026. Les sorties présentées restent illustratives ; elles ne sont pas des captures du rejeu. Adaptez les commandes à votre environnement et consignez les écarts.
En résumé
- Un script Python fabrique trois empreintes NT à partir de secrets exclusivement fictifs.
- Aucune base SAM ni identité Windows réelle n’est collectée.
- Une table NT compatible doit être installée et son chargement confirmé.
- Ophcrack est exécuté sans recherche exhaustive pour observer la couverture du jeu choisi.
- Le résultat est comparé à la référence puis rejoué sans confondre absence de résultat et robustesse absolue.
- VM LinuxPython et Ophcrack
- Corpus synthétiqueAucun compte Windows lu
- Tables NTJeu officiel séparé, couverture consignée
1. Installer et isoler les fichiers
Dans une VM Debian/Ubuntu, utilisez Bash et un dossier neuf.
sudo apt update
sudo apt install ophcrack python3-pycryptodome
ophcrack -h
umask 077
mkdir labo-ophcrack
cd labo-ophcrack
mkdir tables resultatsLes tables ne sont pas nécessairement livrées avec le paquet. Les sorties et la vérité de référence restent privées.
2. Générer les trois empreintes
Ce script ne lit aucun secret du système. Il crée des valeurs synthétiques au format pwdump.
cat > fabriquer.py <<'PY'
from pathlib import Path
from Cryptodome.Hash import MD4
import json
import secrets
corpus = [("court", "abc123"), ("motif", "Octobre2026!"),
("aleatoire", secrets.token_urlsafe(24))]
lignes = []
for rid, (nom, mot) in enumerate(corpus, 1001):
nt = MD4.new(mot.encode("utf-16le")).hexdigest()
lignes.append(f"{nom}:{rid}:aad3b435b51404eeaad3b435b51404ee:{nt}:::")
Path("corpus.pwdump").write_text("\n".join(lignes) + "\n", encoding="ascii")
Path("reference.json").write_text(json.dumps(dict(corpus)), encoding="utf-8")
print("Trois comptes fictifs, aucune lecture de Windows.")
PY
python3 fabriquer.py
wc -l corpus.pwdump
cut -d: -f1,2 corpus.pwdumpLe hash NT est calculé par MD4 sur UTF-16LE. La colonne LM contient le marqueur conventionnel vide/non disponible. Nous étudions les colonnes NT. Les mots de passe ne sont utilisés nulle part ailleurs.
3. Installer une table compatible
Téléchargez un jeu NT depuis la page officielle des tables, puis extrayez Vista free dans tables/vista_free. Les fichiers doivent être directement dans ce dossier ; une table LM/XP n’est pas adaptée.
find tables -maxdepth 2 -type f
du -sh tables/vista_free
sha256sum tables/vista_free/* > resultats/tables.sha256Notez URL, couverture, taille et date. L’empreinte locale assure la reproductibilité, pas l’authenticité sans référence fiable. Si le dossier est absent ou vide, arrêtez cette étape.
4. Mesurer la couverture des tables
Cette commande utilise le jeu préparé et désactive la recherche exhaustive afin de ne pas mélanger deux méthodes.
ophcrack -g -b -s -d ./tables -t vista_free -f corpus.pwdump -n 2 -u -l resultats/execution.log -o resultats/retrouves.pwdump
echo "Code de fin : $?"
cat resultats/execution.log-g supprime la GUI, -b désactive le bruteforce, -s la sauvegarde automatique de session. -d indique le parent et -t le nom du jeu. -f charge le corpus, -n limite les threads, -l et -o séparent journal et résultats. Vérifiez que les tables NT sont chargées avant d’interpréter un résultat.
5. Comparer sans inventer de succès
Examinez les résultats dans la VM et comparez les candidats à la vérité de référence.
cat resultats/retrouves.pwdump
python3 -m json.tool reference.json
sha256sum -c resultats/tables.sha256Ces affichages contiennent les secrets fictifs : ne les partagez pas comme preuves publiques. Le format de sortie doit être interprété selon la version du paquet. Classez chaque cas : retrouvé conforme, non retrouvé dans la couverture ou non traité. Aucun taux de récupération n’est garanti.
6. Rejouer et fermer l’exercice
Reprenez les mêmes fichiers pour contrôler la reproductibilité.
ophcrack -g -b -s -d ./tables -t vista_free -f corpus.pwdump -n 2 -u -l resultats/rejeu.log -o resultats/rejeu.pwdump
diff -u resultats/retrouves.pwdump resultats/rejeu.pwdump
wc -l corpus.pwdumpUne différence demande une explication, par exemple une interruption. Même un secret faible peut manquer si format ou couverture sont inadaptés. Conservez un bilan expurgé, puis retirez corpus et résultats selon la procédure de laboratoire ou restaurez la VM. Aucun compte réel n’a été changé.
Approfondir : mécanismes, limites, FAQ et sources
1. À quoi sert Ophcrack ?
Le site officiel Ophcrack présente un outil libre de recherche de mots de passe Windows à partir d’empreintes LM et NT, avec une interface graphique et des tables précalculées. Le projet mentionne aussi un module de recherche exhaustive pour des mots de passe simples et un mode d’audit. Ces fonctionnalités ne constituent pas une garantie de récupération.
Son intérêt pédagogique est de rendre visible le coût d’un mot de passe prévisible. Son utilisation dans une mission peut aider à examiner un corpus strictement autorisé. Avant de le choisir, il faut cependant vérifier la compatibilité des formats, la provenance du logiciel, les tables disponibles et les contraintes matérielles.
Les appellations historiques « XP » et « Vista/7 » figurent toujours sur la page officielle des tables. Elles ne doivent pas être transformées en promesse de prise en charge de tous les postes actuels. La reconnaissance du stockage Windows, l’accès aux données et le calcul sur un format d’empreinte sont trois sujets distincts.
2. Empreinte, chiffrement et authentification : les bonnes distinctions
Une fonction de hachage produit une empreinte à partir d’une entrée. Pour vérifier un mot de passe, un système peut comparer un résultat calculé avec une référence conservée. Retrouver un candidat qui correspond n’est pas « déchiffrer » l’empreinte avec une clé secrète : c’est effectuer une recherche.
La documentation Microsoft sur les mots de passe décrit notamment le hash NT comme le résultat de MD4 appliqué à la représentation Unicode du mot de passe. Ce format n’intègre pas de sel propre à chaque utilisateur. La représentation d’un secret dans Windows ne se résume toutefois pas à ce seul objet.
| Terme | Ce qu’il désigne | Confusion à éviter |
|---|---|---|
| LM | Ancienne représentation de mot de passe Windows, particulièrement faible. | La considérer comme un stockage moderne à conserver. |
| Hash NT | Empreinte dérivée du mot de passe, souvent appelée hash NTLM. | La confondre avec un échange d’authentification réseau. |
| Réponse NTLM | Donnée calculée dans un mécanisme de défi-réponse. | L’importer comme si elle était directement une empreinte NT. |
| Ticket Kerberos | Objet utilisé pour une authentification auprès d’un service ou du domaine. | Le considérer comme un mot de passe simplement encodé. |
| SAM | Base qui participe à la gestion des comptes locaux Windows. | La confondre avec toute la base des identités du domaine. |
Cette classification évite un diagnostic fréquent : annoncer que l’outil « ne fonctionne pas » alors que le fichier fourni ne correspond pas à son format d’entrée. Consignez toujours l’origine autorisée du jeu de données et la manière dont son type a été établi.
3. Comment fonctionne une table arc-en-ciel ?
- Espace choisiFormat, alphabet et longueurs définis
- PrécalculChaînes alternant hachage et réduction
- Table conservéePoints de départ et d’arrivée de chaînes
- RechercheReconstruction de chaînes puis vérification d’un candidat
La méthode des tables arc-en-ciel décrite par Philippe Oechslin est un compromis entre temps de calcul et espace de stockage. Au lieu de conserver chaque mot de passe et son empreinte, la méthode construit des chaînes. Une fonction de réduction transforme une empreinte en nouveau candidat dans l’espace choisi ; elle n’inverse pas le hachage. Les réductions varient selon la position dans la chaîne.
Lors d’une recherche, l’outil cherche à rejoindre une chaîne connue, puis la reconstruit pour vérifier un candidat. Des collisions et une couverture incomplète sont possibles. Le prétravail n’abolit donc pas le coût de recherche et ne donne pas accès à un dictionnaire universel de tous les secrets.
La page officielle des tables précise leur type et leur couverture. Les tables LM ne servent pas à rechercher directement des hashes NT. Les taux annoncés sont attachés aux caractéristiques de chaque jeu ; ce ne sont pas des taux de réussite sur les comptes d’une entreprise prise au hasard.
La longueur, l’alphabet et les modèles de composition déterminent l’espace exploré. Un secret peut être absent d’une table parce qu’il est long, mais aussi simplement parce qu’un caractère ou un format n’est pas couvert. Un résultat négatif doit toujours être accompagné de ces limites.
4. Attaque en ligne et recherche hors ligne
| Situation | Ce que l’on mesure | Contrôles pertinents |
|---|---|---|
| Tentatives sur une page de connexion | Réaction du service à des essais d’authentification. | Limitation de débit, surveillance, MFA et politique de verrouillage adaptée. |
| Recherche sur une empreinte copiée | Résistance du secret dans le budget et l’espace explorés. | Longueur, imprévisibilité, protection du stockage et de ses copies. |
| Réutilisation d’un secret déjà obtenu | Portée des droits associés et possibilités d’authentification. | Permissions limitées, secrets uniques et protections propres aux protocoles. |
Le verrouillage d’un compte agit lorsque le service reçoit et comptabilise des tentatives. Il ne ralentit pas un calcul réalisé sur une copie isolée. De même, le MFA d’une application web ne transforme pas rétroactivement une empreinte déjà copiée en donnée inutilisable.
Cela ne rend pas ces contrôles inutiles : ils protègent d’autres étapes. Le point important pour un audit est d’indiquer où se déroule l’attaque simulée. « Mot de passe recherché hors ligne » et « connexion réussie » sont deux résultats différents. Retrouver un candidat ne prouve pas qu’il est encore valide sur le service actuel.
5. Ce qu’Ophcrack ne prouve pas sur un Windows moderne
Un ordinateur récent peut associer chiffrement du disque, TPM, protections du système, authentification sans mot de passe et gestion centralisée des comptes. Aucun test unique ne résume cette architecture. Un PIN Windows Hello n’est pas interchangeable avec le mot de passe d’un compte de domaine, et un ticket de session n’est pas une entrée générique pour une table.
Une démonstration réussie sur une vieille machine non chiffrée ne permet pas de conclure à l’exposition identique d’un parc actuel. À l’inverse, un outil qui ne reconnaît pas un stockage récent ne démontre pas que toutes les copies de secrets sont protégées. Il faut examiner les sauvegardes, les images disque et les accès d’administration.
Ne désactivez pas les protections d’un poste réel pour obtenir une démonstration spectaculaire. Si une formation nécessite un exemple ancien, utilisez une machine de laboratoire sans accès à la production et décrivez explicitement sa configuration. Les conclusions doivent rester limitées à ce cas.
6. Préparer un protocole avec des données synthétiques
L’objectif proposé est de mesurer l’effet de la couverture des tables, pas de récupérer des secrets de salariés. Préparez un petit corpus de mots de passe fictifs exclusivement réservé à l’exercice, et leurs empreintes dans le format attendu. N’utilisez ni export de SAM de production, ni fichier trouvé dans un partage, ni valeur issue d’un incident réel.
Composez trois groupes : des candidats appartenant à l’espace annoncé par la table, des candidats situés hors de cet espace et des secrets longs générés aléatoirement. Gardez la vérité de référence séparée du fichier d’entrée. Le classement doit provenir des caractéristiques de la table, pas d’une intuition sur ce qui « semble compliqué ».
Dans une machine de test, relevez la version d’Ophcrack, la référence des tables, leur intégrité, le format d’import et les ressources disponibles. Importez uniquement le corpus préparé via le mécanisme documenté de votre version, sélectionnez les tables correspondantes, puis fixez une durée maximale. L’espace disque et la mémoire nécessaires dépendent fortement des tables retenues.
Pour chaque ligne, consignez « retrouvé », « non retrouvé dans le budget » ou « non traité ». Comparez tout candidat retourné à la référence connue. Une erreur de format ou un chargement de table incomplet ne doit jamais être comptabilisé comme une preuve de robustesse.
7. Transformer les résultats en constat utile
Présentez le nombre de cas effectivement traités, le budget, les tables et la version. Séparez les cas hors couverture. Le pourcentage de succès n’a de sens que si son dénominateur est annoncé. Un corpus pédagogique choisi pour démontrer une faiblesse ne représente pas la population des mots de passe d’une organisation.
Une formulation correcte serait : « Sur le corpus synthétique défini pour cet exercice, les candidats de tel groupe ont été retrouvés dans les conditions consignées. » Évitez « Ophcrack casse les mots de passe Windows en quelques minutes », qui efface toutes les dépendances. Aucun temps ni taux de réussite n’est revendiqué dans ce guide.
Dans une mission réelle, un export contenant une empreinte reste sensible. Remplacez les identifiants par des références de constat lorsque c’est possible, limitez les accès et définissez une durée de conservation. Ne joignez pas les mots de passe retrouvés au rapport destiné à un large public.
8. Les protections qui répondent au bon risque
BitLocker contribue à protéger les données d’un volume face à des accès hors ligne, notamment lorsqu’un appareil est perdu ou retiré de son environnement normal. Il faut examiner son état effectif, les protecteurs et la gestion des clés de récupération. Un volume déverrouillé reste accessible aux acteurs qui disposent des droits nécessaires sur le système actif.
Les mots de passe longs, imprévisibles et uniques réduisent la rentabilité des recherches et l’impact de la réutilisation. Un gestionnaire facilite cet objectif pour les utilisateurs. Pour les comptes administrateurs locaux, Windows LAPS permet une gestion et une rotation par appareil ; les droits de lecture des secrets sauvegardés doivent aussi être limités.
Pour une application que vous développez, l’OWASP recommande un stockage de mots de passe adapté, avec sel et fonction spécialisée telle qu’Argon2id. Le sel rend les précalculs génériques moins réutilisables ; le coût de calcul freine les essais. Ce conseil applicatif n’est pas une instruction pour remplacer arbitrairement le format interne des comptes Windows.
Enfin, retirez les mécanismes hérités inutiles après étude des dépendances et protégez les sauvegardes avec la même attention que les machines actives. La copie oubliée d’un ancien système peut exposer des secrets encore réutilisés ailleurs.
9. Ophcrack, Mimikatz et Impacket : trois questions différentes
| Outil | Angle principal de ce dossier | Question défensive |
|---|---|---|
| Ophcrack | Recherche d’un mot de passe à partir d’une empreinte compatible. | Que permet une copie de ces données dans un budget donné ? |
| Mimikatz | Étude des secrets d’authentification Windows et de leur utilisation. | Quels secrets sont exposés sur un système compromis ? |
| Impacket | Interactions avec des protocoles et services réseau. | Que permettent une identité et ses droits sur les autres systèmes ? |
Un secret très difficile à retrouver par calcul peut rester réutilisable s’il est récupéré sous une forme adaptée. Le guide Mimikatz et protection des secrets Windows explique cette autre dimension. Le guide Impacket relie les identités aux permissions et aux flux réseau.
10. Questions fréquentes et fin d’exercice
Ophcrack retrouve-t-il tous les mots de passe ?
Non. Le résultat dépend notamment du format, des tables, de leur couverture et du budget. Une absence de résultat ne constitue pas une certification de sécurité.
Faut-il acheter de plus grandes tables ?
Pas sans objectif mesurable. Vérifiez d’abord que le problème est bien la couverture et que le format est compatible. Un audit peut être plus utile en corrigeant l’exposition des copies qu’en augmentant indéfiniment le calcul.
Peut-on l’utiliser pour récupérer son propre compte ?
Un compte et un appareil modernes peuvent nécessiter une procédure officielle de récupération. Privilégiez le processus prévu par l’organisation ou le fournisseur, notamment si des données chiffrées sont concernées. Une réinitialisation n’équivaut pas toujours à récupérer l’accès aux données.
Comment terminer le laboratoire ?
Conservez le compte rendu expurgé, retirez le corpus et les exports selon le plan de conservation, puis remettez la machine de test dans son état prévu. Vérifiez que les secrets fictifs n’ont servi nulle part ailleurs. Aucune restauration ne peut rendre confidentiel un vrai secret déjà communiqué : dans ce cas, sa rotation doit être organisée.
Sources et références
Références consultées le 24 octobre 2026. Les schémas et scénarios sont pédagogiques ; le rejeu a été confirmé par Kenawek, sans publication de journaux bruts ni de résultat de mission client.