آموزش John the Ripper
"ابزار John the Ripper یک ابزار محبوب و قدرتمند برای شکستن هَش رمز عبور است که در ابتدا برای بررسی قدرت رمز عبور ایجاد شده بود."
آموزش ابزار John the Ripper برای شکستن هَش رمز عبور
ابزار John the Ripper یا به اختصار (JtR) یک ابزار قدرتمند برای شکستن رمز عبور است. این ابزار در سال 1996 منتشر شد و در ابتدا ابزاری برای بررسی قدرت رمز عبور ایجاد شده بود، بعداً با بروزرسانی ابزار قادر به انجام حملات brute-force و حملات دیکشنری بود که هر دو برای شکستن رمز عبور هستند.
این ابزار در دو نسخه رایگان و حرفهای وجود دارد که هزینه نسخه حرفهای آن از 39 دلار شروع میشود تا 185 دلار. نسخه رایگان نمی تواند 64xbit را پشتیبانی کند، که یک نقطه ضعف بزرگ است. اما نسخه حرفه ای می تواند نسخه 64xbit را پشتیبانی کند و همچنین می تواند به صورت خودکار کامپایل شود. بنابراین، اکثر آنها یک نسخه کرک شده است که از Github دریافت میشود.
هر کسی میتواند از ابزار John the Ripper با سیستم عامل ویندوز، لینوکس و مک استفاده کند. بله، این ابزار از ویندوز نیز پشتیبانی میکند و کاربران ویندوز نیازی به نگرانی در مورد آن ندارند.
چگونه John the Ripper را دانلود کنیم؟
ابزار JtR یک پروژه منبع باز است، بنابراین میتوانید منبع را به تنهایی دانلود و کامپایل کنید، باینریهای اجرایی را دانلود کنید یا آن را به عنوان بخشی از یک بسته تست نفوذ پیدا کنید.
وبسایت رسمی John the Ripper در Openwall است. میتوانید کد منبع و باینریها را از آنجا بگیرید و برای مشارکت میتوانید به پروژه GitHub بپیوندید. ابزار John the Ripper در کالی لینوکس به عنوان بخشی از متاپکیجهای شکستن رمز عبور در دسترس است.
نصب John the Ripper
John the Ripper روی اکثر توزیعهای لینوکس تست نفوذ از پیش نصب شده است. با این حال ممکن است برای برخی از توزیعهای مبتنی بر دبیان نصب نشده باشد:
sudo apt-get install john
ابزار John the Ripper چگونه کار میکند؟
ابزار John the Ripper از چندین فناوری رمزگذاری رایج برای سیستم عاملهای یونیکس و ویندوز پشتیبانی میکند. (ویرایش مک مبتنی بر یونیکس است). ابزار JtR رمزگذاری روی دادههای هش شده را به طور خودکار شناسایی میکند و آن را با یک فایل متنی بزرگ که حاوی گذرواژههای رایج است مقایسه میکند، هر رمز عبور را هش میکند و پس از پیدا کردن آن، متوقف میشود.
همچنین JtR شامل فهرست رمزهای عبور رایج برای بیش از 20 زبان است. این فهرست کلمه هزاران رمز عبور ممکن را برای JtR فراهم میکند که میتواند مقادیر هش مربوطه را برای حدس زدن با ارزش بالا از رمز عبور هدف ایجاد کند. از آنجایی که اکثر مردم رمزهای عبور آسان برای به خاطر سپردن را انتخاب می کنند، JtR حتی با فهرست کلمه کلمه عبور خارج از جعبه خود بسیار موثر است.
sudo apt-get install john
ویژگیهای John the Ripper
همانطور که گفته شد، JtR میتواند انواع هشهای رمز عبور مختلف را کرک کند. با اجرای دستور list formats میتوانید دقیقا ببینید کدام هشها را میتواند کرک کند. این دستور همچنین هنگام تلاش برای تعیین دستی نوع هش مفید است. اگر در یک امتحان هستید و فراموش کرده اید که چگونه از جان بخواهید یک هش خام MD5 را کرک کند، این دستور می تواند کمک کند.
sudo john --list=formats
اگرچه این عملکرد تنها به شکستن رمز عبور ختم نمیشود. JtR ابزارهای مختلفی برای کمک به شما در کِرَک هشهای رمز عبور دارد. این ابزارهای اضافی را معمولا میتوان در دایرکتورهای usr/bin/ یا opt/john/src/ یافت. علاوه بر این، این ابزارها را میتوان برای مواردی مانند استخراج هش از آرشیوهای ZIP یا RAR محافظت شده با رمز عبور استفاده کرد.
ls /usr/bin | grep john
حالتهای کِرَک John the Ripper
JtR چندین حالت مختلف برای شکستن هش رمز عبور دارد. از این حالت های مختلف می توان برای شکستن هش رمز عبور به روش های مختلف استفاده کرد. اگر یکی از روشهای شکستن هش رمز عبور کار نکرد، میتوانید حالت دیگری را امتحان کنید.
حالت فهرست کلمات (Wordlist Mode)
تا کنون رایجترین حالت ممکن، حالت فهرست کلمات بوده. این حالت کاربر را ملزم به تعیین فهرست کلمات میکند. این فهرست کلمات میتواند سفارشی باشد و توسط ابزارهایی مانند Crunch ایجاد شود یا میتواند یکی از فهرستهای کلمات موجود در اینترنت باشد. سپس John the Ripper خط به خط لیست کلمات را طی میکند و سعی میکند هش را با کلمه مطابقت دهد. همچنین این حالت یک گزینه mangle را ارائه میدهد که در آن قوانینی را برای کلمه اعمال اعمال کند.
حالت تک کرک (Single Crack Mode)
همانطور که در وب سایت Openwall (John Developers) گفته شد، حالت تک کرک حالتی است که باید با آن شروع کنید. از نام های ورود، نام کامل و نام دایرکتوری خانه کاربر به عنوان رمز عبور نامزد استفاده می کند. سپس مجموعه بزرگی از قوانین انحراف را اعمال خواهد کرد. رمزهای عبور شکسته شده با موفقیت در برابر هر هش دیگری که بارگذاری شده است نیز آزمایش می شود. در تئوری، این حالت باید بتواند لیستی از هش های رمز عبور را سریعتر از زمانی که هش ها را جداگانه عرضه می کنید، شکست دهد.
حالت افزایشی (Incremental Mode)
این حالت تمام ترکیبهای کاراکتر ممکن را امتحان میکند. این یک حالت قدرتمند است اما احتمالاً بیشتر از استفاده از فهرست کلمات طول می کشد. اگر تمام ترکیبهای کاراکتر ممکن را امتحان کند، در نهایت رمز عبور صحیح را حدس میزند. اگر طول رمز عبور را می دانید، می توانید آن را مشخص کنید تا شکستن سریعتر انجام شود. با این حال، اگر طول رمز عبور را نمی دانید و رمز عبور نسبتاً طولانی و پیچیده است، می توانید مدتی منتظر بمانید ... مثل همیشه.
حالت خارجی (External Mode)
با توجه به آنچه که خوانده ام و درک کرده ام، معتقدم این حالت از شما می خواهد که حالت کرک خود را ایجاد کنید. کد برنامه زیرمجموعه ای از C است و در هنگام راه اندازی توسط JtR کامپایل می شود. اگر الگوریتم هش مورد استفاده برای ایجاد هش سفارشی باشد، می تواند مفید باشد. سپس می توانید ماژول کرک خود را بنویسید و آن را در JtR بارگذاری کنید تا آن هش های سفارشی ایجاد شده را بشکند.
شناسایی هشها
John The Ripper به طور خودکار سعی می کند هش هایی را که به او می دهید شناسایی کند. با این حال، می تواند مستعد خطا باشد. خوشبختانه، ابزارهای زیادی وجود دارد که می توانید برای شناسایی انواع هش رمز عبور از آنها استفاده کنید. یکی از این ابزارها hash-identifier است که از قبل نصب می شود یا باید از طریق مدیر بسته شما یا یا از طریق Clone آن از GitHub قابل نصب باشد. برای اجرای ابزار کافی است نام آن را تایپ کنید و سپس از شما می خواهد هش خود را ارسال کنید. سپس فهرستی از انواع هش را به ترتیب احتمال نمایش می دهد. سپس میتوانید از آن اطلاعات استفاده کنید تا به صورت دستی به JtR بگویید چه نوع هش را میخواهید کرک کنید.
دریافت لیست کلمات
سوالی که زیاد پرسیده میشود این است که لیست کلمات را کچا بگیریم؟ خوب، مکانهای زیادی وجود دارد. اکثر توزیعهای لینوکس تست نفوذ با فهرست کلمات از پیش نصب شده ارائه میشوند. با این حال، می توانید آنها را از اینترنت دانلود کنید. یکی از فهرستهای کلمات خاص که میخواهم به آن اشاره کنم، seclists است. seclists در GitHub در دسترس است و تقریباً هر نوع فهرست کلماتی را که میتوانید بخواهید دارد. برای اهداف این مقاله، از فهرست کلمات rockyou.txt از نقض داده rockyou.com استفاده خواهم کرد.
کرک کردن هشهای SHA256 با John the Ripper
الگوریتم SHA256 یکی دیگر از الگوریتمهای رمزنگاری شکسته هش است که توسط آژانس امنیت ملی توسعه داده شده است (تقریباً انگار آن را برای شکست طراحی کرده اند).
sudo john --format=raw-sha256 --wordlist=rockyou.txt hash4.txt
john.pot
برای همه هشهای رمز عبوری که توسط JtR کرک میشوند، چه اتفاقی میافتد؟ خوب، آنها در فایلی به نام john.pot ذخیره می شوند. می توانید از locate در سیستم خود برای پیدا کردن آن استفاده کنید اما معمولاً در root/.john/john.pot/ قرار دارد. اگر میخواهید یک هش را کرک کنید اما یک پیام خطا دریافت میکنید، احتمالاً قبلاً آن را کرک کردهاید. فایل john.pot را حذف کنید یا خطی را که دارای هش کرک شده است حذف کنید تا فایل را دوباره کرک کنید.
sudo cat /root/.john/john.pot