John the Ripper در Kali Linux
راهنمای کامل John the Ripper: کرک پسورد، تشخیص هش، حملات dictionary و rule-based.
John the Ripper یکی از قدرتمندترین ابزارهای کرک پسورد است که در Kali Linux بهصورت پیشفرض نصب میشود. در این آموزش، با کرک هشهای مختلف، wordlistها و حملات rule-based آشنا میشوید.
استفادهٔ مسئولانه
کرک پسورد تنها باید روی هشهایی که مالک آنها هستید یا مجوز صریح دارید انجام شود. استفاده از این ابزار برای دسترسی غیرمجاز به حسابهای دیگران جرم محسوب میشود.
John the Ripper چیست؟
John the Ripper (JtR) یک ابزار کرک پسورد چندالگوریتمی است که توسط OpenWall توسعه مییابد. این ابزار از طیف گستردهای از الگوریتمهای هش پشتیبانی میکند و میتواند از CPU، GPU و حتی FPGA برای تسریع کرک استفاده کند.
# بررسی نصب John
john --version
# خروجی:
# John the Ripper jumbo 1.9.0+jumbo1+20240101 [linux-x86-64 AVX-512]
# Copyright (c) 1996-2024 by Solar Designer and othersنسخههای John در Kali
| نسخه | توضیح |
|---|---|
john | نسخهٔ اصلی (basic) |
john-jumbo | نسخهٔ پیشرفته با الگوریتمهای بیشتر |
# نصب نسخهٔ jumbo در صورت نیاز
sudo apt install -y john-jumboتشخیص نوع هش
پیش از کرک، باید نوع هش را شناسایی کنید. دو ابزار اصلی برای این کار وجود دارد:
# استفاده از hash-identifier
hash-identifier
# یا
hashid
# مثال:
echo -n "5f4dcc3b5aa765d61d8327deb882cf99" | hashid
# Analyzing '5f4dcc3b5aa765d61d8327deb882cf99'
# [+] MD5
# [+] MD4
# [+] LMجدول الگوریتمهای رایج
| الگوریتم | طول هش | مثال |
|---|---|---|
| MD5 | ۳۲ کاراکتر hex | 5f4dcc3b5aa765d61d8327deb882cf99 |
| SHA1 | ۴۰ کاراکتر hex | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
| SHA256 | ۶۴ کاراکتر hex | 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 |
| SHA512 | ۱۲۸ کاراکتر hex | عبارت طولانی hex |
| bcrypt | شروع با $2y$ | $2y$10$N9qo8uLOickgx2ZMRZoMy... |
| NTLM | ۳۲ کاراکتر hex | 8846F7EAEE8FB117AD06BDD830B7586C |
| SHA512-crypt (Linux) | شروع با $6$ | $6$rounds=5000$saltsalt$hash... |
کرک ساده با wordlist
# ساخت فایل هش
echo "5f4dcc3b5aa765d61d8327deb882cf99" > hash.txt
# کرک با wordlist پیشفرض
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
# خروجی:
# Loaded 1 password hash (Raw-MD5 [MD5 256/256 AVX16 8x3])
# Press 'q' or Ctrl-C to abort, almost any other key for status
# password (?)
# 1g 0:00:00:01 DONE (2026-06-30 10:00) 0.8547g/s 8500Kp/s
# Use the "--show" option to display all of the cracked passwords reliably
# Session completed.نمایش پسوردهای کرکشده
# نمایش نتایج
john --show hash.txt
# خروجی:
# password
# 1 password hash cracked, 0 leftتعیین فرمت هش
اگر John نوع هش را بهصورت خودکار تشخیص ندهد، میتوانید با --format آن را مشخص کنید:
# تعیین فرمت هش
john --format=raw-md5 --wordlist=rockyou.txt hash.txt
# لیست تمام فرمتهای پشتیبانیشده
john --list=formats | tr ',' '\n' | head -30کرک هشهای Linux (/etc/shadow)
هشهای Linux معمولاً در فایل /etc/shadow نگهداری میشوند. برای کرک آنها، ابتدا باید فایلهای /etc/passwd و /etc/shadow را با unshadow ترکیب کنید:
# ترکیب passwd و shadow
sudo unshadow /etc/passwd /etc/shadow > combined.txt
# مشاهدهٔ فایل ترکیبشده
cat combined.txt
# root:$6$rounds=5000$saltsalt$hash...:0:0:root:/root:/bin/bash
# kali:$6$rounds=5000$saltsalt$hash...:1000:1000:kali:/home/kali:/bin/zsh
# کرک با John
john --wordlist=rockyou.txt combined.txt
# نمایش نتایج
john --show combined.txt
# root:password123:0:0:root:/root:/bin/bash
# 1 password hash cracked, 1 leftحملات rule-based
قابلیت rules به شما اجازه میدهد wordlist را با قوانین (مانند اضافه کردن عدد، حرف بزرگ، ...) بسط دهید:
# استفاده از rules پیشفرض
john --wordlist=rockyou.txt --rules hash.txt
# یا rules خاص
john --wordlist=rockyou.txt --rules=KoreLogic hash.txt
# تعریف rules سفارشی در john.conf
sudo nano /etc/john/john.conf
# اضافه کردن rule:
# [List.Rules:MyRules]
# $[0-9]$[0-9] # اضافه کردن دو عدد در انتها
# ^[A-Z] # اضافه کردن حرف بزرگ در ابتدا
# r # معکوس کردن کلمهحملات incremental
اگر wordlist کافی نباشد، میتوانید از حملهٔ incremental استفاده کنید که تمام ترکیبهای ممکن را امتحان میکند:
# حملهٔ incremental (پیشفرض)
john --incremental hash.txt
# حملهٔ incremental با فرمت خاص
john --incremental=digits hash.txt # فقط اعداد
john --incremental=alpha hash.txt # فقط حروفIncremental بسیار کند است
حملهٔ incremental تمام ترکیبهای ممکن را امتحان میکند و برای پسوردهای قوی عملاً غیرممکن است. این روش فقط برای پسوردهای کوتاه (زیر ۸ کاراکتر) عملی است.
مدیریت session
# مشاهدهٔ sessionهای فعال
john --list=sessions
# توقف کرک (با Ctrl+C)
# session بهصورت خودکار ذخیره میشود
# ادامهٔ session ذخیرهشده
john --restore
# یا با نام session خاص
john --restore=hash.txtاستفاده از GPU با hashcat
اگر کارت گرافیک قوی دارید، Hashcat معمولاً سریعتر از John است:
# نصب hashcat
sudo apt install -y hashcat
# کرک با GPU
hashcat -m 0 -a 0 hash.txt rockyou.txt
# -m 0: الگوریتم MD5
# -a 0: حمله dictionarywordlistهای مفید در Kali
# لیست wordlistهای موجود
ls -la /usr/share/wordlists/
# خروجی:
# -rw-r--r-- 1 root root 134M rockyou.txt
# -rw-r--r-- 1 root root 9.5M dirb
# -rw-r--r-- 1 root root 3.3M metasploit
# -rw-r--r-- 1 root root 1.8M wifite.txt
# -rw-r--r-- 1 root root 55K fasttrack.txtتولید wordlist با Crunch
# تولید تمام رمزهای ۴ رقمی
crunch 4 4 0123456789 -o pin.txt
# تولید wordlist با الگوی خاص
# الگو: 4 حرف + 2 عدد
crunch 6 6 -t @@@@%% -o custom.txtخطاهای رایج
No password hashes loaded
مشکل: John هیچ هشی را شناسایی نمیکند.
راهحل:
# تعیین صریح فرمت
john --format=raw-md5 hash.txt
# یا تشخیص نوع هش با hashid
hashid hash.txtکرک بسیار کند است
مشکل: سرعت کرک پایین است.
راهحل:
# استفاده از فرمت بهینهشده
john --format=raw-md5-opencl hash.txt # با GPU
# یا استفاده از hashcat که معمولاً سریعتر است
hashcat -m 0 -a 0 hash.txt rockyou.txtبعد از Ctrl+C نتایج نمایش داده نمیشوند
مشکل: پس از توقف کرک، نتایج گم میشوند.
راهحل:
# نتایج همیشه در pot file ذخیره میشوند
cat ~/.john/john.pot
# یا با --show
john --show hash.txtخطای "Wordlist file not found"
مشکل: فایل rockyou.txt پیدا نمیشود.
راهحل:
# استخراج rockyou.txt فشرده
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
# یا نصب مجدد wordlist
sudo apt install -y wordlistsپاکسازی pot file برای تست مجدد
اگر میخواهید یک هش را دوباره کرک کنید، باید آن را از pot file حذف کنید:
# حذف هش از pot file
john --pot=/dev/null --wordlist=rockyou.txt hash.txtخلاصه و مرحلهٔ بعد
John the Ripper ابزار کلاسیک و قدرتمندی برای کرک پسورد است. با ترکیب wordlistهای مناسب، ruleهای سفارشی و استفاده از GPU (با Hashcat)، میتوانید اکثر پسوردهای ضعیف را کرک کنید.
بهعنوان گام بعدی:
- آموزش Aircrack-ng را برای کرک وایرلس ببینید
- آموزش Metasploit را برای اکسپلویت و استخراج هش بخوانید
- آموزش معرفی ابزارها را برای نمای کلی مرور کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.