| # | Mode |
|---|---|
| 0 | egyenes |
| 1 | kombináció |
| 3 | Brute-force |
| 6 | Hibrid szólista + maszk |
| 7 | Hibrid maszk + szólista |
Ezt a támadási módot" szótár támadásnak "is nevezik. Nincs mit mondani, csak adott szótár, a hashcat soronként olvassa el a szótár tartalmát, kiszámítja az egyes sorok hash értékét, és összehasonlítja a cél hash értékkel.
Példa:
hashcat -a 0 -m 400 példa400.hash példa. dict
Baidu azt mondta nekem, hogy a kombináció egy főnév, ami azt jelenti: "kombináció; konzorcium; jelszó kombináció; kombináció és fehérnemű". Ez a támadási mód valójában nagyon egyszerű, két jelszószótár tartalmának kombinálása. Ennek a támadási módnak a használatához két jelszó szótár megadása szükséges. Tegyük fel, hogy van két dict1.txt és dict2.txt jelszótárunk, amelyek tartalma:
vadászat cica rainbow
és
Párizs rock
akkor a parancs:
hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
A szótár, amit ténylegesen kipróbáltak, a következő volt:
huntingparis Vadászszikla cicapárizs Cicaszikla szivárványpárizs rainbowrock
A dict1.txt szavai balra, a dict2.txt szavai jobbra, összesen 3×2=6.
Az ehhez a mintához kapcsolódó paraméterek a következők:
-j, - -rule-left -k, - -rule-right
-j utáni szabályok a bal oldalon, a-k utáni szabályok pedig a jobb oldalon, például a paraméter hozzáadása-j' $-', akkor a ténylegesen kipróbálott szótár:
hunting-paris Vadászat-szikla Kitty-Párizs kitty-rock eső-bowparis rain-bowrock
paraméter hozzáadása-j '^!', Akkor a ténylegesen kipróbálott szótár:
! VadászatPárizs ! Vadászszikla ! cicapárizs ! cicaszikla ! SzivárványPárizs ! rainbowrock
hozzáadja a-k '^ >' paramétert, akkor a ténylegesen kipróbálott szótár:
vadászat > párizs Vadászat > szikla cica > Párizs cica > szikla eső > bowparis rain > bowrock
Mi ez a szabály? A "$" és a "^" használata hasonló a reguláris kifejezésekhez, tehát szabályosak? Valójában nem, a hashcat szabályait maguk hajtják végre, ami egy másik nagy tartalom. Részletekért lásd: Szabályalapú támadás
Próbálja meg az adott karakterkészletet. Különféle kombinációk. A hashcat hivatalos wiki szerint ez a módszer elavult, és minden tekintetben felváltotta a Mask-Attack, így nincs kutatás,
Ez egy viszonylag új támadási módszer, példa A következő:
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 maszktámadás fejlett nyers erőnek tekinthető. A
-m paraméter a hash függvény típusának megadására szolgál, az MD5 értéket pedig az MD5.hash fájl tárolja. A kulcs az utolsó karakterlánc "? l? l? l? l? l? l", ezt a karakterláncot maszknak nevezik.
A maszk egy karakterlánc, amely több helyőrzőből áll. A "? l" egy helyőrző, amelyben a "?" egy kulcsszó, amelyet a következő "l" módosítására használnak. Az "? l" együttesen a "? l" mellett karakterkészletet is jelöl "? u", "? d", "? h", "? h", "? s", "? a" és "? b" jelképezi a karakterkészletet az alábbi táblázatban.
| ? | karakterkészlet |
|---|---|
| l | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| u | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| d | 0123456789 |
| h | 0123456789abcdef |
| h | 0123456789ABCDEF |
| s | ! "#$% & ' () * +, -. /:; < = >? @ [\] ^_` ~ {|} |
| a | ? l? te? d? s |
| b | 0 – 0xff |
Így megértjük, hogy „? l? l? l? l? l "valójában egyenértékű a jelszótárral:
aaaaa aaaab ... zzzzz
Ugyanígy a "? l? u? d" egyenértékű a jelszótárral:
aA0 aA1 ... bA0 ... zZ9
A fenti táblázatban szereplő karakterkészlet a hashcat beépített, magunk is megadhatjuk a karakterkészletet:
- -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, például – custom-charset1 rövidíthető-1-re. A-n-vel megadott karakterkészlet "? N" helyőrző formájában van megadva a maszkban, például:
-1 abc123 ? 1? 1? 1
egyenértékű a jelszótárral:
aaa aab ... aa3 ... 333
-N A karakterkészletet képviselő karakterlánc mellett lehet egy. hcchr végű fájl is, amely a karakterkészletet tárolja. A hashcat számos. hcchr fájlt tartalmaz a telepítőcsomag charsets/könyvtárában.
A "??" helyőrző által képviselt karaktergyűjtemény maga a "?". Ezen túlmenően, ha a többi karaktert helyőrzőként használják, magukat a karaktereket képviselik. Például a "? lwerner? d" egyenértékű a jelszótárral:
awerner0. awerner1 ... zwerner9
A fenti ismeretekkel könnyű megérteni a maszkot. A maszk több helyőrzőből áll, mindegyik helyőrző karakterkészlet, és a maszk az egyes helyőrző karakterkészletek kombinációja. A helyőrzők száma megegyezik a jelszó hosszával. Milyen előnyei vannak ennek a kialakításnak ahhoz képest, hogy egyszerűen megadja a karakterkészletet és a jelszó hosszát?
Tegyük fel, hogy ismerjük valakinek 7 számjegyű jelszavát, az első számjegy nagybetű, a következő 3 számjegy kisbetű, az utolsó 3 számjegy pedig szám. Ha hagyományos brute force feltörésről van szó, akkor A-Z, A-Z és 0-9 karakterkészletekre van szükség, összesen 62 karakterből, és legfeljebb 62^7=3 521 614 606 208 próbálkozást igényel, ami billió szint. A jelszó leírására maszk használata "\u\l\l\l\d\d\d", amely könnyen kiszámítható. Összesen (26^4) × (10^3) =456 976 000 lehetőség van, ami 100 millió szint, 4 nagyságrenddel kisebb, mint az előző módszer.
Ha egy lépést hátrálunk, még ha nem is ismerjük a jelszavak eloszlását, a maszk segítségével könnyen szimulálhatjuk a hagyományos brute force feltörés hatását.
A kérdés most az, hogy a maszk rögzített, hány helyőrző van benne halálra írva, és mit tegyünk, ha nem ismerjük a jelszó hosszát. Nem baj, ha a jelszó túl hosszú, ha valaki jelszava csak 3 számjegyű, a mi helyőrzőnk pedig 4, és nem tudjuk megoldani, nem lenne nagy veszteség? Kezdjük az 1-től, és írjuk le minden hosszúságú maszkot? Ez mennyire zavaró.
Két megoldás létezik, az egyik a maszkfájl használata, több maszk írása egy fájlba, majd a fájl megadása a parancssorban. Vegye figyelembe, hogy a maszk fájlnak. hcmask-vel kell végződnie.
Például a test.hcmask tartalma:
? l ? l? l ? l? l? l ? l? l? l? l
Használja a fájlt a következő parancssal:
hashcat -m 0 -a 3 - -show MD5.hash test.hcmask
Egy másik megoldás az – increment paraméter hozzáadása Ez a paraméter azt mondja a hashcatnak, hogy kövesse az általunk megadott maszkot, egy helyőrzővel Kezdje próbálkozni, és próbálkozzon még kettővel, hárommal, amíg meg nem adjuk a hosszt. Például ezt az "abc" helyőrzőt írjuk, majd kiszámítjuk a következő karakterlánc MD5 értékét:
a: 0cc175b9c0f1b6a831c399e269772661 b: 92eb5ffee6ae2fec3ad71c777531578f c: 4a8a08f09d37b73795649038408b5f33 ab: 187ef4436122d1cc2f40dc2b92f0eba0 ac: e2075474294983e013ee4dd2201c7a73 ba: 07159c47ee1b19ae4fb9c40d480856c4 Kr: 5360af35bde9ebd8f01f492dc059593c ca: 5435c69ed3bcc5b2e4d580e393e373d3 cb: d0d7fdb6977b26929fb68c6083c0b439 abc: 900150983cd24fb0d6963f7d28e17f72 abc: 900150983cd24fb0d6963f7d28e17f72 bac: 79ec16df80b57696a03bb364410061f3 bca: b64eab8ce39e013604e243089c687e4f cba: 3944b025c9ca7eec3154b44666ae04a0 cab: 16ecfd64586ec6c1ab212762c2c38a90
A ":" előtt az eredeti karakterlánc, amelynek hash értékét kell kiszámítani, a ":" után pedig a kiszámított hasn érték. Mentse el a fenti tartalmat az MD5.hash fájlba, majd futtassa a következő parancsot:
hashcat -m 0 -a 3 - -show - -username MD5.hash abc
Adja hozzá a paramétert – a felhasználónév azért van, mert minden hash érték előtt van egy eredeti karakterlánc Ha nem adjuk hozzá ezt a paramétert, a hashcat azt mutatja, hogy a helyes hash értéket nem találták. Ha hozzáadjuk ezt a paramétert, a hashcat azt fogja gondolni, hogy a hash érték előtti karakterlánc a hash érték felhasználóneve, így a hash érték zökkenőmentesen betölthető.
A futás eredménye az, hogy csak egy hash oldódott meg:
900150983cd24fb0d6963f7d28e17f72: abc
Most add hozzá a paramétert – increment, futtasd újra:
hashcat -m 0 -a 3 - -show - -increment - -felhasználónév MD5.hash abc
Ezúttal még két hash megoldódott:
0cc175b9c0f1b6a831c399e269772661: a 187ef4436122d1cc2f40dc2b92f0eba0: ab
látható, – increment játszik. De ugyanakkor azt is tudjuk, hogy ezzel a paraméterrel a hashcat csak az A-t, az AB-t és az ABC-t próbálja ki sorrendben, és nem rendezi és kombinálja a helyőrzőket sorrendben, és kipróbálja a különféle lehetőségeket.
A hibrid támadás hasonló a kombinátor támadáshoz, míg a hibrid támadás egy szótárat és egy maszkot kombinál.
Tegyük fel, hogy már van egy példá.dict szótárunk, amely így szól:
hello werner
majd a parancs:
hashcat -m 0 -a 6 MD5.hash példa.dict ? d? d
egyenértékű a szótár egyszerű használatával:
hello00 hello01 ... hello99 werner00 werner01 ... werener99
majd a parancs:
hashcat -m 0 -a 7 MD5.hash ? d? dexample.dict
Egyenértékű a szótár egyszerű használatával:
00hello 01Helló ... 99Helló 00werner 01werner ... 99werener