Классический инструмент для взлома паролей с многолетней историей. Умеет автоматически определять тип хеша, поддерживает словарные атаки, брутфорс, атаки по правилам и rainbow tables. Jumbo-версия добавляет поддержку сотен форматов: ZIP, PDF, Office, SSH ключи, KeePass, TrueCrypt и т.д. john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
# Debian/Ubuntu/Kali apt install john # Jumbo версия (рекомендуется) — из исходников git clone https://github.com/openwall/john -b bleeding-jumbo cd john/src && ./configure && make -s clean && make -sj4 cd ../run && ./john --test # Snap snap install john-the-ripper
Это улучшенное сообществом, «jumbo»-версия John the Ripper. Она содержит множество кода, документации и данных, внесённых jumbo-разработчиками и пользовательским сообществом. Новый код легко добавить в jumbo, а требования к качеству невысоки, хотя в последнее время мы начали подвергать все внесённые изменения довольно обширному автоматическому тестированию. Это означает, что вы получаете множество функций, которые не обязательно являются «зрелыми», что, в свою очередь, означает, что ошибки в этом коде неизбежны.
Домашняя страница John the Ripper:
https://www.openwall.com/john/
Если у вас есть какие-либо замечания об этом релизе или о JtR в целом, пожалуйста, присоединитесь к списку рассылки john-users и напишите там:
https://www.openwall.com/lists/john-users/
Для внесения вклада в John the Ripper jumbo, пожалуйста, используйте pull requests на GitHub:
https://github.com/openwall/john/blob/bleeding-jumbo/CONTRIBUTING.md
Ниже приведена основная документация по ядру John the Ripper.
John the Ripper — быстрый взломщик паролей, в настоящее время доступный для многих вариантов Unix, macOS, Windows, DOS, BeOS и OpenVMS (последний требует стороннего патча). Его основная цель — обнаружение слабых паролей Unix. Помимо нескольких типов хешей паролей crypt(3), наиболее распространённых в различных вариантах Unix, из коробки поддерживаются хеши Kerberos/AFS и Windows LM, а также трипкоды на основе DES, плюс сотни дополнительных хешей и шифров в версиях «-jumbo».
Смотрите INSTALL для получения информации об установке John в вашей системе.
Для запуска John необходимо предоставить ему файлы паролей и, по желанию, указать режим взлома, например, используя порядок режимов по умолчанию и предполагая, что «passwd» — копия вашего файла паролей:
john passwd
или, чтобы ограничиться только режимом словаря, но с разрешением использования правил модификации слов:
john --wordlist=password.lst --rules passwd
Взломанные пароли будут выведены в терминал и сохранены в файле $JOHN/john.pot (в документации и в конфигурационном файле John «$JOHN» относится к «домашнему каталогу» John; какой именно каталог это будет, зависит от того, как вы установили John). Файл $JOHN/john.pot также используется для того, чтобы не загружать уже взломанные хеши паролей при следующем запуске John the Ripper.
Для получения взломанных паролей выполните:
john --show passwd
Во время взлома вы можете нажать любую клавишу для просмотра состояния, или «q» или Ctrl-C для прерывания сеанса с сохранением его состояния в файл (по умолчанию $JOHN/john.rec). Если вы нажмёте Ctrl-C во второй раз до того, как John успеет обработать ваше первое нажатие Ctrl-C, John прервётся немедленно без сохранения. По умолчанию состояние также сохраняется каждые 10 минут для возможности восстановления в случае сбоя.
Для продолжения прерванного сеанса выполните:
john --restore
Это лишь основные вещи, которые вы можете делать с John. Полный список параметров командной строки и более сложные примеры использования смотрите в разделах OPTIONS и EXAMPLES соответственно.
Обратите внимание, что «бинарные» (предкомпилированные) дистрибутивы John могут содержать альтернативные исполняемые файлы помимо просто «john». Вам может потребоваться выбрать исполняемый файл, наиболее подходящий для вашей системы, например «john-omp» для использования преимуществ нескольких процессоров и/или ядер процессора.
John the Ripper разработан быть как функционально насыщенным, так и быстрым. Он объединяет несколько режимов взлома в одной программе и полностью настраивается под ваши конкретные потребности (вы даже можете определить собственный режим взлома с помощью встроенного компилятора, поддерживающего подмножество C). Кроме того, John доступен для нескольких различных платформ, что позволяет использовать один и тот же взломщик повсюду (вы даже можете продолжить сеанс взлома, начатый на другой платформе).
Из коробки John поддерживает (и автоматически определяет) следующие типы хешей Unix crypt(3): традиционные на основе DES, «bigcrypt», расширенные на основе DES от BSDI, на основе MD5 от FreeBSD (также используемые в Linux и в Cisco IOS), и на основе Blowfish от OpenBSD (теперь также используемые в некоторых дистрибутивах Linux и поддерживаемые последними версиями Solaris). Также из коробки поддерживаются хеши Kerberos/AFS и Windows LM (на основе DES), а также трипкоды на основе DES.
При работе в дистрибутивах Linux с glibc 2.7+ John 1.7.6+ дополнительно поддерживает (и автоматически определяет) хеши SHA-crypt (которые фактически используются в последних версиях Fedora и Ubuntu) с опциональной параллелизацией OpenMP (требуется GCC 4.2+; необходимо явно включить во время компиляции, раскомментировав соответствующую строку OMPFLAGS в начале файла Makefile).
Аналогично, при работе в последних версиях Solaris John 1.7.6+ поддерживает и автоматически определяет хеши SHA-crypt и SunMD5, также с опциональной параллелизацией OpenMP (требуется GCC 4.2+ или последний Sun Studio; необходимо явно включить во время компиляции раскомментированием соответствующей строки OMPFLAGS в начале файла Makefile и во время выполнения путём установки переменной окружения OMP_NUM_THREADS в желаемое количество потоков).
Версии «-jumbo» добавляют поддержку сотен дополнительных типов хешей и шифров, включая быстрые встроенные реализации SHA-crypt и SunMD5, хеши паролей Windows NTLM (на основе MD4), различные хеши паролей пользователей macOS и Mac OS X, быстрые хеши, такие как raw MD5, SHA-1, SHA-256 и SHA-512 (которые исторически неправильно используются многими «веб-приложениями» для паролей), различные другие хеши паролей «веб-приложений», различные хеши паролей серверов SQL и LDAP и множество других типов хешей, а также многие нехеши, такие как закрытые ключи SSH, файлы S/Key skeykeys, TGT Kerberos, зашифрованные файловые системы, такие как файлы .dmg macOS и «разреженные пакеты», зашифрованные архивы, такие как ZIP (классический PKZIP и WinZip/AES), RAR и 7z, зашифрованные документы, такие как PDF и Microsoft Office — и это лишь некоторые примеры. Для загрузки некоторых из этих крупных файлов для взлома необходимо сначала использовать соответствующую встроенную программу *2john, а затем передать её вывод в JtR -jumbo.
Существует официальный GUI для John the Ripper: Johnny.
Несмотря на то, что Johnny ориентирован на ядро JtR, весь базовый функционал должен работать во всех версиях, включая jumbo.
Johnny — отдельная программа, поэтому вам необходимо установить John the Ripper для её использования.
Более подробная информация о Johnny и его релизах находится на wiki:
https://openwall.info/wiki/john/johnny
Остальная документация находится в отдельных файлах, перечисленных ниже в рекомендуемом порядке чтения:
(*) большинство пользователей могут смело пропустить эти разделы.
В каталоге «doc» jumbo есть множество дополнительных файлов документации, которые также стоит изучить.
Приятного чтения!