| # | Mode |
|---|---|
| 0 | Straight |
| 1 | Combination |
| 3 | Brute-force |
| 6 | ہائبرڈ ورڈ لسٹ + ماسک |
| 7 | ہائبرڈ ماسک + ورڈ لسٹ |
اس حملے کے موڈ کو "ڈکشنری اٹیک" بھی کہا جاتا ہے۔ کہنے کے لئے کچھ بھی نہیں ہے ، صرف ایک لغت دی گئی ہے ، hashcat لغت کے مواد کو لائن کی طرف سے پڑھتا ہے ، ہر لائن کی ہیش قدر کا حساب لگاتا ہے ، اور ہدف ہیش قدر کے ساتھ موازنہ کرتا ہے.
مثال:
hashcat -a 0 -m 400 example400.hash example.dict
Baidu نے مجھے بتایا کہ مجموعہ ایک اسم ہے ، جس کا مطلب ہے: "مجموعہ ؛ مجموعہ ؛ پاس ورڈ کا مجموعہ ؛ جمپ سوٹ"۔ یہ حملے کا موڈ اصل میں بہت آسان ہے ، یہ دو پاس ورڈ لغات کے مواد کو یکجا کرنا ہے۔ اس حملے کے موڈ کا استعمال کرتے ہوئے دو پاس ورڈ لغات کی وضاحت کرنے کی ضرورت ہے. فرض کریں کہ ہمارے پاس دو پاس ورڈ لغات dict1.txt اور dict2.txt ہیں ، جن کے مواد یہ ہیں:
شکار بلی کی لڑکی رینبو
اور
پیرس راک
پھر کمانڈ:
hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
اصل میں کوشش کی گئی لغت یہ ہے:
huntingparis ہنٹنگ راک کٹی پیرس کٹی راک رینبوپیرس rainbowrock
dict1.txt میں الفاظ بائیں طرف ہیں ، اور dict2.txt میں الفاظ دائیں طرف ہیں ، کل 3×2=6 ۔
اس موڈ سے متعلق پیرامیٹرز یہ ہیں:
-j, --rule-left -k, --rule-right
-j کے بعد کے اصول بائیں طرف کام کرتے ہیں ، اور -k کے بعد کے اصول دائیں طرف کام کرتے ہیں ، جیسے کہ پیرامیٹر شامل کرنا -j '$- '، پھر اصل لغت کی کوشش کی گئی ہے:
شکار-پیرس ہنٹنگ راک کٹی پیرس کٹی راک بارش-بو پیرس rain-bowrock
پیرامیٹر شامل کریں -j '^!', پھر اصل کوشش کی گئی لغت یہ ہے:
! ہنٹنگپیرس ! ہنٹنگ راک ! کٹی پیرس ! kittyrock ! رینبوپیرس ! rainbowrock
پیرامیٹر -k '^>' شامل کرتا ہے ، پھر اصل لغت کی کوشش کی گئی ہے:
شکار>پیرس شکار>راک کٹی>پیرس کٹی>راک بارش>بو پیرس rain>bowrock
یہ قاعدہ کیا ہے ؟ "$" اور "^" کا استعمال باقاعدہ اظہار کی طرح ہے ، تو کیا وہ باقاعدہ ہیں ؟ درحقیقت ، ہیش کیٹ کے قواعد خود نافذ کیے جاتے ہیں ، جو کہ تفصیلات کے لیے ، Rule-based Attack
دیکھیں۔ مختلف امتزاج دیئے گئے کریکٹر سیٹ۔ hashcat کی آفیشل ویکی کے مطابق ، یہ طریقہ فرسودہ ہے اور اس کی جگہ ماسک اٹیک نے لے لی ہے ، اس لیے کوئی تحقیق نہیں کی گئی ہے
یہ ایک نسبتاً نیا حملہ ہے۔ طریقہ ، مثال مندرجہ ذیل ہے:
hashcat -a 3 -m 0 md5.hash ؟ ایل ؟ ایل ؟ ایل ؟ ایل ؟ l
اگرچہ "اٹیک موڈز" ٹیبل کے مطابق ، -A 3 Brute-force سے مساوی ہے ، درحقیقت ، -A 3 ماسک اٹیک استعمال کرتا ہے۔ ماسک اٹیک کو اعلی درجے کی وحشیانہ طاقت کے طور پر دیکھا جا سکتا ہے۔
-m پیرامیٹر کو ہیش فنکشن کی قسم کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے ، اور md5 قدر md5 فائل میں محفوظ ہے۔ کلید آخری تار ہے "؟ l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l
ایک ماسک ایک تار ہے جو کئی پلیس ہولڈرز پر مشتمل ہے۔ "?l" ایک پلیس ہولڈر ہے ، جہاں "?" ایک مطلوبہ لفظ ہے ، جس کا استعمال بعد کے "l" میں ترمیم کرنے کے لیے کیا جاتا ہے ، "?l" کے علاوہ ، یہ بھی ہو سکتا ہے۔ "?u"، "?d"، "?h"، "?h"، "?s"، "?a" اور "?b"، جس کی نمائندگی کردہ حروف کا مجموعہ نیچے دیے گئے جدول میں دکھایا گیا ہے۔
| ? | Charset |
|---|---|
| l | abcdefghijklmnopqrstuvwxyz |
| u | abcdefghijklmnopqrstuvwxyz |
| d | 0123456789 |
| H | 0123456789abcdef |
| H | 0123456789abcdef |
| s | ! "#$%&'()*+,-./:;<=>?@[\]^_`~{|} |
| a | ؟ ایل ؟ آپ ؟ ڈی ؟ s |
| b | 0 – 0xff |
اس طرح ہم سمجھتے ہیں ، "?l ?l" دراصل پاس ورڈ لغت کے برابر ہے:
aaaaa aaaab ... zzzzz
اسی طرح ، "?l?u?d" پاس ورڈ لغت کے برابر ہے:
aA0 aA1 ... bA0 ... zZ9
اوپر کی میز میں کریکٹر سیٹ ہیش کیٹ میں بلٹ ان ہے ، ہم خود کریکٹر سیٹ کی وضاحت بھی کر سکتے ہیں:
--custom-charset1=کریکٹر سیٹ 1 --custom-charset2=کریکٹر سیٹ 2 --custom-charset3=کریکٹر سیٹ 3 --custom-charset4=کریکٹر سیٹ 4
پیرامیٹر –custom-charsetN کو -N کے طور پر مختصر کیا جا سکتا ہے ، مثال کے طور پر –custom-charset1 کو -1 کے طور پر مختصر کیا جا سکتا ہے۔ -N کے ساتھ مخصوص کرداروں کا مجموعہ پلیس ہولڈر "?N" کی شکل میں ماسک میں مخصوص ہے ، جیسے:
-1 abc123 ? 1? 1? 1
پاس ورڈ لغت کے برابر ہے:
aaa aab ... aa3 ... 333
-N کریکٹر سیٹ کی نمائندگی کرنے والی سٹرنگ کے علاوہ ، یہ .hcchr پر ختم ہونے والی فائل بھی ہو سکتی ہے ، جہاں کریکٹر سیٹ محفوظ ہوتا ہے۔ hashcat بہت سی .hcchr فائلوں کے ساتھ آتا ہے ، جو انسٹالیشن پیکج کی charsets/ڈائرکٹری میں ہے۔
پلیس ہولڈر "??" کی نمائندگی کردہ حروف کا مجموعہ خود "?" ہے۔ اس کے علاوہ ، جب باقی حروف کو پلیس ہولڈرز کے طور پر استعمال کیا جاتا ہے ، تو وہ خود کردار کی نمائندگی کرتے ہیں ، مثال کے طور پر ، "?lwerner?d" پاس ورڈ لغت کے برابر ہے:
awerner0 ایوارنر 1 ... zwerner9
مندرجہ بالا علم کے ساتھ ، ماسک کو سمجھنا آسان ہے۔ ایک ماسک کئی پلیس ہولڈرز پر مشتمل ہوتا ہے ، ہر پلیس ہولڈر کریکٹر سیٹ ہے ، اور ماسک پلیس ہولڈر کریکٹر سیٹ کا مجموعہ ہے۔ پلیس ہولڈرز کی تعداد پاس ورڈ کی لمبائی کے برابر ہے۔ صرف کردار سیٹ اور پاس ورڈ کی لمبائی دینے کے مقابلے میں اس طرح کے ڈیزائن کے فوائد کیا ہیں ؟
فرض کریں کہ ہم جانتے ہیں کہ کسی کے پاس ورڈ میں کل 7 ہندسے ہیں ، پہلا ہندسہ بڑا حرف ہے ، اگلے 3 ہندسے چھوٹے حرف ہیں ، اور آخری 3 ہندسے نمبر ہیں۔ اگر یہ روایتی فورس کریکنگ ہے ، تو اس کے لیے کریکٹر سیٹ A-Z ، A-Z اور 0-9 کی ضرورت ہوتی ہے ، کل 62 حروف ، اور زیادہ سے زیادہ کوششیں 62^7=3 521 614 606 208 بار درکار ہوتی ہیں ، جو کہ ٹریلین کی سطح ہے۔ اس پاس ورڈ کو بیان کرنے کے لیے ماسک کا استعمال کرتے ہوئے ، یہ "\u\l\l\l\d\d\d" ہے ، جس کا حساب لگانا آسان ہے (26^4)×(10^3)=456 976,000 امکانات ، جو کہ 100 ملین ہے۔ سطح ، پچھلے طریقہ سے 4 آرڈرز کم ہے۔
ایک قدم پیچھے ہٹتے ہوئے ، یہاں تک کہ اگر ہم پاس ورڈز کی تقسیم کو نہیں جانتے ہیں ، تو ماسک کا استعمال کرتے ہوئے روایتی پرتشدد کریکنگ کے اثر کی نقل کرنا آسان ہے۔
اب مسئلہ یہ ہے کہ ماسک طے کیا گیا ہے اور اگر ہم پاس ورڈ کی لمبائی نہیں جانتے تو ہمیں کیا کرنا چاہیے۔ یہ ٹھیک ہے کہ پاس ورڈ بہت لمبا ہے اگر کسی کے پاس ورڈ میں صرف 3 ہندسے ہیں اور ہمارے پاس 4 پلیس ہولڈرز ہیں ، تو کیا یہ ایک بڑا نقصان نہیں ہوگا۔ کیا ہمیں 1 سے شروع کرنے اور ہر لمبائی کے ماسک لکھنے کی ضرورت ہے ؟ یہ کتنا مصیبت ہے.
کے دو حل ہیں ایک ماسک فائل کا استعمال کرنا ، ایک فائل میں متعدد ماسک لکھنا ، اور پھر کمانڈ لائن میں فائل کی وضاحت کرنا۔ نوٹ کریں کہ ماسک فائل .hcmask کے ساتھ ختم ہونے کی ضرورت ہے.
مثال کے طور پر ، test.hcmask کا مواد ہے:
؟ ایل ? ایل ؟ ایل ? ایل ؟ ایل ؟ ایل ? ایل ؟ ایل ؟ ایل ؟ l
پھر فائل کو درج ذیل کمانڈ کے ساتھ استعمال کریں:
hashcat -m 0 -a 3 --show md5.hash test.hcmask
ایک اور حل یہ ہے کہ پیرامیٹر –increment کو شامل کیا جائے ، جو کہ hashcat کو بتاتا ہے کہ ہم نے جو ماسک دیا ہے اس کے مطابق پلیس ہولڈر سے شروع کریں۔ کوشش کریں ، پھر دو ، تین ، جب تک ہم نے لمبائی نہیں دی ہے۔ مثال کے طور پر ، ہم اس پلیس ہولڈر "abc" لکھتے ہیں ، اور پھر مندرجہ ذیل تار کے md5 قدر کا حساب لگاتے ہیں:
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
":" سے پہلے اصل سٹرنگ ہے جس کے لیے ہیش ویلیو کا حساب لگانا ہے ، اور ":" کے بعد حسابی hasn ویلیو ہے۔ مندرجہ بالا مواد کو md5.hash فائل میں محفوظ کریں ، اور پھر درج ذیل کمانڈ چلائیں:
hashcat -m 0 -a 3 --show --username md5.hash abc
پیرامیٹر شامل کریں –username اس لیے ہے کہ ہماری ہر ہیش ویلیو کے سامنے ایک اصل سٹرنگ ہوتی ہے۔ اگر یہ پیرامیٹر شامل نہیں کیا جاتا ہے ، تو hashcat ظاہر کرے گا کہ صحیح ہیش ویلیو نہیں ملی ہے ، اس پیرامیٹر کو شامل کرنے سے ، hashcat سوچے گا کہ ہیش ویلیو سے پہلے کی سٹرنگ ہیش ویلیو کے جوڑے کا صارف نام ہے ، تاکہ ہیش ویلیو کو کامیابی سے لوڈ کیا جا سکے۔
چلانے کا نتیجہ یہ ہے کہ صرف ایک ہیش حل کیا گیا ہے:
900150983cd24fb0d6963f7d28e17f72:abc
اب پیرامیٹر –increment شامل کریں اور دوبارہ چلائیں:
hashcat -m 0 -a 3 --show --increment --username md5.hash abc
اس بار ، دو مزید ہیشز حل کیے گئے:
0cc175b9c0f1b6a831c399e269772661:a 187ef4436122d1cc2f40dc2b92f0eba0:ab
نظر آتا ہے ، – اضافہ ایک کردار ادا کرتا ہے۔ لیکن ایک ہی وقت میں ، ہم یہ بھی جانتے ہیں کہ اس پیرامیٹر کے ساتھ ، hashcat صرف ترتیب میں A ، ab ، اور abc کی کوشش کرے گا ، اور مختلف امکانات کی کوشش کرنے کے لیے جگہ ہولڈرز کو ترتیب اور یکجا نہیں کرے گا۔
ہائبرڈ اٹیک کمبینیٹر اٹیک سے ملتا جلتا ہے ، جبکہ ہائبرڈ اٹیک ایک لغت اور ایک ماسک کو ملاتا ہے۔ فرض کریں کہ ہمارے پاس پہلے سے ہی ایک لغت example.dict ہے جو درج ذیل ہے:
ہیلو werner
پھر کمانڈ:
hashcat -m 0 -a 6 md5.hash example.dict ؟ ڈی ؟ d
صرف لغت کا استعمال کرنے کے برابر ہے:
ہیلو 00 ہیلو 01 ... ہیلو 99 ویرنر 00 ورنر 01 ... werener99
پھر کمانڈ:
hashcat -m 0 -a 7 md5.hash ؟ ڈی ؟ dexample.dict
صرف لغت کا استعمال کرنے کے برابر ہے:
00 ہیلو 01 ہیلو ... 99 ہیلو ویرنر 01 ورنر ... 99 ویرنر