ابزارها2 دقیقه مطالعه

John the Ripper چیست؟ آموزش شکستن رمز عبور و هش

وقتی یک هکر به فایلِ رمزهای یک سیستم دست پیدا می‌کند، رمزها را به‌صورتِ خام نمی‌بیند؛ چیزی که می‌بیند «هش» است — یک رشته‌ی درهم‌ریخته. John the Ripper ابزاری است که تلاش می‌کند از روی این هش، رمزِ اصلی را بازسازی کند. فهمیدنِ کارِ آن، هم برای حمله و هم برای ساختنِ دفاعِ درست حیاتی است.

نوشته‌ی مدرس امنیت سایبری و هک اخلاقی

کارشناسی امنیت سایبری از دانشگاه Manchester Metropolitan (درجه‌ی ممتاز) — تست نفوذ، امنیت شبکه، OSINT و گجت‌های سخت‌افزاری.

این مطلب چطور نوشته و بازبینی می‌شود؟

این مقاله بخشی از راهنمای کامل آموزش هک از صفر: نقشه راه کامل برای مبتدی‌ها است

John the Ripper چیست؟ آموزش شکستن رمز عبور و هش

اول: هش (hash) چیست؟

سیستم‌ها رمزِ عبور را به‌صورتِ خام ذخیره نمی‌کنند؛ آن را از یک تابعِ یک‌طرفه به‌نامِ «هش» عبور می‌دهند که خروجی‌اش یک رشته‌ی ثابت و به‌ظاهر تصادفی است. این کار یک‌طرفه است: از رمز می‌توان هش ساخت، اما از هش نمی‌توان مستقیم به رمز رسید. پس حمله‌کننده چه می‌کند؟ حدس می‌زند: رمزهای مختلف را هش می‌کند و نتیجه را با هشِ هدف مقایسه می‌کند تا به تطابق برسد.

John the Ripper چطور کار می‌کند؟

‏John the Ripper (به‌اختصار John) دقیقاً همین حدس‌زدن را با سرعتِ بسیار بالا و به‌صورتِ هوشمند انجام می‌دهد. سه حالتِ اصلی دارد:

  • حمله‌ی دیکشنری: رمزهای یک لیستِ آماده (wordlist) مثل rockyou را یکی‌یکی امتحان می‌کند — سریع‌ترین و پرکاربردترین روش.
  • حمله‌ی بروت‌فورس (Incremental): همه‌ی ترکیب‌های ممکن از حروف و ارقام را می‌سازد؛ کند اما در نهایت هر رمزی را می‌شکند.
  • حالت قواعد (Rules): رمزهای دیکشنری را هوشمندانه تغییر می‌دهد (مثلاً password می‌شود P@ssw0rd) تا رمزهای «به‌ظاهر قوی» را هم پوشش دهد.

یک نمونه‌ی ساده

جریانِ کارِ John معمولاً این‌طور است: اول هش‌ها را در یک فایل جمع می‌کنی، بعد John را با یک wordlist روی آن اجرا می‌کنی و در پایان رمزهای شکسته‌شده را می‌بینی:

# حمله‌ی دیکشنری با wordlist معروف rockyou
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

# نمایش رمزهای شکسته‌شده
john --show hashes.txt

اجرای John the Ripper با لیست کلمات rockyou

John یا Hashcat؟

‏John the Ripper و Hashcat دو غولِ این حوزه‌اند. John انعطاف‌پذیر، ساده برای شروع و عالی برای انواعِ زیادی از هش است. Hashcat از کارتِ گرافیک (GPU) استفاده می‌کند و برای هش‌های سنگین و حجمِ بالا معمولاً بسیار سریع‌تر است. حرفه‌ای‌ها هر دو را بلدند و بسته به موقعیت انتخاب می‌کنند.

درسِ دفاعی مهم

همین ابزار به تو نشان می‌دهد چرا رمزِ کوتاه فاجعه است: یک رمزِ ۶ حرفیِ ساده در چند ثانیه می‌شکند، اما یک عبارت‌عبورِ بلندِ ۱۶ کاراکتری عملاً غیرقابل‌شکستن می‌شود. راهِ دفاع در برابر John، رمزِ بلند و یکتا به‌همراهِ هشِ قوی و کند (مثل bcrypt) است.

کاربردِ قانونی

‏John یک ابزارِ دوکاره است: مهاجم با آن حمله می‌کند و مدافع با آن «قدرتِ رمزها» را می‌سنجد. تیم‌های امنیتی به‌طورِ قانونی با John رمزهای سازمانِ خودشان را آزمایش می‌کنند تا رمزهای ضعیف را پیدا و کاربران را وادار به تغییر کنند. استفاده از آن فقط روی سیستم‌ها و هش‌هایی مجاز است که اجازه‌ی صریح داری.

سؤال‌های پرتکرار

John the Ripper رمز را از هش رمزگشایی می‌کند؟

نه دقیقاً. هش یک‌طرفه است و رمزگشایی نمی‌شود. John رمزهای مختلف را حدس می‌زند، هش می‌کند و با هشِ هدف مقایسه می‌کند تا به تطابق برسد. پس در واقع «حدسِ هوشمند» می‌زند، نه رمزگشایی.

چقدر طول می‌کشد تا یک رمز شکسته شود؟

کاملاً به طول و پیچیدگیِ رمز بستگی دارد. یک رمزِ کوتاه و رایج در چند ثانیه می‌شکند، اما یک عبارت‌عبورِ بلندِ تصادفی می‌تواند سال‌ها یا عملاً هرگز نشکند.

آیا کار با John the Ripper قانونی است؟

خودِ ابزار قانونی است و کاربردِ دفاعیِ گسترده دارد. اما استفاده از آن روی هش‌هایی که مالکشان نیستی یا اجازه نداری، غیرقانونی است.

آماده‌ای عملی یاد بگیری؟ دوره‌ها و کارگاه‌های هک و امنیت سایبری را ببین و مسیرت را جدی شروع کن.

دیدن دوره‌ها