| # | mod |
|---|---|
| 0 | lurus |
| 1 | gabungan |
| 3 | daya kasar |
| 6 | Topeng senarai perkataan hibrid |
| 7 | Hybrid Mask + Wordlist |
Mod serangan ini juga dikenali sebagai" serangan kamus ". Tidak banyak yang perlu dikatakan, cuma diberikan kamus, hashcat akan membaca kandungan kamus baris demi baris, mengira nilai hash setiap baris, dan membandingkannya dengan nilai hash sasaran.
Contoh:
hashcat -a 0 -m 400 example400.hash example.dict
Baidu memberitahu saya bahawa kombinasi ialah kata nama, yang bermaksud: "gabungan; konsortium; gabungan kata laluan; seluar dalam". Mod serangan ini sebenarnya sangat mudah, iaitu menggabungkan kandungan dua kamus kata laluan. Menggunakan mod serangan ini memerlukan dua kamus kata laluan yang dinyatakan tidak lebih atau kurang. Katakan kita mempunyai dua kamus kata laluan dict1.txt dan dict2.txt, kandungannya ialah:
memburu kucing Pelangi
dan
paris rock
Kemudian arahan:
hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
Kamus yang sebenarnya dicuba ialah:
huntingparis Batu Memburu kittyparis kittyrock rainbowparis rainbowrock
Perkataan dalam dict1.txt di kiri dan perkataan dalam dict2.txt di kanan, sejumlah 3×2=6.
Parameter yang berkaitan dengan corak ini ialah:
-j, - -rule-left -k, - -rule-right
-Peraturan selepas j bertindak di sebelah kiri, dan peraturan selepas-k bertindak di sebelah kanan, seperti menambah parameter-j' $-', maka kamus sebenar yang dicuba ialah:
hunting-paris Batu Memburu kitty-paris kitty-rock Hujan-BowParis hujan-bowrock
Tambah parameter-j'^!', Kemudian kamus sebenar yang dicuba ialah:
! memburuParis ! Batu Memburu ! kittyparis ! kucing batu ! rainbowparis ! rainbowrock
menambah parameter-k'^ >', maka kamus sebenar yang dicuba ialah:
memburu > paris Memburu > Batu Kucing > paris kitty > rock hujan > bowparis Hujan > bowrock
Apakah peraturan ini? Penggunaan "$" dan "^" adalah serupa dengan ungkapan biasa, jadi adakah ia biasa? Sebenarnya tidak. Peraturan hashcat dilaksanakan dengan sendirinya. Ini adalah satu lagi kandungan yang besar. Untuk butiran, lihat Serangan Berasaskan Peraturan
Cuba set aksara yang diberikan Pelbagai kombinasi. Menurut wiki rasmi hashcat, kaedah ini telah ketinggalan zaman dan telah digantikan sepenuhnya oleh serangan topeng, jadi tiada penyelidikan akan dilakukan,
Ini adalah kaedah serangan yang agak baru, contohnya adalah seperti berikut:
hashcat -a 3 -m 0 md5.hash ? Saya? Saya? Saya? Saya? l
Walaupun mengikut jadual "mod serangan", -a 3 sepadan dengan kekuatan kasar, tetapi sebenarnya, -a 3 menggunakan serangan topeng. Serangan topeng boleh dianggap sebagai kekuatan kasar lanjutan. Parameter
-m digunakan untuk menentukan jenis fungsi hash, dan nilai md5 disimpan dalam fail md5.hash. Kuncinya ialah rentetan terakhir "? l? l? l? l? l". Rentetan sedemikian dipanggil topeng.
Topeng ialah rentetan yang terdiri daripada beberapa pemegang tempat. "? l" ialah pemegang tempat, di mana "?" ialah kata kunci, yang digunakan untuk mengubah suai "l" seterusnya. "? l" digabungkan untuk mewakili set aksara Selain "? l", ia juga boleh Terdapat "? u", "? d", "? h", "? h", "? s", "? a" dan "? b" mewakili set aksara seperti yang ditunjukkan dalam jadual di bawah.
| ? | Charset |
|---|---|
| l | abcdefghijklmnopqrstuvwxyz |
| u | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| d | 0123456789 |
| h | 0123456789abcdef |
| h | 0123456789ABCDEF |
| s | ! "#$% & ' () * +, -. /:; < = >? @ [\] ^_` ~ {|} |
| a | ? Saya? awak? d? s |
| b | 0 – 0xff |
Dengan cara ini, kita faham, "? l? l? l? l? l" sebenarnya bersamaan dengan kamus kriptografi:
aaaaa aaaab ... zzzzz
Dengan cara yang sama, "? l? u? d" adalah bersamaan dengan kamus kriptografi:
aA0 aA1 ... bA0 ... zZ9
Set aksara dalam jadual di atas adalah terbina dalam hashcat, kita juga boleh menentukan set aksara sendiri:
- -custom-charset1= set aksara 1 - -custom-charset2= set aksara 2 - -custom-charset3= set aksara 3 - -custom-charset4= set aksara 4
Parameter – custom-charsetN boleh dipendekkan kepada-n, seperti – custom-charset1 boleh dipendekkan kepada-1. Set aksara yang ditentukan dengan-n ditentukan dalam topeng sebagai pemegang tempat "? N", seperti:
-1 abc123 ? 1? 1? 1
bersamaan dengan kamus kriptografi:
aaa aab ... aa3 ... Selain rentetan yang mewakili set aksara selepas 333
-N, ia juga boleh menjadi. Fail berakhir dengan hcchr, yang menyimpan set aksara. hashcat datang dengan banyak fail. hcchr dalam charsets/direktori pakej pemasangan.
Koleksi aksara yang diwakili oleh pemegang tempat "??" ialah "?" itu sendiri. Di samping itu, apabila aksara lain digunakan sebagai pemegang tempat, mereka mewakili aksara itu sendiri Contohnya, "? lwerner? d" adalah bersamaan dengan kamus kata laluan:
awerner0 awerner1 ... zwerner9
Dengan pengetahuan di atas, mudah untuk memahami topeng. Topeng terdiri daripada beberapa pemegang tempat, setiap pemegang tempat ialah set aksara, dan topeng ialah gabungan setiap set aksara pemegang tempat. Bilangan pemegang tempat adalah sama dengan panjang kata laluan. Apakah faedah reka bentuk sedemikian berbanding hanya memberikan set aksara dan panjang kata laluan?
Katakan kita tahu kata laluan seseorang sebanyak 7 digit, digit pertama ialah huruf besar, 3 digit seterusnya ialah huruf kecil, dan 3 digit terakhir ialah nombor. Jika ia adalah retak kekerasan tradisional, ia memerlukan set aksara A-Z, A-Z dan 0-9, sejumlah 62 aksara, dan ia perlu dicuba sehingga 62^7=3 521 614 606 208 kali, yang merupakan tahap trilion. Menggunakan topeng untuk menerangkan kata laluan ini ialah "\u\l\l\l\d\d\d", yang mudah dikira Terdapat sejumlah (26^4) × (10^3) =456 976 000 kemungkinan, iaitu bilion Tahap, 4 susunan magnitud lebih kecil daripada kaedah sebelumnya.
Untuk mengambil langkah ke belakang, walaupun kita tidak tahu pengedaran kata laluan, adalah mudah untuk mensimulasikan kesan retak kekerasan tradisional dengan topeng.
Soalan sekarang ialah topeng ditetapkan, berapa banyak pemegang tempat di dalamnya ditulis mati, dan apakah yang perlu kita lakukan jika kita tidak tahu panjang kata laluan. Tidak mengapa kata laluan terlalu panjang. Jika kata laluan seseorang hanya mempunyai 3 digit dan kami mempunyai 4 pemegang tempat, dan kami tidak dapat menyelesaikannya, bukankah ia kerugian besar? Adakah kita perlu bermula dari 1 dan menulis topeng setiap panjang? Betapa menyusahkan itu.
Terdapat dua penyelesaian Satu ialah menggunakan fail topeng, tulis berbilang topeng dalam satu fail, dan kemudian nyatakan fail ini dalam baris arahan. Ambil perhatian bahawa fail topeng mesti berakhir dengan. hcmask.
Sebagai contoh, kandungan test.hcmask ialah:
? l ? Saya? l ? Saya? Saya? l ? Saya? Saya? Saya? l
Kemudian gunakan arahan berikut untuk menggunakan fail:
hashcat -m 0 -a 3 - -show md5.hash test.hcmask
Penyelesaian lain adalah dengan menambah parameter – increment, yang memberitahu hashcat, tekan topeng yang kami berikan, mulakan dengan satu pemegang tempat dan cuba dua lagi, tiga, sehingga panjang yang kami berikan. Sebagai contoh, kami menulis pemegang tempat "abc" ini, dan kemudian mengira nilai md5 rentetan berikut:
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
":" didahului oleh rentetan asal untuk mengira nilai hash, dan ":" diikuti oleh nilai hasn yang dikira. Simpan kandungan di atas dalam fail md5.hash, dan kemudian jalankan arahan berikut:
hashcat -m 0 -a 3 - -show - -username md5.hash abc
Tambah parameter – nama pengguna adalah kerana setiap nilai hash kami mempunyai rentetan asal sebelum, jika anda tidak menambah parameter ini, hashcat akan menunjukkan bahawa nilai hash yang betul tidak ditemui Dengan menambah parameter ini, hashcat akan berfikir bahawa rentetan sebelum nilai hash ialah nama pengguna untuk nilai hash, supaya nilai hash boleh dimuatkan dengan lancar.
Hasil berjalan ialah hanya satu hash telah diselesaikan:
900150983cd24fb0d6963f7d28e17f72:abc
Sekarang tambah parameter – kenaikan, jalankan semula:
hashcat -m 0 -a 3 - -show - -kenaikan - -nama pengguna md5.hash abc
Kali ini, dua lagi cincang telah diselesaikan:
0cc175b9c0f1b6a831c399e269772661:a 187ef4436122d1cc2f40dc2b92f0eba0:ab
Seperti yang dapat dilihat, – kenaikan memainkan peranan. Tetapi pada masa yang sama, kita juga tahu bahawa dengan parameter ini, hashcat hanya akan mencuba A, ab dan abc dalam susunan, dan tidak akan menyusun dan menggabungkan pemegang tempat dalam susunan, mencuba pelbagai kemungkinan.
Serangan Hibrid adalah serupa dengan Serangan Combinator adalah gabungan dua kamus, manakala Serangan Hibrid adalah gabungan kamus dan topeng.
Katakan kita sudah mempunyai kamus example.dict yang berbunyi seperti berikut:
hello werner
Kemudian arahan:
hashcat -m 0 -a 6 md5.hash contoh.dict ? d? d
bersamaan dengan hanya menggunakan kamus:
hello00 hello01 ... hello99 werner00 werner01 ... werener99
Kemudian arahan:
hashcat -m 0 -a 7 md5.hash ? d? dexample.dict
Bersamaan dengan hanya menggunakan kamus:
00hello 01hello ... 99hello 00werner 01werner ... 99werener