🚀 Не просто читай — прокачивайся! Зарегистрируйся в Kraken Academy и учись на практике: стенды, модули и путь к реальным скиллам.

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-канал.

Рекомендуемые статьи

Обложка

CWPS — Certified Web Pentest Specialist: путь от новичка до профи в веб-пентесте

Читать полностью →
Обложка

Уязвимость в Cursor AI Code Editor

Читать полностью →
Обложка

Airgeddon: что это за инструмент и как он используется для тестирования Wi-Fi

Читать полностью →