A hashcat több támadási módja

A Hashcat számos támadási módot kínál. A teljes súgót a –help paraméterrel tekintheti meg, ahol megtalálja az „Attack Modes” táblázatot az alábbiak szerint:

#
0 Egyenes
1 Kombináció
3 Brute-force
6 Hibrid szavak listája + maszk
7 Hibrid maszk + szavak listája

1. Egyenes

Ezt a támadási módot „szótár támadásnak” is nevezik. Nincs mit mondani róla, csak egy szótárt adunk meg, a hashcat sorban olvassa a szótár tartalmát, kiszámítja minden sor hash értékét, és összeveti a cél hash értékével.

Példa:

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

2. Kombináció

A Baidu azt mondja nekem, hogy a Kombináció egy főnév, ami azt jelenti: „kombináció; társulás; jelszó kombináció; harisnyanadrág”. Ez a támadási mód valójában nagyon egyszerű, csak két jelszó szótár tartalmát kell kombinálni. Ehhez a támadási módhoz nem kell többet vagy kevesebbet, mint két jelszó szótár.Tegyük fel, hogy van két jelszó-szótárunk, a dict1.txt és a dict2.txt, amelyek tartalma a következő:

  hunting
  kitty
  rainbow

és

  paris
  rock

akkor a parancs:

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

Valójában a próbálkozott szótárak a következők:

  huntingparis
  huntingrock
  kittyparis
  kittyrock
  rainbowparis
  rainbowrock

A dict1.txt szavai balra, a dict2.txt szavai jobbra vannak, összesen 3×2=6 darab.

A ehhez a mintához kapcsolódó paraméterek:

  -j, --rule-left  -k,  -szabály-jobb 

-j után a szabályok a bal oldalon működnek, a -k utáni szabályok a jobb oldalon működnek. Például, ha hozzáadjuk a -j '$-' paramétert, akkor a ténylegesen kipróbált szótár a következő:

  hunting-paris
  hunting-rock
  kitty-paris
  kitty-rock
  rain-bowparis
  rain-bowrock

Ha hozzáadjuk a -j '^!' paramétert, akkor a ténylegesen kipróbált szótár a következő:

  !huntingparis
  !huntingrock
  !kittyparis
  !kittyrock
  !rainbowparis
  !rainbowrock

Ha hozzáadjuk a -k '^>' paramétert, akkor a ténylegesen kipróbált szótár a következő:

  hunting>paris
  hunting>rock
  kitty>paris  kitty>rock
  rain>bowparis
  rain>bowrock

Mi ez a szabály? A „$” és „^” használata hasonló a reguláris kifejezésekhez, tehát ez is reguláris kifejezés? Valójában nem, a hashcat szabályait saját maguk implementálták, ami egy nagyobb témakör, további részletek a Rule-based Attack

3.Brute-force

Megpróbálja a megadott karakterkészlet különféle kombinációit. A hashcat hivatalos wiki szerint ez a módszer elavult, a Mask-Attack teljesen leváltotta, ezért nem foglalkozunk vele,

4.Mask Attack

Ez egy viszonylag új támadási mód, példa:

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

Bár az „Attack Modes” táblázat szerint a -a 3 a Brute-force-nak felel meg, valójában a -a 3 a Mask Attack-ot használja. A Mask Attack a Brute-force egy fejlettebb változatának tekinthető.

-m paraméter a hash függvény típusát adja meg, az md5.hash fájl az md5 értékeket tárolja. A legfontosabb az utolsó „?l?l?l?l?l?l” karakterlánc, ezt a maszkot nevezzük masknak.

A maszk egy karakterlánc, amely több helyettesítőből áll. A „?l” egy helyettesítő, ahol a „?” egy kulcsszó, ami a rákövetkező „l”-t módosítja. A „?l” egy karakterhalmazt jelöl, ami mellett a „?u”, „?d”, „?h”, „?H”, „?s”, „?a” és „?b” is használhatók, az alábbi táblázatban látható módon.

?Charset
labcdefghijklmnopqrstuvwxyz
uABCDEFGHIJKLMNOPQRSTUVWXYZ
d0123456789
hH0123456789ABCDEF
! “#$%&'()*+,-./:;<=>?@[\]^_`~{|}
a?l?u?d?s
b 0 – 0xff

Ebből tehát megértettük, hogy „?l?l?”.L?l?l" tulajdonképpen jelszószótárnak felel meg:

aaaa
Aaaab
Szóval...
Zzzz 

Hasonlóképpen, a "?l?u?d" jelszószótárnak felel meg:

  aA0
    aA1
   ...
    bA0
   ...
    zZ9 

A fenti táblázat karakterkészlete beépített hashcat. A karakterkészletet saját magunk is megadhatjuk:

     --custom-charset1 = karakterkészlet 1
    --custom-charset2 = karakterkészlet 2
    --custom-charset3 = karakterkészlet 3
    --custom-charset4 = karakterkészlet 4 

Paraméter - custom-charsetN rövidíthető -N-re, pl. - custom-charset1 rövidíthető -1-re. A -N-vel megadott karakterkészlet a maszkban helyőrzőként szerepel "?N," pl.:

     -1   abc123  ? 1?1 

jelszószótárnak felel meg:

     aaa
    aab  ...
  aa3
  ...
  333

-N után a karakterkészletet jelölő karakterlánc mellett egy .hcchr kiterjesztésű fájl is lehet, amely a karakterkészletet tárolja. A hashcat számos .hcchr fájlt tartalmaz, amelyek a charsets/könyvtárban találhatók a telepítési csomagban.

A „??” helyőrző egy „?” karakterkészletet jelent. Ezenkívül a többi karakter helyőrzőként a karaktert magát képviseli, például „?lwerner?” egyenértékű a jelszó-szótárral:

  awerner0
  awerner1
  ...
  zwerner9

Ezzel a tudással könnyen megértjük a maszkot. Egy maszk több helyőrzőből áll, mindegyik egy karakterkészlet, és egy maszk a különböző helyőrzők karakterkészleteinek kombinációja. A helyőrzők száma megegyezik a jelszó hosszával. Milyen előnyökkel jár ez a tervezés az egyszerűen megadott karakterkészlethez és jelszó-hosszhoz képest?

Tegyük fel, hogy egy személy jelszava 7 karakterből áll, az első egy nagybetű, a következő három kisbetű, az utolsó három pedig szám. A hagyományos brute force támadás esetén 62 karakterre (a-z, A-Z és 0-9) lenne szükség, és legfeljebb 62^7 = 3 521 614 606 208 kísérletet kellene tenni, ami több billiárdot jelent.Ha a jelszót maszkkal írjuk le, akkor az „\u\l\l\l\d\d\d”, amit könnyű kiszámítani. Összesen (26^4) × (10^3) = 456 976 000 lehetséges kombináció van, ami egy milliárdos nagyságrendet jelent, és ez négy nagyságrenddel kevesebb, mint az előző módszer esetén.

Ha visszalépünk, és feltételezzük, hogy nem ismerjük a jelszó eloszlását, a maszkkal mégis könnyű szimulálni a hagyományos brute force támadást.

A probléma most az, hogy a maszk rögzített, és hány helyőrzőt tartalmaz, amit előre megadtak. Mi a teendő, ha nem ismerjük a jelszó hosszát? Ha a jelszó túl hosszú, az rendben van, de ha valakinek csak háromjegyű a jelszava, és nekünk négy helyőrzőnk van, akkor sosem fogjuk tudni feltörni, ami nagy kár lenne. Nem kellene minden lehetséges maszkot külön létrehoznunk az 1-től kezdve? Az nagyon fárasztó lenne.

Két megoldás van. Az első a maszkfájl használata. Több maszkot írhatunk egy fájlba, majd a parancssorban megadhatjuk ezt a fájlt. Figyelem, a maszkfájlnak .hcmask kiterjesztéssel kell végződnie.

Például a test.hcmask fájl tartalma lehet:

   ?l
   ?l ?l
   ?l ?l ?l
   ?l ?l ?l ?l

Akkor a fájlt a következő paranccsal használhatjuk:

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

Egy másik megoldás a --increment paraméter hozzáadása, ami azt mondja a hashcat-nek, hogy a maszk alapján kezdje a kísérletezést egy helyesírási hibával, majd próbálkozzon kettővel, hárommal, egészen a megadott hosszig. Például ha az alábbi maszkot írjuk:

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

":" az eredeti karakterlánc a hash érték kiszámításához, és ":" a kiszámított hasn érték. Mentse el a fentieket az md5.hash fájlban, és futtassa a következő parancsot:

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

A --username paraméter hozzáadása azért szükséges, mert minden hash érték előtt ott van az eredeti sztring. Ha ezt a paramétert nem adja meg, a hashcat azt fogja jelezni, hogy nem talált helyes hash értéket. Ezzel a paraméterrel a hashcat azt feltételezi, hogy a hash érték előtti karakterlánc a felhasználóneve, és így sikeresen betölti a hash értéket.

A futási eredmény az, hogy csak egy hash lett megoldva:

  900150983cd24fb0d6963f7d28e17f72:abc

Most adjuk hozzá a --increment paramétert, és futtatás:

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

Ezúttal két további hash lett megoldva:

  0cc175b9c0f1b6a831c399e269772661:a  187ef4436122d1cc2f40dc2b92f0eba0:ab

Láthatóan a –increment működik. Ugyanakkor azt is tudjuk, hogy ezzel a paraméterrel a hashcat csak sorban próbálkozik az a, ab és abc kombinációkkal, és nem próbálja meg véletlenszerűen elrendezni a helyőrzőket, és különböző kombinációkat kipróbálni.

5. Hibrid támadás

A hibrid támadás hasonló a kombinátoros támadáshoz, ahol két szótárat kombinálnak, míg a hibrid támadás egy szótárat és egy maszkot kombinál.

Tegyük fel, hogy már van egy example.dict szótárunk, ami a következőket tartalmazza:

  hello
  werner

akkor a parancs:

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

egyenértékű a szótár egyszerű használatával:

  hello00
  hello01
  ...
  hello99  werner00
  werner01
  ...
  werener99

akkor a parancs:

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

egyenértékű a szótár egyszerű használatával:

  00hello
  01hello
  ...
  99hello
  00werner
  01werner
  ...
  99werener

Előző cikk:Hogyan használjunk hashcat hash macska szoftvert különféle hash felrobbantására
Következő cikk:Hogyan használjuk a hashcat technológiáját
  • Focus on Word, Excel, PPT, PDF, RAR, ZIP, 7Z, Compressed File, Office Encrypted File Unlock Decryption
  • We provide users with high-quality file compression password recovery, PDF unlocking, and Word password recovery services.
  • Copyright © Document Password Recovery Master Online Decryption Platform