Verschillende aanvalsmodi in hashcat

hashcat heeft meerdere aanvalsmodi. Gebruik de parameter – help om de volledige hulp te bekijken. U kunt de tabel "Aanvalsmodi" zien, zoals hieronder ziet:

# Mode
0 recht
1 combinatie
3 Brute-force
6 hybride woordlijst + masker
7 hybride masker + woordlijst

1.Straight

Deze aanvalsmodus staat ook bekend als" woordenboekaanval ". Er is niets te zeggen, dat wil zeggen dat hashcat, gegeven een woordenboek, de inhoud in het woordenboek regel voor regel leest, de hash-waarde van elke regel berekent en deze vergelijkt met de doelhash-waarde.

Voorbeeld:

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

2.combinatie

Baidu vertelde me dat combinatie een zelfstandig naamwoord is, wat betekent: "combinatie; consortium; wachtwoordcombinatie; jumpsuit en ondergoed". Deze aanvalsmodus is eigenlijk heel eenvoudig: het combineert de inhoud van twee wachtwoordwoordenboeken. Het gebruik van deze aanvalsmodus vereist het opgeven van twee wachtwoordwoordenboeken. Stel dat we twee wachtwoordwoordenboeken hebben dict1.txt en dict2.txt, waarvan de inhoud is:

     jacht 
    Kat 
    rainbow 

en

     paris 
    rock 

Dan de opdracht:

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

Het woordenboek dat eigenlijk is geprobeerd is:

     huntingparis 
    Jachtrots 
    KittyParijs 
    kittyrock 
    RegenboogParijs 
    rainbowrock 

De woorden in dict1.txt staan links en de woorden in dict2.txt staan rechts, in totaal 3×2=6.

De parameters die verband houden met dit patroon zijn:

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

-De regel na j werkt aan de linkerkant, en de regel na-k werkt aan de rechterkant, zoals het toevoegen van de parameter-j' $-', dan is het daadwerkelijk geprobeerde woordenboek:

     hunting-paris 
    Jachtrots 
    Kitty-Parijs 
    kitty-rock 
    Regen-boogparijs 
    rain-bowrock 

Voeg parameter toe-j '^!', Dan is het daadwerkelijk geprobeerde woordenboek:

    ! JachtParijs 
  ! Jachtrots 
  ! KittyParijs 
  ! kittyrock 
  ! RegenboogParijs 
  ! rainbowrock 

Voeg de parameter-k '^ >' toe, dan is het daadwerkelijk geprobeerde woordenboek:

     jagen > parijs 
    jacht > rots 
    kitty > Parijs 
    kitty > rock 
    Regen > Bogparijs 
    REGEN > bowrock 

Wat is deze regel? Het gebruik van "$" en "^" is vergelijkbaar met dat van reguliere expressies, dus zijn ze regulier? Eigenlijk is dat niet het geval. De regels van hashcat worden zelf geïmplementeerd, wat weer een groot deel van de inhoud is. Voor meer informatie, zie Rule-based Attack

3.Brute-force

Probeer een gegeven tekenset Verschillende combinaties. Volgens de officiële wiki van hashcat is deze methode verouderd en volledig vervangen door Mask-Attack, dus er wordt geen onderzoek gedaan,

4. Mask Attack

Dit is een relatief nieuwe aanvalsmethode. Voorbeeld is als volgt:

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

Hoewel-A 3 volgens de tabel "Aanvalsmodi" overeenkomt met Brute-force, gebruikt-A 3 in feite Mask Attack. Mask Attack kan worden gezien als geavanceerde Brute-force. De parameter

-m wordt gebruikt om het hash-functietype op te geven en de MD5-waarde wordt opgeslagen in het md5.hash-bestand. De sleutel is de laatste tekenreeks "? l? l? l? l? l? l". Een dergelijke tekenreeks wordt masker genoemd.

Een masker is een tekenreeks die bestaat uit verschillende tijdelijke aanduidingen. "? l" is een tijdelijke aanduiding, waarbij "?" een trefwoord is, dat wordt gebruikt om het volgende "l" te wijzigen. "? l" vertegenwoordigt samen een verzameling tekens. Naast "? l" kunnen er ook "? u", "? d", "? h", "? h", "? s", "? a" en "? b" worden weergegeven door de verzameling tekens zoals weergegeven in de onderstaande tabel.

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

Op deze manier begrijpen we: "? l? l? l? l? l" is eigenlijk gelijk aan een wachtwoordboek:

 aaaaa 
aaaab 
... 
zzzzz 

Op dezelfde manier is "? l? u? d" gelijk aan een wachtwoordboek:

     aA0 
    aA1 
  ... 
    bA0 
  ... 
    zZ9 

De tekenset in de bovenstaande tabel is ingebouwd in hashcat, we kunnen de tekenset ook zelf opgeven:

     - -custom-charset1= tekenset 1 
    - -custom-charset2= tekenverzameling 2 
    - -custom-charset3= tekenverzameling 3 
    - -custom-charset4= tekenset 4 

Parameter – custom-charsetN kan worden afgekort tot-n, zoals – custom-charset1 kan worden afgekort tot-1. De set tekens opgegeven met-n wordt opgegeven in de vorm van een tijdelijke aanduiding "? N" in het masker, zoals:

     -1   abc123  ? 1? 1? 1 

is gelijk aan een wachtwoordboek:

     aaa 
    aab 
  ... 
    aa3 
  ... 
    333 

-N Naast de tekenreeks die de tekenverzameling vertegenwoordigt, kan het ook een bestand zijn dat eindigt op. hcchr, waarin de tekenverzameling wordt opgeslagen. hashcat wordt geleverd met veel. hcchr-bestanden in de charsets/map van het installatiepakket.

De verzameling tekens die door de tijdelijke aanduiding "??" wordt vertegenwoordigd, is "?" zelf. Wanneer de resterende tekens als tijdelijke tekens worden gebruikt, vertegenwoordigen ze bovendien de tekens zelf. "? lwerner? d" is bijvoorbeeld equivalent aan een wachtwoordboek:

     awerner0 
    awerner1 
  ... 
    zwerner9 

Met de bovenstaande kennis is het gemakkelijk om Masker te begrijpen. Een masker bestaat uit meerdere tijdelijke tekens, elke tijdelijke teken is een set tekens, en een masker is een combinatie van verschillende sets tijdelijke tekens. Het aantal tijdelijke aanduidingen is gelijk aan de lengte van het wachtwoord. Wat zijn de voordelen van een dergelijk ontwerp in vergelijking met het simpelweg geven van een tekenset en wachtwoordlengte?

Stel dat we iemands wachtwoord kennen met in totaal 7 cijfers. Het eerste cijfer is een hoofdletter, de volgende 3 cijfers zijn kleine letters en de laatste 3 cijfers zijn cijfers. Als het een traditionele brute force-crack is, zijn de tekensets A-Z, A-Z en 0-9 vereist, met in totaal 62 tekens, en moet het maximaal 62^7=3 521 614 606 208 keer worden geprobeerd, wat een biljoen is. niveau. Het gebruik van een masker om dit wachtwoord te beschrijven is "\u\l\l\l\d\d\d", wat gemakkelijk te berekenen is. Er zijn in totaal (26^4) × (10^3) =456 976.000 mogelijkheden, wat 100 miljoen is. Het niveau is 4 ordes van grootte kleiner dan de vorige methode.

Om een stap terug te zetten: zelfs als we de verdeling van wachtwoorden niet kennen, is het gemakkelijk om het effect van traditioneel brute force-kraken te simuleren met behulp van een masker.

De vraag is nu dat het masker vast is en hoeveel tijdelijke aanduidingen er doodgeschreven zijn. Wat moeten we doen als we de lengte van het wachtwoord niet kennen? Het is prima dat het wachtwoord te lang is. Als het wachtwoord van iemand slechts 3 cijfers heeft en wij 4 tijdelijke aanduidingen hebben, en het niet kan worden opgelost, zou het dan geen groot verlies zijn? Moeten we beginnen met 1 en alle maskers van elke lengte schrijven? Dat is lastig.

Er zijn twee oplossingen. De ene is het maskerbestand gebruiken, meerdere maskers in één bestand schrijven en dit bestand vervolgens op de opdrachtregel specificeren. Merk op dat het maskerbestand moet eindigen op. hcmask.

De inhoud van test.hcmask is bijvoorbeeld:

    ? l 
  ? Ik? l 
  ? Ik? Ik? l 
  ? Ik? Ik? Ik? l 

Gebruik vervolgens de volgende opdracht om het bestand te gebruiken:

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

Een andere oplossing is om de parameter-increment toe te voegen, die hashcat vertelt dat het masker dat we hebben gegeven, begint met een tijdelijke aanduiding en probeert nog twee, drie tot de lengte die we hebben gegeven. Zoals we deze tijdelijke aanduiding "abc" schrijven en vervolgens de MD5-waarde van de volgende tekenreeks berekenen:

     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 

Vóór ":" is de oorspronkelijke tekenreeks waarvoor de hash-waarde moet worden berekend, en na ":" is de berekende hasn-waarde. Sla de bovenstaande inhoud op in het bestand md5.hash en voer vervolgens de volgende opdracht uit:

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

Voeg parameter toe – gebruikersnaam is omdat er een originele tekenreeks vóór elke van onze hash-waarden is Als deze parameter niet wordt toegevoegd, geeft hashcat weer dat de juiste hash-waarde niet is gevonden. Als deze parameter wordt toegevoegd, denkt hashcat dat de tekenreeks vóór de hash-waarde de gebruikersnaam is voor de hash-waarde, zodat de hash-waarde soepel kan worden geladen.

Het resultaat van het uitvoeren is dat slechts één hash is opgelost:

     900150983cd24fb0d6963f7d28e17f72:abc 

Voeg nu de parameter-increment toe en voer opnieuw uit:

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

Deze keer werden nog twee hashs opgelost:

     0cc175b9c0f1b6a831c399e269772661:a 
    187ef4436122d1cc2f40dc2b92f0eba0:ab 

Het is duidelijk dat – increment een rol speelt. Maar tegelijkertijd weten we ook dat hashcat met deze parameter alleen A, ab en abc in volgorde zal proberen, en de plaatselijke aanduidingen niet buiten volgorde zal rangschikken en combineren en verschillende mogelijkheden zal proberen.

5.Hybride aanval

Hybride aanval is vergelijkbaar met Combinator Attack. Combinator Attack combineert twee woordenboeken, terwijl Hybride Attack een woordenboek en een masker combineert.

Stel dat we al een woordenboek hebben, example.dict, dat luidt als volgt:

     Hallo 
    werner 

Dan de opdracht:

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

is gelijk aan het simpelweg gebruiken van een woordenboek:

     hello00 
    Hallo01 
  ... 
    Hallo99 
    werner00 
    werner01 
  ... 
    werener99 

Dan de opdracht:

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

is gelijk aan het simpelweg gebruiken van een woordenboek:

     00Hallo 
    01Hallo 
  ... 
    99Hallo 
    00werner 
    01werner 
  ... 
    99werener 

Vorige:Hoe de hashcat-software te gebruiken om verschillende hashes te kraken.
Volgende:Hoe Hashcat te gebruiken: technische deling
  • Focus op Word, Excel, PPT, PDF, RAR, ZIP, 7Z, gecomprimeerde pakketten, Office gecodeerde bestanden ontgrendelen en decoderen
  • Wij bieden gebruikers hoogwaardige bestandsgecomprimeerde pakketwachtwoordherstel, PDF-ontgrendeling Word-wachtwoordherstel
  • Auteursrecht © Document Password Recovery Master Online decoderingsplatform