John the Ripper
John the Ripper (John) — классический инструмент для восстановления паролей по хешам. Используется в пентестах, аудитах и судебной форензике для проверки прочности паролей (в рамках разрешённых тестов). Поддерживает множество форматов, режимов и утилит для подготовки входных данных (unshadow, zip2john, ssh2john и т.д.).
Важно: используйте John только с явного разрешения — в своей лаборатории или в рамках согласованного теста.
Общий синтаксис
john [опции] <файл_с_хешами>
Файлы, которые часто готовят для John:
-
/etc/shadow
→ черезunshadow
-
ZIP/7z/Office →
zip2john
,7z2john
-
SSH-ключи →
ssh2john
-
SAM/NTLM → экспорт и прямой запуск
Подготовка входных данных (утилиты)
unshadow /etc/passwd /etc/shadow > shadow_for_john.txt
zip2john secret.zip > secret.zip.hash
ssh2john id_rsa > id_rsa.hash
Базовые режимы (режимы атаки)
-
wordlist + rules — словарь + правила трансформаций (рекомендуется как старт).
-
single — генерирует варианты на основе информации о пользователе (GECOS, логин и т. п.).
-
incremental — полный перебор по набору символов (brute-force).
-
mask (в некоторых билдах) — перебор по шаблону (эффективнее, чем полный incremental для известных форматов).
-
external — подключаемые генераторы (скрипты).
Команда выбора режима задаётся набором опций (см. примеры ниже).
Часто используемые команды и примеры
1) Быстрый запуск со словарём (rockyou)
john --wordlist=/usr/share/wordlists/rockyou.txt --rules shadow_for_john.txt
2) Запуск single-mode (основан на данных о пользователе)
john --single shadow_for_john.txt
3) Bruteforce (incremental)
john --incremental=All shadow_for_john.txt
(Параметры All
и наборы символов настраиваются в john.conf
)
4) Использование маски (в john-jumbo / поддерживающих сборках)
john --mask='?u?l?l?l?d?d' --format=raw-md5 hash.txt
(?u
— заглавная, ?l
— строчная, ?d
— цифра)
5) Указание формата хеша (если нужно ускорить работу)
john --format=NT --wordlist=rockyou.txt nt_hashes.txt
6) Восстановление прерванной сессии
john --restore=имя_сессии
(Или просто john --restore
для последней сессии)
7) Просмотр найденных паролей
john --show hash.txt
8) Создание собственного charset (для incremental)
john --make-charset=charset.chr --mask='?1?1?1?1' input.txt
9) Вывод генерируемых паролей в stdout (полезно для тестов)
john --wordlist=mydict.txt --rules --stdout | head -n 50
10) Пример: взятие пароля из zip-архива
zip2john secret.zip > secret.hash
john --wordlist=/usr/share/wordlists/rockyou.txt secret.hash
Полезные опции и файлы
-
--wordlist=FILE
(или--single
,--incremental
) — режим/словарь. -
--rules
— подключить правила (описаны вjohn.conf
). -
--format=NAME
— явно указать формат хеша (ускоряет поиск). -
--session=NAME
— задать имя сессии (для последующего--restore
). -
--pot=FILE
— изменить файл хранения найденных паролей (по умолчанию~/.john/john.pot
). -
--stdout
— вывести генерируемые пароли на экран (полезно для тестирования правил). -
--show
— показать уже найденные пароли. -
--status
— показать статус текущей сессии.
Файлы конфигурации: john.conf
/ john.ini
(правила, charset, incremental-режимы).
Советы по эффективной работе
-
Начинайте со словарей + правил. Чаще всего это даёт результат быстрее, чем чистый брутфорс.
-
Составляйте тематические словари. Сбор контекстных слов (имена, бренды, даты) для конкретной цели существенно повышает шанс успеха.
-
Форматируйте и фильтруйте словари. Удаляйте слишком короткие/длинные варианты, нормализуйте кодировку.
-
Используйте
--format
при возможности. Явная указка формата ускоряет процесс. -
GPU-ускорение: для некоторых форматов применяют john-jumbo с OpenCL/CUDA, но поведение и производительность зависят от формата.
-
Следите за
john.pot
. Это файл с уже найденными паролями — не теряйте его, чтобы не повторять работу. -
Логируйте сессии. Используйте
--session
и регулярные--status
/--restore
для долгих атак. -
Этика/закон: обязательно письменное согласие заказчика для тестов в продакшене.
Быстрые «фишки» и трюки
-
--wordlist + --rules
часто сильнее, чем--incremental
. -
--stdout
+head
— удобно проверить какие варианты будут генерироваться по правилам. -
Комбинировать
unshadow
+--single
— полезно при анализе системных учеток. -
Подготовьте отдельный «рабочий» каталог и резервируйте
john.pot
для отчетности.
Где отработать на практике
Шпаргалка даёт быстрый старт, но навык приходит через практику. В модуле «John the Ripper: работа с паролями» в Kraken Academy вы отработаете:
-
подготовку входных данных (unshadow, zip2john, ssh2john и т.д.),
-
выбор стратегий (wordlist/rules, single, incremental, mask),
-
оптимизацию словарей и правил,
-
практические кейсы: SSH, архивы, дампы баз, отчётность.
📘 Понравилась статья?
Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.