تابع هش یک اصطلاح کلی برای یک نوع تابع است که ورودی این نوع تابع داده های باینری دلخواه است و خروجی آن داده های باینری با طول ثابت است. این نوع تابع دارای ویژگی های زیر است:
یک طرفه: محاسبه خروجی از ورودی ساده و سریع است ، اما استنباط معکوس ورودی از خروجی از نظر ریاضی امکان پذیر نیست
محدودیت برخورد: یافتن دو ورودی مختلف با خروجی یکسان بسیار دشوار است
توابعی که این ویژگی ها را برآورده می کنند را می توان تابع هش نامید. داده خاصی به عنوان ورودی تابع هش استفاده می شود و خروجی محاسبه می شود. یکی از عملکردهای اصلی تابع هش
ذخیره ایمن رمز عبور است که به طور مستقیم رمز عبور را ذخیره نمی کند (یعنی رمز عبور متن ساده را ذخیره نمی کند)، بلکه مقدار هش رمز عبور را ذخیره می کند. فقط باید رمز عبور ورودی را دوباره محاسبه کنید. مقدار هش رمز عبور را می توان با مقایسه مقدار هش رمز عبور ذخیره شده دانست که آیا رمز عبور صحیح است یا خیر. با توجه به یک طرفه بودن عملکرد هش و ویژگی های محدودیت برخورد ، حتی اگر مهاجم مقدار هش رمز عبور را بدست آورد ، دانستن خود رمز عبور دشوار است.
مهاجم مقدار هش رمز عبور را به دست آورده است آیا واقعاً راهی برای دانستن خود رمز عبور وجود ندارد ؟ البته نه. اگرچه محاسبه مستقیم رمز عبور بر اساس مقدار هش رمز عبور از نظر ریاضی امکان پذیر نیست ، اما می دانیم که محاسبه تابع هش از ورودی برای به دست آوردن خروجی ساده و سریع است. در بدترین حالت ، می توانید آن را امتحان کنید. رمزهای عبوری که انسان ها ممکن است تعیین کنند فقط اینها هستند ، آنها را یکی یکی امتحان کنید ، اگر خوش شانس باشید ، باز هم می توانید آنها را امتحان کنید. عملیات تلاش مداوم برای به دست آوردن ورودی مربوط به مقدار هش ، انفجار نامیده می شود.
بر اساس این ایده ، hashcat به وجود آمد و گفته می شود که hashcat برای اثبات اینکه انفجار hash یک چیز بسیار ساده است ، متولد شد. hashcat ادعا می کند که سریع ترین ابزار انفجار هش در جهان است و حتی از GPU و FGPA پشتیبانی می کند.
hashcat نه تنها سریع است ، بلکه به صورت حرفه ای از بیش از دویست تابع هش پشتیبانی می کند ، با استفاده از دستور:
hashcat --help
می توانید لیستی از تمام تابع هش پشتیبانی شده توسط hashcat را ببینید.
hashcat به صورت پیش فرض در کالی نصب شده است و می توان مستقیماً از آن استفاده کرد. اما کالی من در VirtualBox نصب شده است و همیشه احساس می کنم فرصت های مجازی کندتر هستند ، بنابراین می خواهم از hashcat در هاست فیزیکی استفاده کنم. ابتدا برای دانلود hashcat به وب سایت رسمی hashchat بروید. تاکنون آخرین نسخه v3.5.0 است که در تاریخ 2017.04.05 منتشر شده است. از تاریخ آپدیت می توان دریافت که hashchat پر از انرژی است. دردسر کامپایل را از بین ببرید و بسته باینری را مستقیماً دانلود کنید که فقط 2.7 مگابایت است که در مقایسه با بازی هایی که اغلب ده ها گیگابایت هزینه دارند بسیار کوچک است.
پس از اتمام دانلود ، hashcat را از حالت فشرده خارج کنید و ببینید:
فایل های اجرایی در لینوکس و ویندوز به ترتیب در 32 بیت و 64 بیت هستند. من hashcat64.bin رو انتخاب کردم و برای زیبایی یک خط به فایل ~/.bashrc اضافه کردم:
alias hashcat='مسیر hashcat64.bin '
پس از ذخیره ترمینال مجازی را دوباره باز کنید تا فایل ~/.bashrc اجرا شود ، به این ترتیب هر کجا که هستید ، بدون تغییر دایرکتوری و ورود به "64.bin" زشت ، دستور hashcat را مستقیم وارد کنید ، همانطور که در تصویر زیر نشان داده شده است.
خوب ، اکنون می توانید از hashcat برای انفجار هش های مختلف استفاده کنید.
md5 باید یکی از معروف ترین و پرکاربردترین توابع هش باشد. ابتدا از پایتون برای تولید چندین مقدار md5 برای انفجار استفاده کنید. کد به شرح زیر است:
import hashlib کلمات عبور = ['123123', 'bond007', 'xxxxxx', '*H@&(NT*@BR#^'] برای رمز عبور در رمزهای عبور: هاشلیب (hashlib.md5) md5.update(رمز عبور) print md5.hexdigest()
کد فوق به ترتیب مقادیر هش چهار رشته را محاسبه می کند:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
نتیجه خروجی را در فایل md5.hash با یک مقدار 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 | Economic | Noticeable |
| 3 | High | 96 ms | High | Unresponsive |
| 4 | Nightmare | 480 ms | Insane | Headless |
پارامتر -a برای مشخص کردن حالت حمله استفاده می شود ، معنی 0 مستقیم و پیوسته است ، یعنی با فرهنگ لغت رمز عبور منفجر می شود ، همانطور که در جدول زیر نشان داده شده است ، پنج مقدار -a وجود دارد:
| N | حالت |
|---|---|
| 0 | مستقیم |
| 1 | ترکیب |
| 3 | Brute-force |
| 6 | Hybrid Wordlist + Mask |
| 7 | Hybrid Mask + Wordlist |
-m برای مشخص کردن هش برای انفجار تابع هش مقدار ، 0 به این معنی است که تابع هش md5 است و سایر مقادیر در جدول زیر نشان داده شده است:
| N | Name | Category |
|---|---|---|
| 0 | MD5 | هش خام |
| 300 | MySQL4.1/MySQL5 | سرور پایگاه داده |
| 1000 | NTLM | سیستم عامل |
| 1800 | sha512crypt $6$, SHA512 (Unix) | سیستم عامل |
| 2611 | vBulletin < v3.8.5 | Forums, CMS, E-Commerce, Frameworks |
این جدول خیلی طولانی است ، من فقط چندین تابع هش را در این مقاله نشان می دهم ، و می توانید همه آنها را با استفاده از پارامتر – راهنما ببینید.
پارامتر – حذف به این معنی است که اگر یک مقدار هش خاص با موفقیت منفجر شود ، مقدار از md5.hash حذف می شود.
دو پارامتر آخر md5.hash و wordlist.dic به ترتیب مقدار هش و فرهنگ لغت رمز عبور هستند که باید منفجر شوند. محتوای md5.hash توسط پایتون محاسبه شده است. اگر فرهنگ لغت رمز عبور مناسبی در دست ندارید ، می توانید از دستور استفاده کنید:
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 symbolic لینک /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 نیست یک نمادین پیوند
اما به نظر نمی رسد روی چیزی تأثیر بگذارد ، بنابراین آن را نادیده بگیرید. پس از نصب اینها ، دوباره Enter را فشار دهید و دستوری را که در ابتدا خطا را گزارش کرده بود اجرا کنید ، متوجه شدم که هیچ خطای دیگری گزارش نشده است و در یک لحظه اجرا کامل شد. پس از اجرای دستور ، محتویات فایل های md5.hash و md5.out را بررسی کنید و متوجه شوید که فقط یک هش در md5.hash باقی مانده است. در md5.out سه مقدار هش و مقدار اصلی آنها در شکل زیر نشان داده شده است:
مقدار هش رمز ورود به سیستم ویندوز در فایل SAM ذخیره می شود ، SAM مخفف "security account manager" است. معمولا در
C:\Windows\system32\config\SAM
قرار دارد. فایل های SAM توسط ویندوز محافظت می شوند و قابل خواندن مستقیم نیستند. نیاز به کمک ابزارهایی مانند SAMInside. یک ماشین مجازی ویندوز 7 پیدا کنید ، یک کاربر مدیر جدید به نام hashcat ایجاد کنید و رمز عبور را تنظیم کنید ، SAMInside را در ویندوز 7 دانلود کنید و از حالت فشرده خارج کنید و آن را با امتیازات مدیر اجرا کنید ، سپس روی File->Import Local Users vis Scheduler کلیک کنید ، همانطور که در تصویر زیر نشان داده شده است:
ممکن است SAMInside پس از آن "پاسخ نداده" باشد ، اما مهم نیست ، چند ثانیه صبور باشید و SAMInside طبق انتظار هش مورد نظر ما را بخواند ، همانطور که در تصویر زیر نشان داده شده است:
کاربر "hashcat" را انتخاب کنید که می خواهیم رمز عبور را منفجر کنیم ، Ctrl+5 را فشار دهید تا NT-hash را کپی کنید ، سپس به اوبونتو که hashcat نصب شده است برگردید و مقدار هش کپی شده را با دستور زیر در فایل win7.hash ذخیره کنید:
echo<101x96hashcat -w 3 -a 0 -m 1000 --حذف -o win7.out win7.hash wordlist.dicپس از مدتی اجرا تکمیل شد ، فایل win7.out را بررسی کنید و متوجه شوید که انفجار موفقیت آمیز است. رمز ورود کاربر hashcat rush2112 است:
werner@Yasser:~/hashcat$ cat win7.out 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112برای نحوه دریافت فایل SAM ، لطفاً به "نحوه صادرات هش ویندوز سری 1" مراجعه کنید. در زیر روند خواندن فایل SAM در ماشین مجازی ویندوز 7 ثبت شده است.
اگر یک دستگاه فیزیکی است ، دستگاه را با Win PE راه اندازی کنید و فایل SAM را روی دیسک بخوانید. مال من یک ماشین مجازی است و می توانید فایل های موجود در دیسک مجازی را با نصب فایل دیسک مجازی در سیستم فایل بخوانید. ماشین مجازی که من استفاده می کنم VirtualBox است و می توان این کار را با دستور 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با دستور mount سه فایل EntireDisk ، Partition1 و Partition2 را به ترتیب نصب کنید:
sudo mount ~/vmdisk/EntireDisk ~/vmdisk_en sudo mount ~/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:99999:7:::
دستور tail برای خواندن چند خط آخر یک فایل استفاده می شود ، به طور پیش فرض 10 خط است ، تعداد خطوط را با پارامتر -n مشخص کنید. کاربر جدیدی که به تازگی ایجاد کردیم طبیعتاً در خط آخر است ، بنابراین از tail -n 1 برای خواندن استفاده می کنیم. نتیجه ای که خوانده می شود داده های تقسیم شده با ":" است. قسمت اول نام کاربری "justforfun" است و قسمت دوم مقدار هش رمز عبور است. قسمت های دیگر نیازی به نگرانی در این مقاله ندارند. ما بر روی بخش دوم تمرکز می کنیم.
"$6$" که باشروع می شود به این معنی است که نوع تابع هش مورد استفاده SHA-512 است ، علاوه بر "$6$"، در لینوکس ، "$1$" به MD5 ، "$2a$" اشاره دارد. به Blowfish ، "$2y$" به Blowfish (مدیریت صحیح کاراکترهای 8 بیتی)، "$5$" اشاره دارد. به SHA-256 اشاره دارد ، برای جزئیات به ویکی پدیا: passwd مراجعه کنید. علاوه بر این ، فایل /etc/login.defs نیز الگوریتم هش را توضیح می دهد.
قسمت "0fokwg59" که از "$6$" شروع می شود تا قبل از "$" بعدی نمک (SALT) است. نمک چیست ؟ Baidu می داند که پاسخ CNB2009 به سوال " مقدار نمک md5 چیست" ساده و قابل درک است:
به عبارت ساده ، روشی برای ایجاد یک رمز عبور است. مقادیر هش متفاوت به این معنی که نمک سازی است. MD5 به خودی خود برگشت ناپذیر است ، اما در حال حاضر پایگاه های داده زیادی در اینترنت وجود دارد که از ضد پرس و جو پشتیبانی می کنند ، اگر پایگاه داده رمز عبور کاربر به طور تصادفی درز کند ، هکرها می توانند رمز عبور کاربر را از طریق ضد پرس و جو یا کدهای هش که اغلب در پایگاه داده ظاهر می شوند به دست آورند. (یعنی توسط بسیاری از افراد استفاده می شود) برای کرک خشن (زیرا معمولاً یک رمز عبور ضعیف است). مقدار نمک یک مقدار تصادفی اضافی است که در طول فرآیند هش رمز عبور اضافه می شود. به عنوان مثال ، شناسه من 123456 است و رمز عبور 123456 است. هنگامی که در پایگاه داده ذخیره می شود ، می توانم رشته "123456/123456/ به این ترتیب ، هنگامی که رمز عبور احمق دیگری 123456 باشد ، هنوز هم می توان مقادیر هش مختلفی را ساخت و با موفقیت تأیید کرد. در این زمان ، شناسه من به عنوان مقدار نمک برای هش پیچیده رمز عبور استفاده می شود. پس چی. . نقش مقادیر نمک کاهش تلفات ناشی از نشت پایگاه داده است. اگر 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 داشته باشید. اتفاقاً آن را در ماشین مجازی من دارم. بایدو می داند که مقدار هش رمز ورود به سیستم 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! این یک برنامه انجمن php شناخته شده در چین است و بسیار مورد استفاده قرار می گیرد. حالا بیایید 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 --حذف -o discuz.out discuz.hash wordlist.dicپس از لحظه ای انفجار کامل شد و نتایج را مشاهده کنید:
werner@Yasser:~/hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553:c13fd9:winterمشاهده می شود که انفجار موفقیت آمیز بود.
6. تست فرهنگ لغت بزرگ
تاکنون از یک فرهنگ لغت کوچک تنها با 500 کلمه استفاده کرده ایم و هر بار فقط در چند لحظه با موفقیت هش های مختلف را منفجر می کنیم. عجیب نیست ؟ این به این دلیل است که من عمداً یک رمز عبور ضعیف را در فرهنگ لغت برای تمرین استفاده از hashcat تنظیم کردم ، در غیر این صورت اگر نتوانستم آن را منفجر کنم ، احساس بدی نخواهد داشت. در عمل چنین شانس خوبی وجود ندارد. بیایید مقدار 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توجه داشته باشید که وقتی فقط یک مقدار هش وجود دارد ، نیازی به ذخیره در فایل نیست ، مستقیماً قبل از خواب شروع به انفجار کردم ، روز بعد بیدار شدم تا نتایج را ببینم و متوجه شدم:
شروع: چهارشنبه جولای 26 22:55:27 2017 متوقف شد: چهارشنبه ژوئیه 26 23:02:28 2017معلوم شد که فقط 7 دقیقه طول کشید! من فکر می کردم 7 ساعت طول می کشد ، 60 برابر سریعتر از آنچه انتظار داشتم! حیف است که مقدار هش با موفقیت منفجر نشد. به نظر می رسد "werner123456!!!" در فرهنگ لغت رمز عبور نیست. به نظر می رسد من نیاز به تهیه یک دیکشنری رمز عبور 100G دارم ، اما ذخیره و انتقال این دیکشنری بزرگ بسیار ناخوشایند است ، آیا راه دیگری وجود ندارد ؟ البته ، حالت حمله را به خاطر دارید ؟ ما از حالت "مستقیم" استفاده کرده ایم. در مرحله بعد ، بیایید چندین حالت دیگر را بررسی کنیم.
7. خلاصه
هنگام استفاده از hashcat برای انفجار هش ، اولین کار یافتن هش است. سیستم های مختلف و نرم افزارهای مختلف مکان های ذخیره سازی هش متفاوتی دارند و باید مقدار هش را به طور دقیق پیدا کنید. دوم قضاوت صحیح در مورد نوع هش ، تعیین اینکه آیا hashcat از این نوع هش پشتیبانی می کند یا خیر ، و انتخاب پارامتر مناسب -m است ، در غیر این صورت موفقیت تقریباً غیرممکن است. سوم این است که فرهنگ لغت رمز عبور بهتر است که آیا در نهایت می توان آن را با موفقیت منفجر کرد یا خیر ، بستگی به فرهنگ لغت دارد. اگرچه فرهنگ لغت رمز عبور بزرگتر نیست ، اما هنوز هم بزرگتر است. hashcat نیز به دلیل سرعت خود شناخته شده است. فرهنگ لغت بزرگ برای hashcat مشکلی ندارد. در اینجا یک فرهنگ لغت بهتر ثبت شده است: دروازه های نشت قبلی + مجموعه فرهنگ لغت رمز عبور ضعیف رایج. 7Z، رمز عبور رفع فشار این است: anywlan. علاوه بر این ، اگر فرهنگ لغت های کوچک زیادی جمع آوری شده است ، می توانید فرهنگ لغت های کوچک را ادغام ، مرتب سازی و حذف کنید تا یک فرهنگ لغت بزرگ برای انفجار hashcat به دست آورید. اگر فرهنگ لغت کوچک در یک دایرکتوری قرار دارد ، می توانید آن را با استفاده از یک دستور انجام دهید:
cat * | sort | uniq > Merge.dicاگر فرهنگ لغت کوچک بر اساس دسته ها سازماندهی شده و در دایرکتوری های چند لایه توزیع شده باشد ؟ بدیهی است که استفاده از دستور cat به تنهایی کافی نیست ، اما در واقع فقط به یک دستور نیاز دارد.با فرض اینکه فرهنگ لغت های کوچک همه در دایرکتوری MyDictionary ذخیره شده اند ، دستور را می توان به این صورت نوشت:
find ./MyDictionary -type f -exec cat {} \; | مرتب سازی | uniq > Merge.dic