Quand je rĂ©cupĂšre des condensats que je souhaites casser, je suis gĂ©nĂ©ralement le mĂȘme mode opĂ©ratoire, que jâamĂ©liore Ă chaque itĂ©ration.
Tout ceci est bien entendu perfectible, critiquableâŠ
1 â Recherche des condensats dans ma propre base
Je conserve une petite base associant des mots de passe et des condensats (NTLM et SHA1-160bits) provenants de publications comme celles du site hashes.org, de pastebin⊠Si les condensats à casser ne sont ni NTLM ni SHA1-160bits, je passe à la suite.
2 â Dictionnaire spĂ©cifique
Je construis un dictionnaire spécifique à ma cible, à partir:
- Du Wikipedia de lâentreprise ciblĂ©e, dans la plupart des langues ;
- Du site web de lâentreprise, de ses marques, de ses filiales, de sa maisons mĂšre⊠avec lâoutil CeWL (que je dĂ©teste car dĂ©veloppĂ© en Rubis) ou manuellement ;
- Dâarticles de presse sur lâentreprise, ses marques⊠;
- Des comptes Facebook de lâentreprise, de ses marques⊠plutĂŽt manuellement mais câest assez rapide ;
- Des Twitter de lâentreprise, de ses marques⊠avec lâoutil twofiquand jâarrive Ă le faire marcher, sinon manuellement (quasi aussi rapide) ;
- Je concatÚne toutes ces données brutes, construis quelques mots complexes ou expressions manuellement et cela me donne un premier dictionnaire.
Outil de cassage : hashcat avec ce dictionnaire et un ensemble de 3 millions de rÚgles de dérivations que je maintiens dans le temps (celles fournies par défaut avec hashcat sont déjà trÚs bien).
Durée : quelques minutes
3 â Tous les mots de passe de moins de 7 caractĂšres
La technique est simple, il sâagit de tester tous les mots de passe possible dâune longueur de 1 Ă 7 caractĂšres.
Outil : hashcat
Durée : dans les 15 minutes sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
3 bis â Tous les mots de passe de moins de 8 caractĂšres
Si jâai le temps, je rĂ©alise la mĂȘme chose que prĂ©cĂ©demment mais avec tous les mots de passe possible dâune longueur de 8 caractĂšres.
Outil : hashcat
Durée : dans les 20 à 22h sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
4 â Dictionnaire InsidePro
Jâutilise le dictionnaire InsidePro de 31Mo (en ayant supprimĂ© les doublons avec CrackStation, cf. la suite)
Outil : hashcat et mes 3 millions de rÚgles de dérivations
Durée : quelques dizaines de minutes sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
5 â Dictionnaire Crackstation
Jâutilise le dictionnaire CrackStation (tĂ©lĂ©chargeable sur leur site) que jâai prĂ©cĂ©demment nettoyĂ©, triĂ© et dĂ©barrassĂ© de ses doublons (# sort -u | awk âlength($0) > 4 && length($0) < 41â )
Outil : hashcat et mes 3 millions de rÚgles de dérivations
Durée : dans les 24h sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
6 â Dictionnaire perso
Depuis un moment je construis un dictionnaire de mots de passe Ă partir de tous les fuites de donnĂ©es que je peux rĂ©cupĂ©rer. A ce jour il faut 43Go. Il nâest pas exhaustif (je nâai ni le temps ni les rĂ©seaux criminels pour tout rĂ©cupĂ©rĂ© đ) mais il permet de complĂ©ter les dictionnaires prĂ©cĂ©dents.
Outil : hashcat et mes 3 millions de rÚgles de dérivations
Durée : entre 3 et 4 jours sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
7 â Masques Ă©vidents
Je me suis créé une liste de masques reprĂ©sentant des mots de passe pouvant ĂȘtre considĂ©rĂ©s comme classiques comme par exemple tous les mots de 8 lettres, dĂ©butants par une majuscule et suivi des 4 chiffres.
Outil : hashcat
Durée : entre 4 et 6 heures sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
8 â Masques personnalisĂ©s
Avec les mots de passe prĂ©cĂ©demment rĂ©cupĂ©rĂ©s et une liste rĂ©duite de mots intĂ©ressants (nom de marque, de produit, de formule chimiqueâŠ) je rĂ©aliser un dictionnaire Ă partir duquel je vais gĂ©nĂ©rer des masques pour hashcat. Jâai dĂ©veloppĂ© un petit outil en python pour cela, que je peux fournir uniquement sur demande car⊠il nâest pas dâune propretĂ© absolue đ.
Par exemple, je définis les 4 groupes suivants : « Entreprise », 4 chiffres, 2 caractÚres spéciaux et 2 chiffres. Puis à partir de ces 4 groupes, je génÚre toutes les combinaisons possibles en incrémentant la longueur des éléments, ce qui donnerait les masques suivants ( ?d = chiffre, ?s= caractÚre spécial) :
Entreprise ?d ?s ?d
Entreprise ?d ?s ?s ?d => ici câest le nombre de caractĂšres spĂ©ciaux qui a variĂ©
Entreprise ?d ?s ?d ?d=> nous recommençons avec 2 chiffres au lieu dâun seul
Entreprise ?d ?s ?s ?d ?d => à nouveau 2 caractÚres spéciaux
âŠ
Entreprise ?d ?d ?d ?d ?s ?s ?d ?d => Je finis cette combinaison par tous les groupes dans leur intégralités
?dEntreprise ?s ?d => ici câest une nouvelle combinaison oĂč je ne dĂ©bute plus par le nom de lâentreprise par le second groupe de 1 Ă 4 chiffres
âŠ
?d ?d ?d ?d Entreprise ?s ?s ?d ?d => fin de cette combinaison
Outil : hashcat
Durée : Je limite aux combinaisons aboutissant à des mots de passe de 10 à 12 caractÚres afin de ne pas dépasser une journée de calcul au total
9 â Masques dâimitation
LĂ encore, jâutilise les mots de passe prĂ©cĂ©demment rĂ©cupĂ©rĂ©s mais pour gĂ©nĂ©rer des masques qui auraient permis de les retrouver. Cette mĂ©thode est particuliĂšrement efficace đ.
Si par exemple, jâai le mot de passe « Coucou2020! », jâen dĂ©duits le masque suivant ( ?u = majuscule, ?l = minuscule, ?d = chiffre, ?s = caractĂšre spĂ©cial) : ?u ?l ?l ?l ?l ?l ?d ?d ?d ?d ?s
Jâai dĂ©veloppĂ© un petit outil en python pour cela, que je peux fournir uniquement sur demande car⊠il nâest, lĂ encore, pas dâune propretĂ© absolue đ.
Outil : hashcat
Durée : entre 12 et 24h mais mon script étant un peu plus évolué que le précédent, je limite ici la durée de cassage à 1 journée
10 â Mots de passe trouvĂ©s + rĂšgles de dĂ©rivations
LĂ encore, jâutilise les mots de passe prĂ©cĂ©demment rĂ©cupĂ©rĂ©s et je les utilise tout simplement comme un nouveau dictionnaire.
Outil : hashcat et mes 3 millions de rÚgles de dérivations
Durée : moins de 5 minutes sur 2 cartes graphiques RTX 2080 pour des condensats NTLM
Tout ceci peut ĂȘtre amĂ©liorĂ© et je dois encore :
- Connecter les scripts des phases 7, 8 et 9 afin dâĂ©liminer les masques redondants ;
- Rendre mes scripts plus pro et utilisables par une autre personne que moi-mĂȘme đ.
Si vous avez suivi, vous remarquerez que globalement, tout tourne autour des mĂȘmes mots de passe et que je peux difficilement trouver un mot de passe qui nâaurait pas Ă©tĂ© dĂ©jĂ trouvĂ© prĂ©cĂ©demment ou un mot de passe approchant. Câest vrai et câest pour cela que je fais Ă©voluer rĂ©guliĂšrement mon propre dictionnaire avec de nouveaux mots de passe, rĂ©ellement trouvĂ©s dans la nature.
Mais retrouver un mot de passe qui nâa jamais Ă©tĂ© utilisĂ© nulle part avant, non basĂ© sur un mot usuel et dâune bonne longueur⊠câest trĂšs difficile, vous savez donc quoi faire đ.