</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

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۳۲ کاراکتر hex5f4dcc3b5aa765d61d8327deb882cf99
SHA1۴۰ کاراکتر hex5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
SHA256۶۴ کاراکتر hex5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
SHA512۱۲۸ کاراکتر hexعبارت طولانی hex
bcryptشروع با $2y$$2y$10$N9qo8uLOickgx2ZMRZoMy...
NTLM۳۲ کاراکتر hex8846F7EAEE8FB117AD06BDD830B7586C
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: حمله dictionary

wordlist‌های مفید در 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)، می‌توانید اکثر پسوردهای ضعیف را کرک کنید.

به‌عنوان گام بعدی:

اشتراک‌گذاری:

این صفحه در تاریخ ۵ تیر ۱۴۰۵ به‌روزرسانی شده است.