ہیش فنکشن ایک قسم کے فنکشن کا ان پٹ صوابدیدی بائنری ڈیٹا ہے ، اور آؤٹ پٹ ایک مقررہ لمبائی کا بائنری ڈیٹا ہے۔ اس قسم کے فنکشن میں درج ذیل خصوصیات ہیں:
یک طرفہ: ان پٹ سے آؤٹ پٹ کا حساب لگانا آسان اور تیز ہے ، لیکن آؤٹ پٹ سے ان پٹ کا تخمینہ لگانا ریاضی کے لحاظ سے ممکن نہیں ہے۔
تصادم کی رکاوٹ: ایک ہی آؤٹ پٹ کے ساتھ دو مختلف ان پٹس تلاش کرنا انتہائی مشکل ہے
ان خصوصیات کو پورا کرنے والے فنکشنز کو ہیش فنکشن کہا جا سکتا ہے۔ ایک مخصوص ڈیٹا کو ہیش فنکشن کے ان پٹ کے طور پر استعمال کریں اور آؤٹ پٹ کا حساب لگائیں اس آؤٹ پٹ کو ڈیٹا کی ہیش ویلیو کہنا روایتی ہے۔
ہیش فنکشن کا ایک بڑا کام پاس ورڈ کو محفوظ طریقے سے محفوظ کرنا ہے (یعنی یہ پاس ورڈ کو براہ راست محفوظ نہیں کرتا ہے)، لیکن پاس ورڈ کی ہیش ویلیو کو محفوظ کرتا ہے۔ تصدیق کے دوران ، آپ کو صرف ان پٹ پاس ورڈ کا دوبارہ حساب لگانے کی ضرورت ہے محفوظ کردہ پاس ورڈ کی ہیش ویلیو کا موازنہ کر کے معلوم کیا جا سکتا ہے کہ آیا پاس ورڈ درست ہے۔ ہیش فنکشن کی یک طرفہ نوعیت اور تصادم کی رکاوٹوں کی خصوصیات کی وجہ سے ، حملہ آور کے لیے پاس ورڈ کی ہیش ویلیو حاصل کرنے پر بھی پاس ورڈ خود کو جاننا مشکل ہے۔
حملہ آور کو پاس ورڈ کی ہیش ویلیو مل گئی ہے کیا واقعی پاس ورڈ خود جاننے کا کوئی طریقہ نہیں ہے ؟ یقیناً نہیں ، اگرچہ پاس ورڈ کی ہیش ویلیو سے براہ راست پاس ورڈ کا حساب لگانا ریاضی کے لحاظ سے ممکن نہیں ہے ، لیکن ہم جانتے ہیں کہ ہیش فنکشن ان پٹ سے آؤٹ پٹ کا حساب لگانا آسان اور تیز ہے ، آپ اسے آزما سکتے ہیں۔ صرف وہ پاس ورڈ جو انسان سیٹ کر سکتے ہیں ، اگر آپ خوش قسمت ہیں تو آپ اسے آزما سکتے ہیں۔ وہ آپریشن جو مسلسل ہیش ویلیو کے مطابق ان پٹ حاصل کرنے کی کوشش کرتا ہے اسے بلاسٹنگ کہا جاتا ہے۔
اس خیال کی بنیاد پر ، hashcat وجود میں آیا ، اور کہا جاتا ہے کہ hashcat کی پیدائش یہ ثابت کرنے کے لیے ہوئی کہ hash کو پھٹانا بہت آسان ہے۔ hashcat دنیا کا سب سے تیز ہیش بلاسٹنگ ٹول ہونے کا دعوی کرتا ہے ، اور اگر آپ کے پاس ہے تو یہ GPU اور FGPA دونوں کو بھی سپورٹ کرتا ہے۔
ہیش کیٹ نہ صرف تیز ہے بلکہ پیشہ ورانہ طور پر دو سو سے زیادہ ہیش افعال کی حمایت کرتا ہے ، کمانڈ کا استعمال کرتے ہوئے:
hashcat - مدد
آپ ہیش کیٹ کی طرف سے تعاون یافتہ تمام ہیش افعال کی فہرست دیکھ سکتے ہیں ، بہت سارے ہیں جو میں یہاں پوسٹ نہیں کروں گا۔
ہیش کیٹ پہلے سے طے شدہ طور پر کالی میں انسٹال ہے اور اسے براہ راست استعمال کیا جا سکتا ہے۔ تاہم ، میرا کالی ورچوئل باکس میں انسٹال ہے. میں ہمیشہ محسوس کرتا ہوں کہ مجازی موقع سست ہے ، لہذا میں جسمانی میزبان میں ہیش کیٹ استعمال کرنا چاہتا ہوں. hashcat کو ڈاؤن لوڈ کرنے کے لیے پہلے hashchat کی آفیشل ویب سائٹ پر جائیں ، تازہ ترین ورژن v3.5.0 ہے ، جو 2017.04.05 کو جاری کیا گیا تھا۔ اپ ڈیٹ کی تاریخ سے ، ہم دیکھ سکتے ہیں کہ hashchat توانائی سے بھرا ہوا ہے۔ تالیف کی پریشانی کو ختم کریں اور بائنری پیکج کو براہ راست ڈاؤن لوڈ کریں ، جو کہ صرف 2.7M ہے ، جو کہ دسیوں GB کے گیمز کے مقابلے میں بہت چھوٹا ہے۔
ڈاؤن لوڈ مکمل ہونے کے بعد ، hashcat کو ڈی کمپریس کریں اور دیکھیں:
بالترتیب 32 بٹ اور 64 بٹ لینکس اور ونڈوز میں قابل عمل فائلوں کے لیے ، اپنے کمپیوٹر کی صورت حال کے مطابق ان میں سے کسی ایک کو منتخب کریں۔ میں نے hashcat64.bin کا انتخاب کیا ، خوبصورتی کے لیے ، ~/.bashrc فائل میں ایک لائن شامل کریں:
alias hashcat='hashcat64.bin کا راستہ '
کو محفوظ کرنے کے بعد ورچوئل ٹرمینل کو دوبارہ کھولیں تاکہ ~/.bashrc فائل کو موثر بنایا جا سکے ، اس طرح ، چاہے آپ کہیں بھی ہوں ، آپ ڈائریکٹریز کو تبدیل کیے بغیر یا بدصورت "64.bin" میں داخل کیے بغیر براہ راست hashcat کمانڈ درج کر سکتے ہیں۔ جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔
ٹھیک ہے ، اب آپ مختلف ہیشز کو پھٹانے کے لیے hashcat کا استعمال شروع کر سکتے ہیں۔
md5 سب سے مشہور اور سب سے زیادہ استعمال ہونے والے ہیش فنکشنز میں سے ایک ہونا چاہیے۔ سب سے پہلے بلاسٹنگ کے لیے کئی md5 ویلیوز بنانے کے لیے Python کا استعمال کریں:
import hashlib پاس ورڈز = ['123123', 'بانڈ 007', 'xxxxxx', '*H@&(NT*@BR#^'] پاس ورڈ کے لیے پاس ورڈز میں: md5 = hashlib.md5() md5.update(پاس ورڈ) print md5.hexdigest()
مندرجہ بالا کوڈ بالترتیب چار تاروں کی ہیش ویلیو کا حساب لگاتا ہے:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
آؤٹ پٹ کے نتیجے کو فائل md5 میں محفوظ کریں۔ ہیش ، ہر لائن میں ایک hahs ویلیو۔ پھر ان ہیش ویلیوز کو اڑانے کے لیے hashcat کا استعمال کریں:
hashcat -w 3 -a 0 -m 0 --ہٹائیں -o md5.out md5.hash wordlist.dic
پیرامیٹر -w کام کرنے والے طریقوں کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے ، جیسا کہ نیچے دی گئی میز میں دکھایا گیا ہے:
| N | کارکردگی | رن ٹائم | بجلی کی کھپت | ڈیسک ٹاپ اثر |
|---|---|---|---|---|
| 1 | Low | 2 ms | Low | Minimal |
| 2 | Default | 12 ms | اقتصادی | قابل توجہ |
| 3 | High | 96 ms | High | Unresponsive |
| 4 | Nightmare | 480 ms | Insane | Headless |
پیرامیٹر -a کا استعمال حملے کے موڈ کی وضاحت کرنے کے لیے کیا جاتا ہے ، 0 کا مطلب براہ راست اور مسلسل ہے ، یعنی پاس ورڈ لغت کا استعمال کرتے ہوئے ، -a کی پانچ اقدار ہیں ، جیسا کہ درج ذیل جدول میں دکھایا گیا ہے:
| N | موڈ |
|---|---|
| 0 | سیدھا |
| 1 | مجموعہ |
| 3 | Brute-force |
| 6 | ہائبرڈ ورڈ لسٹ + ماسک |
| 7 | ہائبرڈ ماسک + ورڈ لسٹ |
-m دھماکے کے لیے ہیش کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے۔ قدر کا ہیش فنکشن ، 0 کا مطلب ہے کہ ہیش فنکشن md5 ہے ، اور دیگر قدریں درج ذیل جدول میں دکھائی گئی ہیں:
| N | Name | Category |
|---|---|---|
| 0 | MD5 | Raw Hash |
| 300 | MySQL4.1/MySQL5 | ڈیٹا بیس سرور |
| 1000 | NTLM | آپریٹنگ سسٹم |
| 1800 | sha512crypt $6$, SHA512 (Unix) | آپریٹنگ سسٹم |
| 2611 | vBulletin < v3.8.5 | Forums, CMS, E-Commerce, Frameworks |
یہ جدول بہت لمبا ہے ، میں یہاں صرف چند ہیش فنکشنز دکھاتا ہوں ، آپ ان سب کو پیرامیٹر – مدد کا استعمال کرتے ہوئے دیکھ سکتے ہیں
پیرامیٹر – ہٹانے کا مطلب یہ ہے کہ اگر ایک مخصوص ہیش ویلیو کامیابی کے ساتھ پھٹ جاتی ہے۔ md5.hash سے قدر کو ہٹا دیں
پیرامیٹر -o کے بعد ایک فائل کا نام آتا ہے جو اس جگہ کی نشاندہی کرتا ہے جہاں بلاسٹنگ کے نتائج کو محفوظ کیا جاتا ہے۔
کے آخری دو پیرامیٹرز md5 ہیں۔ ہیش اور ورڈ لسٹ۔ dic بالترتیب ہیش ویلیو اور پاس ورڈ ڈکشنری ہیں جنہیں بلاسٹ کیا جانا ہے ہیش ویلیو اور پاس ورڈ ڈکشنری ایک لائن میں ایک ہے۔ md5.hash میں موجود مواد کو Python کے ذریعے شمار کیا گیا ہے اگر آپ کے پاس کوئی مناسب پاس ورڈ لغت نہیں ہے ، تو آپ کمانڈ استعمال کر سکتے ہیں:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
شاید کوئی آپریٹنگ ماحول غائب ہے ، تو اسے انسٹال کریں۔ میں نے ان چیزوں کو کل انسٹال کیا:
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz سی ڈی opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo ./install.sh
اگر نیٹ ورک کی رفتار اچھی ہے تو یہ تھوڑی دیر میں ٹھیک ہو جائے گا:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a علامتی لنک /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a علامتی لنک
لیکن ایسا لگتا ہے کہ یہ کسی چیز پر اثر انداز نہیں ہوتا ، اس لیے اسے نظر انداز کریں۔ ان کو انسٹال کرنے کے بعد ، میں نے اصل غلطی کی اطلاع دینے والی کمانڈ کو چلانے کے لیے دوبارہ انٹر دبائیں ، میں نے محسوس کیا کہ دوبارہ کوئی غلطی نہیں ہوئی ، اور پلک جھپکتے ہی عمل درآمد مکمل ہو گیا۔ کمانڈ پر عمل درآمد کے بعد ، md5.hash اور md5.out فائلوں کے مواد کو چیک کریں اور معلوم کریں کہ md5.hash میں صرف ایک ہیش باقی ہے جو کامیابی سے بلاسٹ ہو چکے ہیں md5.out فائل میں منتقل کر دیا گیا ہے۔ md5.out میں تین ہیش ویلیوز اور ان کی اصل ویلیوز ہیں ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے:
ونڈوز لاگ ان پاس ورڈ کی ہیش ویلیو SAM فائل میں محفوظ ہے ، SAM "سیکیورٹی اکاؤنٹ مینیجر" کا مخفف ہے۔ عام طور پر ، یہ
C:\windows\system32\config\SAM
SAM فائل کو ونڈوز کے ذریعے محفوظ کیا جاتا ہے اور اسے براہ راست نہیں پڑھا جا سکتا۔ ٹولز کی ضرورت ہوتی ہے ، جیسے SAMInside ۔ ایک ونڈوز 7 ورچوئل مشین تلاش کریں ، hashcat نامی ایک نیا ایڈمنسٹریٹر صارف بنائیں ، اور پاس ورڈ سیٹ کریں ، ونڈوز 7 میں SAMInside کو ڈاؤن لوڈ اور ان کمپریس کریں اور اسے ایڈمنسٹریٹر کے حقوق کے ساتھ چلائیں ، پھر File->Import Local Users vis Scheduler پر کلک کریں ، جیسا کہ ذیل میں دکھایا گیا ہے۔ تصویر:
کے بعد SAMInside "جواب نہیں دے رہا" ہو سکتا ہے ، لیکن اس سے کوئی فرق نہیں پڑتا ، چند سیکنڈ صبر سے انتظار کریں ، SAMInside ہماری مطلوبہ ہیش پڑھتا ہے ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے:
صارف "hashcat" کو منتخب کریں جس کا پاس ورڈ ہم پھٹنا چاہتے ہیں ، NT-hash کو کاپی کرنے کے لیے Ctrl+5 دبائیں ، پھر اوبنٹو پر واپس جائیں جہاں hashcat انسٹال ہے ، اور کاپی شدہ ہیش ویلیو کو فائل win7.hash میں محفوظ کرنے کے لیے درج ذیل کمانڈ کا استعمال کریں:
echo 356ceae0c89fb6b6bhashcat -w 3 -a 0 -m 1000 --ہٹائیں -o win7.out win7.hash wordlist.dicتھوڑی دیر بعد عمل درآمد مکمل ہو گیا ، win7.out فائل کو چیک کریں اور معلوم کریں کہ صارف کا لاگ ان پاس ورڈ ہے۔ hashcat rush2112:
werner@Yasser:~/hashcat$ cat win7.out 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112SAM فائل کیسے حاصل کی جائے ، براہ کرم "ونڈوز ہیش سیریز 1 کو کیسے برآمد کریں" سے رجوع کریں۔ مندرجہ ذیل مجازی مشین ونڈوز 7 میں SAM فائل کو پڑھنے کے عمل کو ریکارڈ کرتا ہے.
اگر یہ فزیکل مشین ہے ، تو مشین کو شروع کرنے کے لیے Win PE کا استعمال کریں اور ڈسک پر SAM فائل پڑھیں۔ میرا ایک مجازی مشین ہے. فائل سسٹم میں مجازی ڈسک فائل کو نصب کرنے کے بعد ، آپ مجازی ڈسک میں فائلوں کو پڑھ سکتے ہیں. مجازی مشین جو میں استعمال کرتا ہوں وہ مجازی باکس ہے. یہ کمانڈ vdfuse کا استعمال کرتے ہوئے کیا جا سکتا ہے. اگر آپ کے پاس vdfuse نہیں ہے ، تو آپ کو پہلے virtualbox-fuse انسٹال کرنے کی ضرورت ہے:
sudo apt-get install virtualbox-fuseآپ virtualbox-fuse انسٹالیشن پیکج خود بھی ڈاؤن لوڈ کر سکتے ہیں۔
انسٹالیشن مکمل ہونے کے بعد ، vdfuse کمانڈ دستیاب ہے ، اور آپ ورچوئل ڈسک میپنگ اور ماؤنٹنگ شروع کر سکتے ہیں:
mkdir -p ~/vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/اس مرحلے کو انجام دینے کے بعد ~/vmdisk ڈائرکٹری دیکھیں ، جس میں تین فائلیں ہیں: EntireDisk ، Partition1 اور Partition2 ، نئی ڈائرکٹری بنائیں:
mkdir -p ~/vmdisk_en mkdir -p ~/vmdisk_1 mkdir -p ~/vmdisk_2تین فائلوں کو بالترتیب ماؤنٹ کرنے کے لیے ماؤنٹ کمانڈ کا استعمال کریں:
sudo mount ~/vmdisk/EntireDisk ~/vmdisk_en sudo ماؤنٹ ~/vmdisk/Partition1 ~/vmdisk_1 sudo mount ~/vmdisk/Partition2 ~/vmdisk_2پتہ چلا کہ پوری ڈسک ماؤنٹ ناکام ہوگئی ، پارٹیشن 1 میں موجود مواد وہ نہیں تھا جو میں چاہتا تھا ، پارٹیشن 2 میں ونڈوز 7 ورچوئل مشین سے فائل تھی ، جو میں چاہتا تھا۔ ہماری ٹارگٹ SAM فائل کو vmdisk_fs سے کاپی کریں:
cp ~/vmdisk_2/Windows/System32/config/SAM ./ویسے ، سسٹم فائل کو بھی کاپی کریں:
cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./SAM فائل کے مواد کو دیکھیں ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے ، یہ واقعی ونڈوز کا انداز ہے ،
ٹھیک ہے ، اگرچہ SAM فائل کامیابی سے کھولی گئی ہے ، ہمیں اب بھی ہیش نہیں ملا ، آگے کیا کرنا ہے ؟ SAM فائل کے مواد کو صرف ٹولز کی مدد سے پارس کیا جا سکتا ہے۔ SAM فائل اور سسٹم فائل دونوں کو کالی میں ڈالیں اور کمانڈ چلائیں:
samdump2 -o sam.hash SYSTEM samپھر sam.hash کو چیک کریں ، آپ ہر صارف کے لاگ ان پاس ورڈ کی ہیش ویلیو بھی دیکھ سکتے ہیں۔ sam.hash فائل میں ہر لائن ایک صارف ہے ، اور ہر لائن کا فارمیٹ ہے:
صارف کا نام: RID: LM-hash value: NTLM-hash valueنوٹ کریں کہ یہ فارمیٹ samdump2 کمانڈ آؤٹ پٹ فارمیٹ ہے ، نہ کہ "ونڈوز کے تحت ہیش پاس ورڈ فارمیٹ"۔
3. بلاسٹ لینکس لاگ ان پاس ورڈ ہیش
سب سے پہلے ، آپ کے پاس لینکس سسٹم چلانے والا کمپیوٹر ہونا ضروری ہے ، یہ کہنا آسان ہے ، ورچوئل مشین کافی ہے۔ پھر ، نئے صارف کو شامل کرنے اور ہمارے دھماکے کے مقاصد کے لیے پاس ورڈ سیٹ کرنے کے لیے درج ذیل کمانڈ چلائیں:
sudo adduser justforfun
لینکس میں صارف کے لاگ ان پاس ورڈ کی ہیش ویلیو فائل /etc/shadow میں محفوظ ہے (نوٹ: /etc/passwd نہیں) نئے صارف کے لاگ ان پاس ورڈ کی ہیش ویلیو دیکھنے کے لیے درج ذیل کمانڈ کا استعمال کریں:
test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:999999:7:::
ٹیل کمانڈ فائل کی آخری چند لائنوں کو پڑھنے کے لیے استعمال کی جاتی ہے ، ڈیفالٹ 10 لائنیں ہیں ، لائنوں کی تعداد کی وضاحت کرنے کے لیے پیرامیٹر -n کا استعمال کریں۔ ہم نے ابھی جو نیا صارف بنایا ہے وہ قدرتی طور پر آخری لائن میں ہے ، اس لیے ہم اسے پڑھنے کے لیے tail -n 1 استعمال کرتے ہیں۔ پڑھنے کا نتیجہ ":" میں تقسیم کردہ ڈیٹا ہے ، پہلا حصہ صارف کا نام "justforfun" ہے ، اور دوسرا حصہ پاس ورڈ کی ہیش ویلیو ہے ، اس مضمون میں دیگر حصوں کی پرواہ کرنے کی ضرورت نہیں ہے۔ ہم حصہ 2 پر توجہ مرکوز کرتے ہیں.
سے شروع ہونے والے "$6$" کا مطلب ہے کہ استعمال شدہ ہیش فنکشن کی قسم SHA-512 ہے ، "$6$" کے علاوہ ، لینکس میں ، "$1$" سے مراد MD5 ، "$2a$" سے مراد Blowfish ، "$2y$" سے مراد Blowfish (8-bit حروف کی درست ہینڈلنگ)، "$5$" ہے۔ SHA-256 سے مراد ہے ، تفصیلات کے لیے Wikipedia:passwd ملاحظہ کریں۔ اس کے علاوہ ، فائل /etc/login.defs بھی ہیش الگورتھم کی وضاحت کرتا ہے۔
"$6$" سے اگلے "$" سے پہلے کا حصہ "0fokwg59" نمک ہے۔ نمک کیا ہے ؟ Baidu جانتا ہے کہ CNB2009 کے سوال کا جواب " md5 نمک کی قدر کیا ہے" سادہ اور سمجھنے میں آسان ہے:
سیدھے الفاظ میں ، ایک ہی پاس ورڈ کو بنانے کا ایک طریقہ ہے۔ مختلف ہیش اقدار کا مطلب نمکین ہونا ہے۔ MD5 بذات خود ناقابل واپسی ہے ، لیکن فی الحال انٹرنیٹ پر بہت سے ڈیٹا بیس ہیں جو اینٹی استفسار کو سپورٹ کرتے ہیں اگر صارف کا پاس ورڈ ڈیٹا بیس غلطی سے لیک ہو جاتا ہے ، تو ہیکر اینٹی استفسار کے ذریعے صارف کا پاس ورڈ حاصل کر سکتا ہے ، یا ہیش کوڈز حاصل کر سکتا ہے جو ڈیٹا بیس میں کثرت سے ظاہر ہوتے ہیں۔ (یعنی بہت سے لوگوں کے ذریعہ استعمال کیا جاتا ہے) فورس کریکنگ کے لیے (کیونکہ یہ عام طور پر ایک کمزور پاس ورڈ ہوتا ہے)۔ نمک کی قدر ایک اضافی بے ترتیب قدر ہے جو پاس ورڈ ہیش کے عمل کے دوران شامل کی جاتی ہے ، مثال کے طور پر ، میری id 123456 ہے اور جب اسے ڈیٹا بیس میں محفوظ کیا جاتا ہے ، تو آپ سٹرنگ "123456/123456/ اس طرح ، جب ایک اور بیوقوف پاس ورڈ 123456 ہے ، تو مختلف ہیش اقدار اب بھی تعمیر کی جا سکتی ہیں اور کامیابی سے تصدیق کی جا سکتی ہیں. اس وقت ، میری id کو پاس ورڈ کو پیچیدہ طور پر ہیش کرنے کے لیے نمک کی قدر کے طور پر استعمال کیا جاتا ہے۔ تو کیا ؟ . نمک کی قیمت کا کردار ڈیٹا بیس کی خلاف ورزی کی وجہ سے نقصانات کو کم کرنا ہے. اگر آپ کا RP بہت اچھا ہے اور آپ کا اندازہ ہے کہ میرا پاس ورڈ 123456 ہے ، تو میں آپ کو نہیں روک سکتا
یہ جواب md5 کے لیے ہے ، اور دوسرے ہیش فنکشنز کے لیے بھی یہی ہے۔ نمک کے بعد کا حصہ ہیش ویلیو ہے۔ اب پورے دوسرے حصے کو linux.hash فائل میں کاپی کریں ، linux.hash کا مواد ہونا چاہیے:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0پھر درج ذیل کمانڈ کے ساتھ لینکس لاگ ان پاس ورڈ ہیش کو پھٹائیں:
hashcat -w 3 -a 0 -m 1800 --remove -o linux.out linux.hash wordlist.dicتھوڑی دیر بعد ، دھماکہ مکمل ہو گیا ، نتائج دیکھیں:
werner@Yasser:~/hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321یہ دیکھا جا سکتا ہے کہ یہ کامیاب تھا۔
4. بلاسٹنگ Mysql لاگ ان پاس ورڈ ہیش
سب سے پہلے ، آپ کے پاس Mysql ہونا ضروری ہے۔ یہ صرف میری مجازی مشین میں ہوتا ہے. Baidu جانتا ہے کہ Mysql لاگ ان پاس ورڈ کی ہیش ویلیو فائل user.MYD میں محفوظ ہے۔ فائل user.MYD کہاں ہے ؟ میں بھی نہیں جانتا ، اس لیے میں اسے تلاش کروں گا:
test@test-VirtualBox:~$ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYDفائل کے مواد کو دیکھنے کے لیے /var/lib/mysql/mysql/user.MYD پر پایا گیا:
sudo cat /var/lib/mysql/mysql/user.MYD
کوئی سادہ ٹیکسٹ فائل نہیں ہے ، اس سے کوئی فرق نہیں پڑتا ، لیکن یہ اب بھی دیکھا جا سکتا ہے کہ صارف کے روٹ لاگ ان پاس ورڈ کی ہیش ویلیو ہے:
6B825255FB466413D6B1B724644E23428C94BBCBاس قدر کو فائل mysql.hash میں محفوظ کریں ، mysql لاگ ان پاس ورڈ ہیش کو بلاسٹ کرنے کے لیے درج ذیل کمانڈ کا استعمال کریں:
{}
تھوڑی دیر بعد ، دھماکہ مکمل ہو گیا ، نتائج دیکھیں:
werner@Yasser:~/hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb:viperیہ دیکھا جا سکتا ہے کہ دھماکہ کامیاب تھا۔
5. بلاسٹنگ ڈسکز! فورم کا پاس ورڈ
Discuz! یہ چین میں ایک معروف پی ایچ پی فورم پروگرام ہے اور وسیع پیمانے پر استعمال کیا جاتا ہے. اب ہم Discuz کو دھماکے دیتے ہیں! صارف کے پاس ورڈ کی ہیش ویلیو۔ سب سے پہلے ، آپ کو ہیش ویلیو تلاش کرنی ہوگی ، اسے کہاں سے تلاش کرنا ہے ؟ یقینا ، Discuz سے! ڈیٹا بیس میں.
بحث کی جا سکتی ہے! ڈیٹا بیس کہاں ہے ؟ اس طرح میں نے اسے حل کیا ، اس کی سرکاری ویب سائٹ سے Discuz کا تازہ ترین ورژن ڈاؤن لوڈ کریں! سورس کوڈ ، چلائیں اور انسٹال کریں ، اور آپ کو Discuz ملے گا! ڈیٹا بیس
Discuz! ڈیفالٹ ڈیٹا بیس کا نام ultrax ہے ، اور pre_ucenter_members ٹیبل لاگ ان پاس ورڈ کی ہیش ویلیو کو محفوظ کرتا ہے "pre_" پہلے سے طے شدہ سابقہ ہے اور اسے انسٹالیشن کے دوران تبدیل کیا جا سکتا ہے ، لیکن "ucenter_members" تبدیل نہیں ہوگا۔ لاگ ان پاس ورڈ کی ہیش ویلیو سے استفسار کرنے کے لیے درج ذیل sql اسٹیٹمنٹ کا استعمال کریں:
select password,salt from pre_ucenter_members;
ہیش ویلیو اور نمک ویلیو کو فائل میں محفوظ کریں:
echo 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hashہیش ویلیو اور نمک ویلیو ایک ہی قطار میں ہیں ، جو ":" سے تقسیم ہیں۔ آخر میں ، درج ذیل کمانڈ کے ساتھ Discuz لاگ ان پاس ورڈ ہیش کو اڑا دیں:
hashcat -w 3 -a 0 -m 2611 --remove -o discuz.out discuz.hash wordlist.dicتھوڑی دیر بعد ، دھماکہ مکمل ہو گیا ، نتائج دیکھیں:
werner@Yasser:~/hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553:c13fd9:winterیہ دیکھا جا سکتا ہے کہ دھماکہ کامیاب رہا۔
6. بڑی لغت کا ٹیسٹ
اب تک ، ہم صرف 500 الفاظ کی ایک چھوٹی لغت استعمال کرتے ہیں ، اور ہر بار مختلف ہیشز کو کامیابی سے پھٹانے میں صرف ایک لمحہ لگتا ہے ، یہ عجیب نہیں لگتا ؟ اس کی وجہ یہ ہے کہ میں نے جان بوجھ کر لغت میں ایک کمزور پاس ورڈ مقرر کیا ہے تاکہ ہیش کیٹ کا استعمال کرنے کی مشق کی جا سکے. دوسری صورت میں ، یہ لوگوں کو برا محسوس نہیں کرے گا. عملی طور پر ایسی اچھی قسمت نہیں ہوسکتی ہے. آئیے کم کمزور پاس ورڈ کی md5 قدر کا حساب لگائیں اور اسے ایک بڑی لغت کے ساتھ پھٹائیں ، ایک طرف اپنی قسمت کی کوشش کریں ، اور دوسری طرف دیکھیں کہ hashcat کتنی تیزی سے ہوسکتا ہے.
پہلے md5 قدر کا حساب لگائیں:
import hashlib md5 = hashlib.md5() md5.update("werner123456!!!") print md5.hexdigest()آؤٹ پٹ ہے:
b17133f9abff287ed0546c1af2b171f7پھر ایک 10.5G سائز کی لغت منتخب کریں ، جس میں 940 ملین پاس ورڈز ہیں ، بلاسٹنگ شروع کریں:
hashcat -w 3 -a 0 -m 0 --remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dicنوٹ کریں کہ جب صرف ایک ہیش ویلیو ہو تو اسے فائل میں محفوظ کرنے کی ضرورت نہیں ہے ، آپ اسے براہ راست کمانڈ لائن پیرامیٹرز میں لکھ سکتے ہیں۔ بستر پر جانے سے پہلے بلاسٹنگ شروع کردی ، اگلے دن نتائج دیکھنے کے لئے اٹھا ، اور پتہ چلا:
شروع: Wed Jul 26 22:55:27 2017 Stopped: Wed Jul 26 23:02:28 2017یہ صرف 7 منٹ لگے! میں نے سوچا کہ اس میں 7 گھنٹے لگیں گے ، جو میری توقع سے 60 گنا تیز ہے! یہ افسوس کی بات ہے کہ ہیش ویلیو کو کامیابی سے پھٹایا نہیں گیا ایسا لگتا ہے کہ "werner123456!!!" پاس ورڈ لغت میں نہیں ہے۔ ایسا لگتا ہے کہ مجھے ایک 100G پاس ورڈ ڈکشنری تیار کرنے کی ضرورت ہے ، لیکن اتنی بڑی ڈکشنری کو محفوظ کرنا اور منتقل کرنا بہت تکلیف دہ ہے ، کیا اس کے علاوہ کوئی راستہ نہیں ہے ؟ یقینا ، حملے کے موڈ کو یاد رکھیں ؟ ہم "براہ راست" موڈ استعمال کر رہے ہیں. اگلا ، کئی دوسرے طریقوں کا مطالعہ کریں.
7. خلاصہ
ہیش کو پھٹانے کے لیے hashcat کا استعمال کرتے ہوئے ، سب سے پہلے ہیش کو تلاش کرنا ہے مختلف سسٹمز اور مختلف سافٹ ویئر میں ہیش اسٹوریج کے مختلف مقامات ہوتے ہیں ، اور آپ کو ہیش کی قدر کو درست طریقے سے تلاش کرنے کی ضرورت ہے۔ دوسرا یہ ہے کہ ہیش کی قسم کا صحیح تعین کریں ، اس بات کا تعین کریں کہ آیا ہیش کیٹ اس قسم کے ہیش کو سپورٹ کرتا ہے ، اور -m کے صحیح پیرامیٹرز کو منتخب کریں ، ورنہ کامیابی تقریباً ناممکن ہے۔ تیسرا یہ ہے کہ پاس ورڈ لغت بہتر ہونا چاہیے چاہے اسے بالآخر کامیابی سے پھٹا جا سکے یا لغت پر منحصر ہو۔ اگرچہ پاس ورڈ لغت جتنا بڑا ہو اتنا ہی بہتر نہیں ہے ، لیکن ہمیشہ بڑا ہونا بہتر ہے ، hashcat بھی اس کی رفتار کے لیے جانا جاتا ہے ، اور بڑی لغتیں hashcat کے لیے کوئی مسئلہ نہیں ہیں۔ یہاں ایک بہتر لغت ہے: پچھلے لیک گیٹ + عام طور پر استعمال ہونے والے کمزور پاس ورڈ لغت کا مجموعہ۔ 7Z، ڈیکمپریشن پاس ورڈ ہے: anywlan ۔ اس کے علاوہ ، اگر آپ بہت سی چھوٹی لغتیں جمع کرتے ہیں ، تو آپ ہیش کیٹ بلاسٹنگ کی سہولت کے لیے ایک بڑی لغت حاصل کرنے کے لیے چھوٹی لغتوں کو ضم ، ترتیب ، اور ڈپلیکیٹ کر سکتے ہیں۔ اگر چھوٹی لغت ایک ہی ڈائرکٹری میں ہے ، تو اسے ایک کمانڈ کا استعمال کرتے ہوئے کیا جا سکتا ہے:
cat * | sort | uniq > Merge.dicکیا ہوگا اگر چھوٹی لغت کو زمرہ کے لحاظ سے ترتیب دیا جائے اور کثیر پرتوں والی ڈائرکٹریوں میں تقسیم کیا جائے ؟ ظاہر ہے کہ صرف cat کمانڈ استعمال کرنا کافی نہیں ہے ، لیکن درحقیقت صرف ایک کمانڈ کی ضرورت ہے یہ فرض کرتے ہوئے کہ تمام چھوٹی لغتیں ڈائرکٹری MyDictionary میں محفوظ ہیں ، کمانڈ کو اس طرح لکھا جا سکتا ہے:
find ./MyDictionary -type f -exec cat {} \; | ترتیب | uniq > Merge.dic