
John the Ripper jumbo — продвинутый офлайн-взломщик паролей, поддерживающий сотни типов хэшей и шифров, работающий на многих операционных системах, CPU, GPU и даже некоторых FPGA
Это расширенная сообществом версия John the Ripper под названием «jumbo». В ней много кода, документации и данных, предоставленных разработчиками 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 request на 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-based tripcodes, плюс сотни дополнительных хешей и шифров в версиях -jumbo.
См. INSTALL для получения информации об установке John на вашу систему.
Для запуска John необходимо предоставить ему некоторые файлы паролей и, при желании, указать режим взлома, например так, используя порядок режимов по умолчанию и предполагая, что «passwd» — это копия вашего парольного файла:
john passwd
или, чтобы ограничить его только режимом словаря, но разрешив использование правил преобразования слов:
john --wordlist=password.lst --rules passwd
Взломанные пароли будут выведены на терминал и сохранены в файле $JOHN/john.pot (в документации и файле конфигурации John «$JOHN» обозначает «домашний каталог» John; какой именно это каталог — зависит от того, как вы установили John). Файл $JOHN/john.pot также используется, чтобы не загружать хеши паролей, которые вы уже взломали, при следующем запуске John.
Чтобы получить взломанные пароли, выполните:
john --show passwd
Во время взлома вы можете нажать любую клавишу для получения статуса, или 'q' или Ctrl-C для прерывания сессии с сохранением её состояния в файл (по умолчанию $JOHN/john.rec). Если вы нажмёте Ctrl-C второй раз до того, как John успеет завершить обработку первого нажатия, John будет немедленно прерван без сохранения. По умолчанию состояние также сохраняется каждые 10 минут для возможности восстановления в случае сбоя.
Чтобы продолжить прерванную сессию, выполните:
john --restore
Это лишь самые основные действия, которые можно выполнять с John. Полный список параметров командной строки и более сложные примеры использования вы найдёте в файлах OPTIONS и EXAMPLES соответственно.
Обратите внимание, что «бинарные» (предварительно скомпилированные) дистрибутивы John могут включать альтернативные исполняемые файлы вместо просто «john». Возможно, вам потребуется выбрать исполняемый файл, наиболее подходящий для вашей системы, например «john-omp» для использования нескольких процессоров и/или ядер CPU.
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), а также tripcodes на основе 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, быстрые хеши, такие как сырые MD5, SHA-1, SHA-256 и SHA-512 (которые многие «веб-приложения» исторически используют неправильно для паролей), различные другие хеши паролей «веб-приложений», различные хеши паролей SQL и LDAP серверов, и множество других типов хешей, а также многие не-хеши, такие как закрытые ключи SSH, файлы S/Key skeykeys, Kerberos TGTs, зашифрованные файловые системы, такие как macOS .dmg файлы и «sparse bundles», зашифрованные архивы, такие как 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 и его релизах находится на вики:
https://openwall.info/wiki/john/johnny
Остальная документация находится в отдельных файлах, перечисленных здесь в рекомендуемом порядке чтения:
(*) большинство пользователей могут безопасно пропустить их.
В каталоге «doc» jumbo есть много дополнительных файлов документации, которые вам тоже стоит изучить.
Приятного чтения!