Plusieurs modèles d'attaque de hashcat

hashcat a plusieurs Modes d'attaque. Pour voir l'aide complète avec le paramètre – help, vous pouvez voir la table "Attack Modes" comme suit:

# Mode
0 droit
1 combinaison
3 Brute-force
6 Hybrid Wordlist + Mask
7 Hybrid Mask + Wordlist

1.Straight

Ce mode d'attaque est également connu sous le nom de" Dictionary Attack ". Il n'y a rien à dire, c'est juste que, étant donné un dictionnaire, hashcat lira le contenu du dictionnaire ligne par ligne, calculera la valeur de hachage de chaque ligne et la comparera à la valeur de hachage cible.

Exemple:

     hashcat   -a   0   -m   400   example400.hash   example.dict 

2.combinaison

Baidu m'a dit que combinaison est un nom, signifiant: «combinaison; consortium; combinaison de mot de passe; salopette et sous-vêtements». Ce mode d'attaque est en fait très simple, il consiste à combiner le contenu de deux dictionnaires de mots de passe. L'utilisation de ce mode d'attaque nécessite la spécification de deux dictionnaires de mots de passe. Supposons que nous ayons deux dictionnaires de mots de passe dict1.txt et dict2.txt dont le contenu est:

     chasse 
    Chaton 
    Arc-en-ciel 

et

     paris 
    rock 

alors la commande:

     hashcat   -m   0   -a   1   hash.txt   dict1.txt   dict2.txt 

Le dictionnaire réellement essayé est:

     huntingparis 
    huntingrock 
    kittyparis 
    kittyrock 
    rainbowparis 
    rainbowrock 

Les mots dans dict1.txt sont à gauche et les mots dans dict2.txt sont à droite, un total de 3×2=6.

Les paramètres associés à ce mode sont:

     -j,   - -rule-left 
    -k,   - -rule-right 

-La règle après j agit sur le côté gauche, la règle après-k agit sur le côté droit, comme ajouter le paramètre-j' $-', alors le dictionnaire réellement essayé est:

     chasse-paris 
    Rocher de chasse 
    kitty-paris 
    kitty-rock 
    rain-bowparis 
    rain-bowrock 

Ajouter le paramètre-j'^!', Alors le dictionnaire réellement essayé est:

    ! chasseparis 
  ! huntingrock 
  ! kittyparis 
  ! kittyrock 
  ! rainbowparis 
  ! rainbowrock 

ajoute le paramètre-k '^ >', alors le dictionnaire réel essayé est:

     chasse > paris 
    Chasse > rock 
    kitty > paris 
    kitty > rock 
    pluie > bowparis 
    rain > bowrock 

Quelle est cette règle? "$" et "^" sont utilisés de manière similaire à celles des expressions régulières, alors sont-elles régulières? En fait, non, les règles de hashcat sont mises en œuvre par elles-mêmes, ce qui est une autre grande partie de contenu. Pour plus de détails, voir Attaque basée sur des règles

3.Brute-force

Essayez diverses combinaisons d'un ensemble de caractères donné. Selon le wiki officiel de hashcat, cette méthode est obsolète et a été entièrement remplacée par Mask-Attack, aucune recherche n'est donc menée,

4. Mask Attack

Il s'agit d'une méthode d'attaque relativement nouvelle. L'exemple est le suivant:

     hashcat   -a   3   -m   0   md5.hash  ? Moi? Moi? Moi? Moi? l 

Bien que selon le tableau "Attack Modes", -a 3 corresponde à la force Brute, en réalité, -a 3 utilise l'attaque masquée. Mask Attack peut être considéré comme une force Brute avancée. Le paramètre

-m est utilisé pour spécifier le type de fonction hachage et la valeur md5 est stockée dans le fichier md5.hash. La clé est la dernière chaîne «? l? l? l? l? l? l». Une telle chaîne est appelée masque.

Un masque est une chaîne de caractères composée de plusieurs signes de place. "? l" est un espace remplacement, où "?" est un mot-clé, utilisé pour modifier le "l" suivant. "? l" ensemble représente un ensemble de caractères. En plus de "? l", il peut également y avoir "? u", "? d", "? h", "? h", "? s", "? a" et "? b" représentent l'ensemble de caractères comme indiqué dans le tableau suivant.

0 – 0xff
? Charset
l ABCDEFGHIJKLMNOPQRSTUVWXYZ
u ABCDEFGHIJKLMNOPQRSTUVWXYZ
d 0123456789
h 0123456789abcdef
h 0123456789abcdef
s ! "#$% & ' () * +, -. /:; < = >? @ [\] ^_` ~ {|}
a ? Moi? Vous? d? s
b

Ainsi, nous comprenons que "? l? l? l? l? l" est en fait équivalent à un dictionnaire cryptographique:

 aaaaa 
aaaab 
... 
zzzzz 

De la même manière, "? l? u? d" est équivalent à un dictionnaire cryptographique:

     aA0 
    aA1 
  ... 
    bA0 
  ... 
    zZ9 

L'ensemble de caractères dans le tableau ci-dessus est intégré à hashcat, nous pouvons également spécifier l'ensemble de caractères nous-mêmes:

     - -custom-charset1= ensemble de caractères 1 
    - -custom-charset2= ensemble de caractères 2 
    - -custom-charset3= ensemble de caractères 3 
    - -custom-charset4= ensemble de caractères 4 

Paramètre – custom-charsetN peut être abrégé en-n, par exemple – custom-charset1 peut être abrégé en-1. L'ensemble de caractères spécifié avec-n est spécifié sous la forme d'un signe de place "? N" dans le masque, par exemple:

     -1   abc123  ? 1? 1? 1 

est équivalent à un dictionnaire de mot de passe:

     aaa 
    
  ... 
    aa3 
  ... 
    333 

-N En plus de la chaîne représentant l'ensemble de caractères, il peut également être un fichier terminé par. hcchr, qui stocke l'ensemble de caractères. hashcat est livré avec de nombreux fichiers. hcchr, dans le répertoire charsets/du paquet d'installation.

L'ensemble de caractères représenté par le signe de place "??" est "?" lui-même. De plus, lorsque les autres caractères sont utilisés comme signes de place, ils représentent les caractères eux-mêmes. Par exemple, "? lwerner? d" est équivalent au dictionnaire de mot de passe:

     awerner0 
    awerner1 
  ... 
    zwerner9 

Avec les connaissances ci-dessus, il est facile de comprendre le masque. Un masque se compose de plusieurs signes de place, chaque signe de place est un ensemble de caractères et un masque est une combinaison de chaque ensemble de caractères de signe de place. Le nombre de remplaçants est égal à la longueur du mot de passe. Quels sont les avantages d'une telle conception par rapport à simplement donner un ensemble de caractères et une longueur de mot de passe?

Supposons que nous connaissons le mot de passe de quelqu'un avec un total de 7 chiffres. Le premier chiffre est une lettre majuscule, les 3 chiffres suivants sont des lettres minuscules et les 3 derniers chiffres sont des chiffres. S'il s'agit d'un piratage brute force traditionnel, il nécessite des ensembles de caractères A-Z, A-Z et 0-9, avec un total de 62 caractères, et il faut essayer jusqu'à 62^7=3 521 614 606 208 fois, ce qui est au niveau d'un trillion. Utiliser un masque pour décrire ce mot de passe est "\u\l\l\l\d\d\d", qui est facile à calculer. Il y a un total de (26^4) × (10^3) =456 976 000 possibilités, ce qui est 100 millions de niveaux, soit 4 ordres de grandeur de moins que la méthode précédente.

Pour prendre un pas en arrière, même si nous ne connaissons pas la distribution des mots de passe, il est facile de simuler l'effet du brute force traditionnel en utilisant le masque.

La question maintenant est que le masque est fixe, combien d'espace de place y sont écrits morts, et que faire si nous ne connaissons pas la longueur du mot de passe. Ce n'est pas grave si le mot de passe est trop long. Si le mot de passe de quelqu'un n'a que 3 chiffres et que nous avons 4 espèces de place, et que nous ne pouvons pas le résoudre, ne serait-ce pas une perte? Devrions-nous commencer par 1 et écrire tous les masques de chaque longueur? Quelle gêne.

Il existe deux solutions. L'une consiste à utiliser le fichier masque, à écrire plusieurs masques dans un fichier, puis à spécifier ce fichier sur la ligne de commande. Notez que le fichier mask doit se terminer par. hcmask.

Par exemple, le contenu de test.hcmask est:

    ? l 
  ? Moi? l 
  ? Moi? Moi? l 
  ? Moi? Moi? Moi? l 

Utilisez ensuite le fichier avec la commande suivante:

     hashcat   -m   0   -a   3   - -show   md5.hash   test.hcmask 

Une autre solution consiste à ajouter le paramètre – increment, ce paramètre indique à hashcat de suivre le masque que nous avons donné, d'essayer à partir d'un signe-place, puis d'essayer deux, trois jusqu'à la longueur que nous avons donnée. Par exemple, nous écrivons l'espace "abc" pour ceci, puis calculons la valeur md5 de la chaîne suivante:

     A:0cc175b9c0f1b6a831c399e269772661 
    b:92eb5ffee6ae2fec3ad71c777531578f 
    c:4a8a08f09d37b73795649038408b5f33 
    ab:187ef4436122d1cc2f40dc2b92f0eba0 
    ac:e2075474294983e013ee4dd2201c7a73 
    ba:07159c47ee1b19ae4fb9c40d480856c4 
    bc: 5360af35bde9ebd8f01f492dc059593c 
    ca:5435c69ed3bcc5b2e4d580e393e373d3 
    cb:d0d7fdb6977b26929fb68c6083c0b439 
    abc: 900150983cd24fb0d6963f7d28e17f72 
    abc: 900150983cd24fb0d6963f7d28e17f72 
    bac:79ec16df80b57696a03bb364410061f3 
    bca:b64eab8ce39e013604e243089c687e4f 
    cba: 3944b025c9ca7eec3154b44666ae04a0 
    cab:16ecfd64586ec6c1ab212762c2c38a90 

":" est précédée par la chaîne d'origine pour laquelle la valeur hash doit être calculée, et ":" est suivie par la valeur hasn calculée. Enregistrez le contenu ci-dessus dans le fichier md5.hash, puis exécutez la commande suivante:

     hashcat   -m   0   -a   3   - -show   - -username   md5.hash   abc 

Ajouter le paramètre – username est parce qu'il y a une chaîne d'origine avant chacune de nos valeurs de hachage. Si ce paramètre n'est pas ajouté, hashcat affichera que la valeur de hachage correcte n'a pas été trouvée. Si ce paramètre est ajouté, hashcat pensera que la chaîne avant la valeur de hachage est le nom d'utilisateur pour lequel la valeur de hachage correspond, afin que la valeur de hachage puisse être chargée avec succès.

Le résultat de l'exécution est qu'un seul hash a été résolu:

     900150983cd24fb0d6963f7d28e17f72:abc 

Maintenant, ajoutez le paramètre – increment et exécutez à nouveau:

     hashcat   -m   0   -a   3   - -show   - -increment   - -username   md5.hash   abc 

Cette fois, deux hash supplémentaires ont été résolus:

     0cc175b9c0f1b6a831c399e269772661:a 
    187ef4436122d1cc2f40dc2b92f0eba0:ab 

On voit que – increment joue un rôle. Mais en même temps, nous savons également qu'avec ce paramètre, hashcat n'essaiera que a, ab et abc dans l'ordre, et ne disposera pas et ne combinera pas les points de place dans un ordre hors ordre, essayant diverses possibilités.

5. Attaque hybride

L'attaque hybride est similaire à l'attaque combinateur. L'attaque combinateur combine deux dictionnaires, tandis que l'attaque hybride combine un dictionnaire et un masque. Les deux sont similaires.

Supposons que nous ayons déjà un dictionnaire example.dict qui se lit comme suit:

     Bonjour 
    werner 

Puis la commande:

     hashcat   -m   0   -a   6   md5.hash   example.dict  ? d? d 

équivaut à utiliser simplement un dictionnaire:

     Bonjour 
    Bonjour 01 
  ... 
    Bonjour 99 
    werner00 
    werner01 
  ... 
    werener99 

Puis la commande:

     hashcat   -m   0   -a   7   md5.hash  ? d?   dexample.dict 

Équivalent à utiliser simplement un dictionnaire:

     00Bonjour 
    01 Bonjour 
  ... 
    99Bonjour 
    00werner 
    01werner 
  ... 
    99werener 

Article précédent :Comment utiliser le logiciel hashcat pour exploser divers hashes
Suivant :Comment utiliser hashcat Partage de technologies
  • Concentrez-vous sur Word, Excel, PPT, PDF, RAR, ZIP, 7Z, paquets compressés, déverrouillage et déchiffrement des fichiers cryptés Office
  • Nous fournissons aux utilisateurs une récupération de mot de passe de paquet compressé de fichier de haute qualité, une récupération de mot de passe de Word de déverrouillage PDF
  • Droits d'auteur © Maître de récupération de mot de passe de document Plateforme de décryptage en ligne