قبل از اینکه hashcat با شتاب GPU محبوب شود، John the Ripper (که در جامعهی امنیت معمولاً «John» یا «JtR» صدا زده میشود) برای دههها استاندارد اصلی ارزیابی قدرت رمز عبور بود — و هنوز هم، بهخصوص برای فایلهای رمز عبور سیستمهای Unix/Linux، یکی از پرکاربردترین ابزارهاست.
توجه مهم: این آموزش فقط باید روی هشها و سیستمهای خودتان یا در یک محیط آزمایشگاهی/آموزشی مجاز اجرا شود — مثل حسابهای شخصی خودتان یا یک قرارداد تست نفوذ رسمی که دسترسی به هشها را پوشش میدهد. تلاش برای شکستن رمز عبور یا هش هر سیستمی که مجوز صریح ندارید، جرم است.
نصب John the Ripper
sudo apt install john
قدم اول: فهمیدن ساختار رمز عبور در لینوکس
در سیستمهای لینوکس، نامهای کاربری در فایل /etc/passwd نگهداری میشوند، ولی هش رمز عبور واقعی (به دلایل امنیتی) در فایلی جدا بهنام /etc/shadow ذخیره میشود که فقط کاربر root به آن دسترسی دارد. برای ارزیابی رمز این حسابها، ابتدا باید این دو فایل را با هم ترکیب کرد.
قدم دوم: ترکیب فایلهای passwd و shadow
روی یک سیستم لینوکسی که مجوز دارید (مثلاً یک ماشین مجازی آزمایشگاهی خودتان)، بهعنوان root دستور زیر را اجرا کنید:
sudo unshadow /etc/passwd /etc/shadow > combined.txt
ابزار unshadow این دو فایل را در قالبی که John میتواند مستقیم بخواند، با هم ترکیب میکند.
قدم سوم: اجرای اولین ارزیابی
john combined.txt
بهطور پیشفرض، John ابتدا حالت «Single Crack» را امتحان میکند (حدسهایی بر پایهی خودِ اطلاعات حساب کاربری، مثل نام کاربری)، و سپس بهطور خودکار به حالت Wordlist پیشفرض داخلی سوییچ میکند.
قدم چهارم: استفاده از یک Wordlist سفارشی
john --wordlist=rockyou.txt combined.txt
rockyou.txt یکی از معروفترین فهرستهای رمز عبور در صنعت امنیت است (برگرفته از یک نشت دادهی واقعی سالها پیش) و روی توزیعهای امنیتی مثل Kali از قبل موجود است — استفاده از آن یکی از سریعترین راهها برای پیدا کردن رمزهای رایج و ضعیف است.
قدم پنجم: اضافه کردن قوانین تبدیل (Rules)
john --wordlist=rockyou.txt --rules combined.txt
مثل hashcat، John هم از Ruleها پشتیبانی میکند — یعنی روی هر کلمهی فهرست، تغییرات رایج انسانی (اضافه کردن عدد، تبدیل حروف، و غیره) را هم امتحان میکند.
قدم ششم: مشاهدهی نتایج پیداشده
john --show combined.txt
این دستور لیست تمام رمزهای عبوری که تا این لحظه پیدا شدهاند را، کنار نام کاربری مربوطه، نمایش میدهد — بدون نیاز به اجرای مجدد کل فرآیند.
تفاوت John با hashcat در چیست؟
John بهطور سنتی روی CPU اجرا میشود (نسخهی Jumbo آن از GPU هم پشتیبانی میکند، ولی همچنان hashcat در این زمینه سریعتر شناخته میشود)، ولی نقطهقوت اصلی John، پشتیبانی گسترده و خودکار از تشخیص فرمت هش (بهخصوص فرمتهای قدیمی و خاص سیستمعاملهای یونیکسی) و سادگی فوقالعادهی آن برای شروع سریع یک ارزیابی است — به همین دلیل هنوز هم در کنار hashcat، جای ثابتی در جعبهابزار هر متخصص امنیت دارد.
چرا این مهارت برای یک مدیر سیستم لینوکسی ضروری است؟
هر سازمانی که سرورهای لینوکسی دارد، باید بهطور دورهای مطمئن شود حسابهای کاربریاش (بهخصوص حسابهای قدیمی یا کمتر استفادهشده) رمز عبور ضعیفی ندارند. اجرای منظم John the Ripper روی هشهای خودِ سازمان، دقیقاً همان اقدام پیشگیرانهای است که در دورههای امنیت لینوکس و تست نفوذ من پوشش داده میشود.
وبلاگ