John the ripper руководство

How to Crack Passwords using John The Ripper – Pentesting Tutorial

If you are a pen-tester, cracking passwords is something you will be doing on a daily basis. This can include login passwords, file passwords, and almost anything that is protected using a password.

John the Ripper (JtR) is a popular password-cracking tool. John supports many encryption technologies for Windows and Unix systems (Mac included).

One remarkable feature of John is that it can autodetect the encryption for common formats. This will save you a lot of time in researching the hash formats and finding the correct tool to crack them.

John is also a dictionary-based tool. This means that it works with a dictionary of common passwords to compare it with the hash in hand. Here is a common password list called rockyou.txt.

While you can use popular wordlists like RockYou, John also has its own set of wordlists with thousands of common passwords. This makes John very effective when cracking systems with weak passwords.

This is how John works by default:

  • recognize the hash type of the current hash
  • generate hashes on the fly for all the passwords in the dictionary
  • stop when a generated hash matches the current hash.

This is not the only way John finds a password. You can also customize John based on your requirements. For example, you can specify the password format using the — — format flag.

In this article, we will first install John followed by a walkthrough of the different modes you can use. We will then use John to crack passwords for three different use cases — a Windows password, a Linux password, and a zip file password.

A quick disclaimer before we get started: do not use this tool for nefarious purposes. This is meant to be an educational tutorial to help you protect yourself and your clients or team from password attacks. Use this information responsibly and safely!

Let’s get cracking.

If you are using Kali Linux, John is pre-installed. You can use John by typing the following command:

$ john

For Ubuntu/Debian, you can get John from the apt source. Here is the command to install John in Ubuntu:

$ apt install John

In Mac, you can find John in Homebrew:

$ brew install john

For windows and other operating systems, you can find the binaries here.

Once you have installed John, try the help command to make sure your installation is working. The help command can also be used as a reference when working with John.

$ john -h

Here is the output of the help command:

image-89

John help command

How to Use John the Ripper

Now that we know what John is, let’s look at the three modes it offers you. You will be using one of these three for most of your use cases.

  • Single crack mode
  • Wordlist mode
  • Incremental mode

Let’s look at each one of them in detail.

What is Single Crack Mode?

In single-crack mode, John takes a string and generates variations of that string in order to generate a set of passwords.

For example, if our username is “stealth” and the password is “StEaLtH”, we can use the single mode of John to generate password variations (STEALTH, Stealth, STealth, and so on).

We use the “format” flag to specify the hash type and the “single” flag to let John know we want to use the single crack mode. We will also create a crack.txt file which will contain the username and the hash value of the password.

stealth:d776dd32d662b8efbdf853837269bd725203c579

Now we can use the following command to use John’s single crack mode:

$ john --single --format=raw-sha1 crack.txt

And here is the result. You can see that John has successfully found the correct password “StEaLtH”.

image-90

John single crack mode

That was fun, wasn’t it? Now let’s look at the dictionary mode to crack more complicated passwords.

What is Dictionary Mode?

In dictionary mode, we will provide John with a list of passwords. John will generate hashes for these on the fly and compare them with our password hash.

For this example, we will use the RockYou wordlist. If you are using Kali, you can find it at /usr/share/wordlists/rockyou.txt. We will also have a crack.txt file with just the password hash.

edba955d0ea15fdef4f61726ef97e5af507430c0

Here is the command to run John in dictionary mode using the wordlist.

$ john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 crack.txt

And John finds the password pretty quickly.

image-91

John wordlist mode

The weaker the password is, the quicker John can figure it out. This is why it is always recommended to have strong passwords.

What is Incremental Mode?

Incremental mode is the most powerful mode provided by John. It tries all possible character combinations as passwords.

This sounds great, but there is a problem. The cracking can go on for a long time if the password is too long or if it’s a combination of alphanumeric characters and symbols.

You will rarely use this mode unless you have no other option. In typical cases, a combination of Social Engineering attacks and wordlist mode will help you crack most of the hashes.

If you would like to try the incremental mode, here is the syntax.

$ john -i:digits passwordfile.txt

Here, the -i flag tells John that we want to use the increment mode. The “digits” placeholder can be used to set the maximum number of digits in the password.

You can also add the “format” option to make it easier for John to start cracking.

Use Cases for John the Ripper

Now that you understand the different modes of John, let’s look at a few use cases.

We will use John to crack three types of hashes: a windows NTLM password, a Linux shadow password, and the password for a zip file.

How to Crack a Windows Password

Let’s start with Windows. In Windows, the password hashes are stored in the SAM database. SAM uses the LM/NTLM hash format for passwords, so we will be using John to crack one.

Getting passwords from the SAM database is out of scope for this article, but let’s assume you have acquired a password hash for a Windows user.

Here is the command to crack it:

$ john --format=lm crack.txt

The crack.txt will contain the password hash. If John is unable to crack the password using its default wordlist, you can use the RockYou wordlist using the — — wordlist flag.

How to Crack a Linux Password

Now, let’s crack a Linux password. In Linux, there are two important files saved in the /etc folder: passwd and shadow.

  • /etc/passwd -> stores information like username, user id, login shell, and so on.
  • /etc/shadow -> contains password hash, password expiry, and so on.

In addition to the “john” command, John comes with a few other utilities. One of them is called “unshadow”.

The unshadow command combines the passwd and shadow files together into a single file. This can then be used by John to crack passwords.

Here is how we use the unshadow command:

$ unshadow /etc/passwd /etc/shadow > output.db

This command will combine the files together and create an output.db file. We can now crack the output.db file using John.

$ john output.db

John tries to find the password for all the users in the passwd file and generates the output with the list of cracked passwords. Again, you can use custom wordlists via the  — — wordlist flag.

How to Crack a Zip File Password

Finally, let’s crack a zip file password. To do that, we first have to get the hash of the zip file’s password.

Like unshadow, John has another utility called zip2john. zip2john helps us to get the hash from zip files. If you are cracking a .rar file, you can use the rar2john utility.

Here is the syntax to get the password hash of a zip file:

$ zip2john file.zip > zip.hashes

The above command will get the hash from the zip file and store it in the zip.hashes file. You can then use John to crack the hash.

$john zip.hashes

John also has several other functionalities that will help you crack a variety of passwords. You can find the complete documentation for John here.

How to Defend Against Password Attacks

So far we have seen how to crack passwords with John the Ripper. But how do we defend against these types of brute-force attacks?

The simplest way to defend against password attacks is to set a strong password. The stronger the password is, the harder it is to crack.

The second step is to stop using the same passwords for multiple sites. If one site gets hacked, your password will be exposed to the internet. A hacker can then use the email/password combination to test your credentials across other sites. You can check if your password is on the internet here.

The final step would be to generate random passwords and use a password manager. There are a variety of options including the Chrome built-in Google password manager. If you use a strong password for each site you use, it becomes extremely hard to crack your password.

Summary

John is a popular and powerful password-cracking tool. It is often used by both penetration testers and black hat hackers for its versatility and ease of use.

From automated hash discovery to dictionary-based attacks, John is a great tool to have in your pentesting toolkit.

Hope this article helped you to understand John the Ripper in detail. You can connect with me here or visit my blog here.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Просмотров: 762

Здравствуйте, дорогие друзья.

В этой статье, я покажу Вам, как взламывать пароли с помощью перебора. Мы погрузимся в John the Ripper, который, вероятно, является наиболее широко используемым инструментом для взлома паролей. John the Ripper разработан, чтобы быть одновременно многофункциональным и быстрым. Он сочетает в себе несколько параметров взлома, и поддерживает множество протоколов хеширования. В расширенных версиях сообщества добавлена поддержка хешей Windows iNTLM, MacOS или хэшей sha-256 или 512 с солью.

Прежде чем начать использовать John, давайте немного поговорим о доступных режимах взлома. Доступно 3 режима взлома: режим одиночного взлома, атака по словарю и инкрементный режим. Режим одиночного взлома – это режим, с которого Вы должны начать взлом.

Он будет использовать имена журналов, вместе с другими полями из прошлого начала файла, также с большим набором применяемых правил искажения. Это самый быстрый режим взлома, который применим к очень простым паролям.

Если Вы используете атаку по словарю, Вы должны предоставить файл словаря, содержащий по одному слову в строке файла паролей.

Вы можете включить правила искажения слов, которые используются для изменения или искажения слов, производящих другие вероятные пароли. Если этот параметр включен, все правила будут применяться к каждой строке, в файле списка, создавая несколько возможных паролей для каждого исходного слова.

И самый мощный режим взлома — это инкрементный режим. Он пробует все возможные комбинации символов в качестве паролей. Однако, если Вы предоставите случайный пароль, длиной более 12 или 14 символов, он никогда не будет завершен, и Вам придется прервать его вручную.

Ладно, приступим! В Kali Linux уже установлен John the Ripper, но, если Вы используете другой дистрибутив, Вы можете просто установить его, выполнив apt install john.

apt install john

Это уже самая новая версия. Первый шаг — объединить предоставленные пароли и теневые файлы в один файл. Для этого есть команда unshadow, которая является частью пакета John. Команда выглядит следующим образом:

unshadow

Имя текстового файла, можете указать по-другому.

Посмотрим содержимое файла, с помощью команды «cat»:

cat
cat unshadowed.txt

Хорошо, у нас есть пользователь и хеш! Идеально! Начнем с джона в одиночном режиме. Команда: «john -single unshadowed.txt ----format=crypt»:

john -single unshadowed.txt ----format=crypt

Не пугайтесь такого вывода, потому что у Вас, при первом взломе хешей будет отображение взломанных паролей системы из файла, который мы создавали ранее.

Будет примерно такой вывод (не обращайте внимание на команду):

Будет примерно такой вывод (не обращайте внимание на команду)

Проверим, нашел ли John что-нибудь. Это команда: «john --show unshadowed.txt»:

john --show unshadowed.txt

Мы замечаем, что он взломал два пароля: пароль пользователя Kali, по умолчанию, начиная с версии 2020.1, является «kali», и пароль пользователя «test». Всего за несколько секунд он взломал пароль по умолчанию пользователя Kali Linux. И снова говорю, что одиночный режим хорош только для взлома очень простых паролей. Когда John находит пароль, он сохраняет его в файле, в домашнем каталоге. Это команда и путь: «cat ~/.john/john.pot»:

cat ~/.john/john.pot

Здесь хранятся пароли! Давайте попробуем атаку по словарю методом перебора. John the Ripper поставляется со своими собственными списками паролей в /usr/share/john.

/usr/share/john

Например, таким файлом словаря является password.lst:

password.lst

Также в любом дистрибутиве Linux есть файлы словарей / usr/share/dict/.

/ usr/share/dict/

Чтобы проверить, сколько записей находится в файле словаря, Вы выполняете: «wc -l /usr/share/dict/wordlist-probable.txt»:

wc -l /usr/share/dict/wordlist-probable.txt

Например, в этом файле есть 203809 слов.

Хорошо, давайте начнем, используя словарь, который идет в комплекте John. Это команда: «john --wordlist=/usr/share/john/password.lst --rules --format=crypt unshadowed.txt»:

john --wordlist=/usr/share/john/password.lst --rules --format=crypt unshadowed.txt

Он уже взломал два пароля, поэтому мы видим такой вывод. У Вас может быть другое отображение. Просто знайте, что это не ошибка. Скрипт отработал. Если я хочу увидеть взломанные пароли, я запускаю: «john --show unshadowed.txt»:

john --show unshadowed.txt

На этом все. Всем хорошего дня!

#1 Взлом паролей. Понимание файлов etc/passwd и etc/shadow.

#2 Введение во взлом паролей.

Оглавление

1. Знакомство и установка John the Ripper

2. Утилиты для извлечения хешей

2.1 Как взломать пароль в John the Ripper

2.2 Как перевести файл в хеш John the Ripper

2.3 Где посмотреть примеры хешей

2.4 Справочная информация по всем скриптам для генерации хешей John the Ripper и Hashcat

2.5 Другие утилиты для извлечения хешей

2.6 Что нужно знать при публикации хешей

3. Как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы)

4. Практика и примеры использования John the Ripper

5. Атака на основе правил

6. Брут-форс нестандартных хешей

7. Johnny — графический интерфейс для John the Ripper

8. 

9. 


Как взломать пароль в John the Ripper

John the Ripper умеет взламывать только хеши — он не умеет напрямую работать с зашифрованными файлами. Программа не может открыть, например, офисный документ, ввести туда пароль и т. п.

Это решаемая проблема — нам нужно вычислить (извлечь) хеш для интересующего нас файла. Сам John этого делать не умеет. Нужны вспомогательные утилиты. Ознакомиться с их списком можно, например, набрав команду:

locate *2john*

Вот так выглядит список на машине, где я установил John из исходников:

Согласитесь, список впечатляющий!

На Kali Linux эти файлы расположены в двух директориях:

  • файлы скриптов в /usr/share/john/
  • а бинарные файлы в /usr/sbin/

В BlackArch эти файлы размещены:

  • файлы скриптов в директории /usr/lib/john/
  • бинарные файлы в /usr/bin/

Если вы компилировали John the Ripper из исходного кода, то все эти файлы собраны в директории run.

Чтобы найти нужный вам файл, используйте команду вида:

locate ФАЙЛ

Чтобы найти сразу все файлы по извлечению хешей, выполните:

locate *2john*

Если не можете в своей системе найти какой-то файл (это можно сделать командой locate), то скачайте их из исходных кодов: https://github.com/magnumripper/JohnTheRipper.

Как перевести файл в хеш John the Ripper

Скрипты собраны из самых разных мест и написаны множеством исследователей, зачастую на основе изысканий других исследователей. Поэтому они написаны на разных языках программирования.

В целом, использование довольно стандартно — нужно указать запускаемую программу и через пробел файл, для которого нужно рассчитать хеш.

Хорошая новость в том, что эти хеши являются общими как для Hashcat, так и для John the Ripper. То есть эту таблицу и эти файлы вы можете использовать для взлома паролей в John the Ripper или Hashcat.

Можно указать сразу несколько файлов для извлечения их хешей — например, несколько ZIP архивов или несколько офисных документов.

Пример извлечения хеша из файла passwords.zip, то есть из ZIP архива:

./zip2john '/home/mial/test/passwords.zip'

Пример вывода:

Первая строка содержит свойства архива:

ver 2.0 passwords.zip/passwords.txt PKZIP Encr: cmplen=339, decmplen=490, crc=F872015C type=8

Сам хеш идёт далее:

passwords.zip/passwords.txt:$pkzip2$1*1*2*0*153*1ea*f872015c*0*2b*8*153*f872*3dc8*8cfe495658baa3b5650d212831700dbefbf0c95bbc2831d287121ca64f0a0b7f468c9d3ab88fdce90c7c7e0f9f8978a2d3496661af8dc24e2702398612c927d5f33c243c892bdd11a39f7ecd6c375c7da5df205f6ced61c9d7629d4253f98c01257d45be64f936eeb4bf06060b5e3b2bd286f9322c130d07f88d15af4e6b9a107f0dd2f6c48dc05b4aa81f7f1a9306b5070b7e3414d687a011a73d4a903568e3559c590f2d720542e686d2d6cf70d11d0b60728415ff147263d26f994a73328aad1f204ff2d38c89acbba101e3aff5a0850ef016c64cee400fb5f01834ee37ddedf8051618802547120f52e2c8b2aa4f6d161807aa8d76fd11992e30abd712710da1e238ed17f57ee5af00117016dbd4ae673d6aa9ae694da53c578a0ff6d2af00ebb0dded84cf1f2a966d441b03e22338b4a287d364faa41bea9bc72d0454c0aa654a2e9bb13567aafd5e7043fb6c2289c244*$/pkzip2$:passwords.txt:passwords.zip::/home/mial/test/passwords.zip

Пример команды, при которой хеш сохраняется в файл passwords.zip.hash:

./zip2john '/home/mial/test/passwords.zip' > passwords.zip.hash

Пример извлечения хеша из архива .7z:

./7z2john.pl '/mnt/disk_d/Arch/from_kali.7z'

Пример вывода:

Первая строка предупреждает, что хеши могут содержать зашифрованные чувствительные данные и нужно быть осторожным, если вы делитесь хешем с кем-то или публикуете его в Интернете:

ATTENTION: the hashes might contain sensitive encrypted data. Be careful when sharing or posting these hashes

Вторая строка это сам хеш:

from_kali.7z:$7z$2$19$0$$8$a09335e006fc03b20000000000000000$2687817801$144$144$47a0c3138667a3727b8db3f9aa10362c8a9739192d9e55d8c052f16965cd1360100f1b17764c07101a9088eb5e965129c245647e3597e2182dee769db99ab2a5d07716f78867a9f5e5b4198f8e3bc9a4bc019006f95c613006cbecf9bda18a865cde0279cce92e060bdeb31ca50983f1d6363fb626651b706dc44838294b250ad53a6ce02a2a49eeb8523be9fee28dbc$374$00

Извлечение хеша из файла MS Word 2019:

./office2john.py '/mnt/disk_d/Share/Secret.docx' 2>/dev/null

Если не указать 2>/dev/null, то будет выведено предупреждение об устаревшей функции Python в скрипте — надеюсь, в будущем это поправят.

Пример извлечения хеша из рукопожатия для взлома Wi-Fi:

./wpapcap2john ~/RT-725140.pcap

Утилита wpapcap2john поддерживает опцию -v, поэтому при желании вы можете увидеть больше информации:

./wpapcap2john -vv ~/RT-725140.pcap

Пример извлечения хеша VNC рукопожатия из захваченного сетевого трафика — этот хеш позволяет взломать пароль VNC сервера.

./vncpcap2john '/home/mial/VNC.pcapng'

Учитывая что МАКСИМАЛЬНАЯ (не минимальная) длина пароля составляет 8 (!) символов, а сам алгоритм считается очень быстро, такие хеши обречены на взлом:

192.168.0.101-5900 to 192.168.0.89-57454:$vnc$*894443629F4A9675809CFF5DA2E84651*271D94EB610B5C42588DC53506419E6A

Где посмотреть примеры хешей

Как вы уже могли понять, хеши являются довольно длинными и (при беглом взгляде) бессмысленными наборами данных. Чтобы понять, что вы правильно получили хеш, иногда нужно сравнить его с аналогичным типом.

На этой странице вы найдёте примеры всех хешей: https://hashcat.net/wiki/doku.php?id=example_hashes

Но вы можете посмотреть примеры любого хеша офлайн, без сторонних ресурсов.

Начать нужно с того, чтобы узнать, как ваш формат правильно называется в John the Ripper. Для этого можно найти его в полном списке поддерживаемых форматов:

john --list=formats

Примеры названий форматов:

  • Office
  • ODF
  • ZIP
  • VNC
  • wpapsk
  • и пр.

Теперь, чтобы увидеть пример хеша, выполните одну из следующего вида команд, в которой вместо слова ФОРМАТ подставьте название формата:

john --list=format-details --format=ФОРМАТ
john --list=format-all-details --format=ФОРМАТ

Я предпочитаю второй вариант команды, который выводит больше информации.

Например, получение информации о свойствах пароля и пример хеша VNC:

john --list=format-all-details --format=VNC

Пример хеша я выделил красной рамкой.

Здесь же вы можете найти другую интересную информацию — максимальную и минимальную длину пароля, чувствителен ли пароль к регистру и прочее.

Ещё один пример — в этот раз хеш файлов MS Office:

john --list=format-all-details --format=Office

Справочная информация по всем скриптам для генерации хешей John the Ripper и Hashcat

Для себя я собрал всю доступную информацию об этих файлах. Если вы заметили неточности в моих данных или хотите их дополнить — то пишите в комментариях к этому разделу.

Для поиска по этой странице используйте Ctrl+f.


1password2john.py

Извлекает хеш для взлома пароля программы 1Password

Использование: 

./1password2john.py <1Password Agile Keychain(s) / Cloud Keychain(s)> / OnePassword.sqlite

7z2john.pl

Извлекает хеши из зашифрованных архивов 7-Zip

Зависимостью является модуль Perl Compress::Raw::Lzma. Для его установки в Debian, Kali Linux и производные:

sudo apt install libcompress-raw-lzma-perl

Для установки в Arch Linux, BlackArch и производные с помощью pikaur:

pikaur -S perl-compress-raw-lzma

Использование: 

./7z2john.pl < зашифрованные 7-Zip файлы >

adxcsouf2john.py

Эта утилита извлекает хэши паролей ADXCRYPT из IBM / Toshiba 4690 OS ADXCSOUF.DAT (более известный, отсюда и название утилиты) и хэши SHA-1 из файлов ADXEPW0F.DAT.

Использование:

./adxcsouf2john.py <Файл(ы) ADXCSOUF.DAT / ADXEPW0F.DAT>

aem2john.py

Утилита JtR для преобразования собственных хэшей Adobe AEM (Adobe Experience Manager) в существующий формат хэшей JtR.

Использование:

./aem2john.py <Файл(ы)-с-хешами-Adobe-AEM>

aix2john.pl и aix2john.py

Этот скрипт конвертирует AIX /etc/security/passw

Использование: 

aixpasswd2john.pl <ФАЙЛ>

Если пароль не задан, то aixpasswd2john.pl будет читать из стандартного ввода.


andotp2john.py

andOTP

Использование:

./andotp2john.py [andOTP бэкапы .json.aes файлов]

androidbackup2john.py

Файлы бэкапов Android, которые могут быть созданы следующей командой:

adb backup -f freeotp-backup.ab -apk org.fedorahosted.freeotp # валидно для приложения freeotp

Использование:

./androidbackup2john.py [Файлы Android бэкапов .ab]

androidfde2john.py

Программа для «конвертации» образов / дисков Android FDE в дружественный для JtR формат.

Использование:

./androidfde2john.py <раздел данных / образ> <раздел footer / образ>

ansible2john.py

ansible-vault

Использование:

./ansible2john.py [Файл(ы) Ansible Vault .yml]

apex2john.py

Дамп хешей APEX

Использование: 

./apex2john.py <файл(ы) apex-hashes.txt>

applenotes2john.py

Скрипт для извлечения «хэшей» из защищённых паролем баз данных Apple Notes. Типичное расположение базы данных: ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite

Использование:

./applenotes2john.py [Файлы Apple Notes .sqlite]

aruba2john.py

Алгоритм хеширования паролей ArubaOS.

Использование:

./aruba2john.py <Файл хешей ArubaOS>

atmail2john.pl


axcrypt2john.py

Скрипт для извлечения хэша из зашифрованного файла AxCrypt или самодешифруемого двоичного файла

Использование:

./axcrypt2john.py <axxfile> [ФАЙЛ-КЛЮЧЕЙ]

Опциональные аргументы:

  ФАЙЛ-КЛЮЧЕЙ			 путь до необязательного файла ключей

bestcrypt2john.py

Использование:

./bestcrypt2john.py [Файл(ы) Jetico BestCrypt Containers, .jbc]

bitcoin2john.py

Извлекает хеш из кошельков Bitcon для подбора пароля

Использование: 

./bitcoin2john.py [Файлы (.dat) кошельков Bitcoin/Litecoin/PRiVCY]

Необходимо установить пакет bsddb3, который является зависимостью:

sudo pip3 install bsddb3

bitlocker2john

BitLocker

Использование:

./bitlocker2john -i <Образ зашифрованного раздела памяти>

Опции:

  -h		Показать справку
  -i		Путь до образа зашифрованного с помощью BitLocker раздела памяти

bitshares2john.py

Скрипт для извлечения «хешей» из баз данных BitShares.

Использование:

./bitshares2john.py BitShares SQLite файлы 
./bitshares2john.py Файлы бэкапов Wallet .bin 
./bitshares2john.py Файлы ~/BitShares/wallets/<wallet-name>/*.ldb

Расположение баз данных: %APPDATA%\BitShares2-light\databases\file__0\{1,2…}

«Local Wallet» на https://wallet.bitshares.org для Google Chrome: ~/.config/google-chrome/Default/databases/https_wallet.bitshares.org_0

Извлечение метаданных:

sqlite3 Databases.db
sqlite> select * from Databases;
1|file__0|__sysdb__|System Database|4194304
2|file__0|graphene_db_4018d7|graphene_db_4018d7|4194304
3|file__0|graphene_v2_4018d7_default|graphene_v2_4018d7_default|4194304
4|file__0|graphene_v2_4018d7_openwall|graphene_v2_4018d7_openwall|4194304

Извлечение хешей:

sqlite3 file__0/4
sqlite> select * from wallet;
3-openwall|{"public_name":"openwall", ..., "encryption_key":"ec4...", ...}

bitwarden2john.py

Утилита для извлечения «хешей» из локальных данных Google Chrome / Firefox / Android.

В качестве зависимости необходимо установить модуль plyvel (скрипт использует Python 2):

sudo pip2 install plyvel

Использование:

./bitwarden2john.py Bitwarden storage.js
./bitwarden2john.py com.x8bit.bitwarden_preferences.xml
./bitwarden2john.py ПУТЬ 'nngceckbap…' Chrome

На Linux с Firefox, «storage.js» можно найти по следующему расположению: ~/.mozilla/firefox/ВАШ-ПРОФИЛЬ/browser-extension-data/\{446900e4-71c2-419f-a6a7-df9c091e268b\}/

На Android с bitwarden 1.14.1, «hash» можно извлечь из следующего расположения: /data/data/com.x8bit.bitwarden/shared_prefs/com.x8bit.bitwarden_preferences.xml


bks2john.py

Конвертирует хранилища ключей BKS в совместимый с JtR формат.

Использование:

bks2john.py [ОПЦИИ] <ФАЙЛ .bks / .uber>

Опции:

  -h, --help            показать справку и выйти
  -t ТИП, --type=ТИП  тип хранилища ключей BKS (bks или uber)

blockchain2john.py

Файлы кошелька blockchain

Использование:

./blockchain2john.py [файлы кошелька blockchain]

Опциональные аргументы:

  -h, --help  показать справку и выйти
  --json      использует ли кошелёк формат v2?
  --base64    содержит ли кошелёк только base64 строку?

ccache2john.py

Этот скрипт извлекает хеш пригодный для взлома из файлов кэша учётных данных krb5 (например, /tmp/krb5cc_1000).

Примечание: этот метод атаки работает только против серверов MS Active Directory.

Использование:

./ccache2john.py <ввод файла кэша учётных данных>

Пример:

./ccache2john.py /tmp/krb5cc_1000

cisco2john.pl

Начальный декодер пароля Cisco type 4.

Использование:

./cisco2john.pl [КОНФИГУРАЦИОННЫЕ ФАЙЛЫ cisco] >>hashfile 2>>seed.txt
./john -format:md5 -wordlist:seed.txt -rules hashfile

Пример:

./cisco2john.pl cisco.config >cisco.in
#!comment: Found type 7 passwords:
companysecret
test

Из-за этого вывода мы перезапускаем и сохраняем stderr в другой файл.

./cisco2john.pl cisco.conf >cisco.in 2>cisco.seed
cat cisco.in
enable_secret_level_2:5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
enable_secret:$1$4C5N$JCdhRhHmlH4kdmLz.vsyq0
./john -wo:cisco.seed -rules cisco.in

cracf2john.py

Обрабатывает файлы CRACF.TXT files (сгенерированные программой CRACF) в формат, пригодный для JtR.

Использование:

./cracf2john.py <CRACF.TXT>

dashlane2john.py

Извлекает «хеши» из файлов .aes и .dash Dashlane.

Использование:

./dashlane2john.py <.aes или .dash файлы из Dashlane для рабочего стола Windows / macOS>

Примечание. Это работает только с данными из настольной версии Dashlane для Windows и macOS.

Необходимые файлы .aes можно найти в дереве каталогов %AppData%\Dashlane\profiles в Windows.

Необходимые файлы .aes можно найти в дереве каталогов ~/Library/Application\ Support/Dashlane/profiles/ в macOS.


deepsound2john.py

deepsound2john извлекает хэши паролей из аудиофайлов, содержащих зашифрованные данные, стеганографически встроенные DeepSound (http://jpinsoft.net/deepsound/).

Известно, что этот метод работает с файлами, созданными DeepSound 2.0.

Входные файлы должны быть в формате .wav. Хэши можно восстановить из аудиофайлов даже после преобразования из других форматов, например,

ffmpeg -i ВВОД output.wav

Использование:

deepsound2john.py [-h] [--verbose] ФАЙЛ [ФАЙЛ ...]

Опции:

позиционные аргументы:
  ФАЙЛ

необязательные аргументы:
  -h, --help     показать справку и выйти
  --verbose, -v

Пример использования:

python3 deepsound2john.py carrier.wav > hashes.txt
john hashes.txt

diskcryptor2john.py

Извлекает хеш из DiskCryptor.

Использование:

./diskcryptor2john.py [Зашифрованное устройство DiskCryptor / Необработанный образ диска]

Пример:

./diskcryptor2john.py /dev/sdb1

Пример:

./diskcryptor2john.py partition_image.raw

Совет: используйте kpartx для доступа к разделам в необработанных образах дисков в Linux.

Пример:

kpartx -av disk_image.raw;
fdisk -l disk_image.raw;
./diskcryptor2john.py /dev/mapper/loop0p1

ВНИМАНИЕ: Каскадные шифры пока НЕ поддерживаются!


dmg2john и dmg2john.py

Образцы Apple Disk (DMG)

Использование:

dmg2john [ФАЙЛЫ DMG]

1. Запустите dmg2john на файл(ы) .dmg.

Например:

./dmg2john test.dmg > hash

2. Запустите john на вывод dmg2john.

Например:

./john hash

Можно использовать любой файл на выбор: dmg2john или dmg2john.py, но рекомендуется dmg2john.


DPAPImk2john.py

Программа использует Python 2.

Использование:

python2 ./DPAPImk2john.py [-h] [-S SID] [-mk MASTERKEY] [-d]
                       [-c {domain,domain1607+,domain1607-,local}]
                       [-P PREFERRED] [--password PASSWORD]

Опциональные аргументы:

  -h, --help            show this help message and exit
  -S SID, --sid SID     SID of account owning the masterkey file.
  -mk MASTERKEY, --masterkey MASTERKEY
                        masterkey file (usually in %APPDATA%\Protect\<SID>).
  -d, --debug
  -c {domain,domain1607+,domain1607-,local}, --context {domain,domain1607+,domain1607-,local}
                        context of user account. 1607 refers to Windows 10
                        1607 update.
  -P PREFERRED, --preferred PREFERRED
                        'Preferred' file containing GUID of masterkey file in
                        use (usually in %APPDATA%\Protect\<SID>). Cannot be
                        used with any other command.
  --password PASSWORD   password to decrypt masterkey file.

eapmd5tojohn

Использование:

./eapmd5tojohn -r <pcap file>

ecryptfs2john.py


efs2john.py

UPD: возможно этот скрипт удалён.

Encrypting File System (EFS) — система шифрования данных, реализующая шифрование на уровне файлов в операционных системах Microsoft Windows NT (источник).

Для дополнительной функциональности рекомендуется установить пакет python-m2crypto:

sudo apt install python-m2crypto

Использование:

efs2john.py --masterkey=samples/openwall.efs/92573301-74fa-4e55-bd38-86fc558fa25e --sid="S-1-5-21-1482476501-1659004503-725345543-1003"
efs2john.py --masterkey=samples/openwall.efs.2/21d67870-8257-49e0-b2de-c58324271c42 --sid="S-1-5-21-1482476501-1659004503-725345543-1005"
efs2john.py --masterkey=samples/Win-2012-non-DC/1b52eb4f-440f-479e-b84a-654fdccad797 --sid="S-1-5-21-689418962-3671548705-686489014-1001" --password="openwall@123"

ejabberd2john.py

Извлекает хеши из файлов, созданных командой

ejabberdctl dump output.txt

Установка необходимой зависимости — модуля parsimonious:

sudo pip install parsimonious

Использование:

./ejabberd2john.py [ФАЙЛЫ, СГЕНЕРИРОВАННЫЕ КОМАНДОЙ 'ejabberdctl dump']

electrum2john.py

Генерирует хеш файла крипто кошелька Ethereum.

Использование:

./electrum2john.py [Файлы кошелька Ethereum (default_wallet)]

encfs2john.py

Переводит файлы EncFS в формат, подходящий для John.

Использование:

./encfs2john.py <каталог EncFS>

enpass2john.py

Извлекает хеши из баз данных Enpass Password Manager версии 6.x.

Использование

./enpass2john.py <Файлы Enpass .enpassdb>

enpass5tojohn.py

Извлекает хеши из баз данных Enpass Password Manager версии 5.x.

Использование:

./enpass2john.py <Файлы Enpass .enpassdb>

ethereum2john.py

Извлекает хеш из кошельков Ethereum Wallet (Geth/Mist/MyEtherWallet).

Использование:

./ethereum2john.py [Файлы Ethereum Wallet (Geth/Mist/MyEtherWallet)]

filezilla2john.py

Извлекает хеши из файлов «FileZilla Server.xml».

Использование:

./filezilla2john.py <Файл(ы) FileZilla Server.xml>

geli2john.py

Ссылки:

  • https://github.com/freebsd/freebsd/tree/master/sys/geom/eli
  • https://github.com/freebsd/freebsd/blob/master/sys/geom/eli/g_eli.h
  • https://github.com/freebsd/freebsd/blob/master/sys/opencrypto/cryptodev.h  

Использование:

./geli2john.py [disk image]

gpg2john

Утилита для подготовки к взлому частного (секретного) ключа PGP Desktop / OpenPGP / GnuPG.

PGP (англ. Pretty Good Privacy) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде, в том числе прозрачное шифрование данных на запоминающих устройствах, например, на жёстком диске. Подробности смотрите в статье «Как пользоваться gpg: шифрование, расшифровка файлов и сообщений, подпись файлов и проверка подписи, управление ключами».

Использование:

./gpg2john [-d] [-S] <GPG файл(ы) секретного ключа>
  • если используется -d, тогда записывается отладочная информация декодирования типов объектов
  • если используется -S, тогда также будут выведены подключи

hccap2john

HCCAP — это кастомный формат, специально разработанный для oclHashcat.

Сами данные не отличаются от обычного tcpdump формата. На самом деле, они абсолютно те же самые. Они просто немного реорганизованы.

Валидный файл hashcat cap (расширение файла: .hccap) содержит одну или больше экземпляров структуры. 

Использование:

./hccap2john <файлы hccap и/или hccapx>

hccapx2john.py

Обрабатывает файлы hccapx в формат, подходящий для использования с JtR.

Использование:

hccapx2john.py [-h] [-nc NC] [--no-mp] hccapx

Опции:

позиционные аргументы:
  hccapx      файл hccapx для обработки

необязательные аргументы:
  -h, --help  показать справку и выйти
  -nc NC      используемая AP nonce коррекция, 0 для отключения, по умолчанию 8
  --no-mp     отключить выявление message_pair BE/LE/nc

htdigest2john.py

Эта утилита обрабатывает файлы htdigest в формат, подходящий для использования с JtR.

Использование:

./htdigest2john.py <файл (ы) htdigest>

ibmiscanner2john.py

Конвертирует файлы в формате userid:hash (например файлы, созданные более старой версией инструмента ibmiscanner) в формат as400-sha, который может обрабатываться JtR. Можно указать несколько файлов.

Вывод отправляется в stdout. Для создания файла JtR используйте перенаправление стандартного вывода.

Использование:

python2 ./ibmiscanner2john.py ФАЙЛ [ФАЙЛ ...]

ikescan2john.py

Обрабатывает файлы вывода ike-scan в формат, подходящий для использования с JtR.

Использование:

./ikescan2john.py <psk-parameters-file> [norteluser]

ios7tojohn.pl

Взлом ограничительного ПИН кода IOS 7

Пример ввода (с com.apple.restrictionspassword.plist):

   <key>RestrictionsPasswordKey</key>
   <data>
   J94ZcXHm1J/F9Vye8GwNh1HNclA=
   </data>
   <key>RestrictionsPasswordSalt</key>
   <data>
   /RHN4A==
   </data>

Пример вывода:

$pbkdf2-hmac-sha1$1000.fd11cde0.27de197171e6d49fc5f55c9ef06c0d8751cd7250

1. Достаньте файл com.apple.restrictionspassword.plist из вашего телефона. Как сделать это — за пределами этого документа, просто погуглите это.

2. Запустите ios7tojohn на этот файл, Перенаправьте вывод в другой файл. К примеру:

./ios7tojohn com.apple.restrictionspassword.plist > ioshash

3. Запустите john на новый файл используя только четыре цифры (это ведь PIN код):

./john ioshash -inc:digits -min-len=4 -max-len=4

4. Взлом займёт полсекунды. И не потому что Apple использует очень убогий хеш механизм, а от того, что пространство ключей ПИН кода крайне маленькое.


itunes_backup2john.pl

Генерирует хеш для взлома бэкапов IOS.

Объяснение формата вывода:

1. все двоичные данные выводятся в шестнадцатеричной форме

2. на самом деле 2 формата, один для бэкапов IOS < 10.0 и один для бэкапов начиная с 10.x

Вид хешей версии ниже чем 10:

$itunes_backup$*9*wpky*iter*salt**

Вид хешей версии выше чем 10.x:

$itunes_backup$*10*wpky*iter*salt*dpic*dpsl

Использование:

./itunes_backup2john.pl <ФАЙЛ Manifest.plist>...

iwork2john.py

Генерирует хеш для взлома файлов iWork.

Использование:

./iwork2john.py [.key файлы]

kdcdump2john.py

Перевод вывода патча Kdcdump для JtR.

Использование:

./kdcdump2john.py [ДАМП]

keepass2john

Генерация хешей для взлома мастер пароля от менеджерей паролей KeePass и форков. Подробности смотрите в статье «Менеджеры паролей KeePass и KeePassXC».

Использование:

./keepass2john [-k <ФАЙЛ КЛЮЧЕЙ>] <БАЗЫ ДАННЫХ .kdbx>

keychain2john.py

Перерабатывает файлы Mac OS X keychain в удобный для John the Ripper формат.

Использование:

keychain2john [файлы keychain]

keyring2john.py

Взлом файлов GNOME Keyring, конвертирует файлы Gnome Keyring в формат john.

Использование:

python2 ./keyring2john.py [-h] KEYRING_FILE

Опции:

позиционные аргументы:
  KEYRING_FILE  Вводо файла Gnome Keyring 

опциональные аргументы:
  -h, --help    показать справку и выйти

keystore2john.py

В настоящее время поддерживаются только файлы Sun «JKS».

Использование:

./keystore2john.py <ФАЙЛ(Ы) .keystore / .jks>

kirbi2john.py

Извлекает тикеты Kerberos из файла kirbi и парсит их в формат JtR.

Использование:

./kirbi2john.py <экспортированные из mimikatz тикеты kerberos>
./kirbi2john.py <вывод скрипта extracttgsrepfrompcap.py>

known_hosts2john.py

Обрабатывает файлы known_hosts в формат, подходящий для использования с JtR.

Использование:

python2 ./known_hosts2john.py [ФАЙЛЫ known_hosts]

krb2john.py

Раньше этот файл назывался krbpa2john.py.

Извлекает хеши AS-REQ и TGS-REP.

Использование:

./krb2john.py < файлы.pdml>

Для создания файлов .pdml с помощью tshark:

tshark -r sample.pcap -T pdml > sample.pdml; ./krb2john.py sample.pdml

Примеры использования. Для извлечения хешей «AS-REQ (krb-as-req)»,

tshark -r AD-capture-2.pcapng -T pdml > data.pdml
tshark -2 -r test.pcap -R "tcp.dstport==88 or udp.dstport==88" -T pdml >> data.pdml
./run/krb2john.py data.pdml

Для извлечения хешей «TGS-REP (krb-tgs-rep)»:

tshark -2 -r test.pcap -R "tcp.srcport==88 or udp.srcport==88" -T pdml >> data.pdml
./run/krb2john.py data.pdml

kwallet2john.py

Извлекает хеш KWALLET.

Использование:

./kwallet2john.py <ФАЙЛЫ .kwl>

lastpass2john.py

Этот скрипт конвертирует введённые данные LastPass в формат, подходящий для JtR.

Формат вывода:

filename:$lp$email(salt)$iterations$hash

Файл «*_key.itr» просто содержит количество вычислений (например, 5000). Для Firefox в Linux этот файл находится в директории ~/.lastpass.

Перед тем, как использовать этот скрипт на данных из Windows версии LastPass, прочитайте https://lastpass.com/support.php?cmd=showfaq&id=425. Помните, что на Windows используется CryptProtectData чтобы дополнительно зашифровать данные, поэтому этот сркипт не будет работать «из коробки». Для Windows версии LastPass требуется дополнительная обработка (расшифровка) данных.

Этот скрипт работает только для LastPass версии 3.x для Firefox. Последней поддерживаемой версией является LastPass is 3.3.4, выпущенная 17 марта 2017.

Более старые версии LastPass могут быть установлены по следующей ссылке https://addons.mozilla.org/en-US/firefox/addon/lastpass-password-manager/versions/.

LastPass версии 4.x использует очень другой механизм, который ещё не поддерживается.

Он хранит данные в следующем месте: ~/.mozilla/firefox/<profile>/storage/permanent/index…/idb/<something>lp.sqlite

Также интересно: https://lastpass.com/js/enc.php

Использование:

./lastpass2john.py <email АДРЕС> <ФАЙЛ LastPass *_lpall.slps> <ФАЙЛ LastPass *_key.itr>

ИЛИ для lastpass-cli:

./lastpass2john.py <ПУТЬ ДО ДИРЕКТОРИИ .local/share/lpass>

ldif2john.pl


libreoffice2john.py

Утилита обрабатывает файлы OpenOffice / LibreOffice в формат, подходящий для JtR.

Раньше эта утилита называлась odf2john.py.

Формат вывода:

filename:$odf*cipher type*checksum type*iterations*key-size*checksum*iv length*iv*salt length*salt*unused*content.xml data

Использование:

./libreoffice2john.py <ФАЙЛЫ OpenOffice / LibreOffice>

lion2john-alt.pl

Этот скрипт конвертирует Apple OS X Lion plist файл в «shadow» формат совместимый с John the Ripper.

В качестве зависимости необходимо установить модуль Data::Plist.

Для этого используйте любой из следующих способов:

1. CPAN shell:

perl -MCPAN -e shell
install Data::Plist

2. cpanm

cpanm Data::Plist

Использование

./lion2john-alt.pl <plist ФАЙЛ> ...

lion2john.pl

Извлекает солёные хеши SHA-512 из Mac OS X 10.7 Lion.

В качестве зависимости необходимо установить модуль Data::Plist.

Для этого используйте любой из следующих способов:

1. CPAN shell:

perl -MCPAN -e shell
install Data::Plist

2. cpanm

cpanm Data::Plist

Использование

./lion2john.pl PLIST-ФАЙЛЫ > ФАЙЛ-ПАРОЛЕЙ

lotus2john.py

Генерирует хеш для Lotus Notes.

Использование:

./lotus2john.py [ФАЙЛЫ Lotus Notes ID]

luks2john.py

Генерирует хеш для взлома пароля LUKS.

Использование

./luks2john.py [ФАЙЛЫ / ДИСКИ LUKS]

mac2john-alt.py

Эта программа помогает извлекать хеши паролей из систем OS X / macOS (>= Mountain Lion -> 10.8+).

Запустите эту программу в отношении файлов .plist, полученных из расположений /var/db/dslocal/nodes/Default/users/<ИМЯ-ПОЛЬЗОВАТЕЛЯ>.plist.

Использование:

./mac2john-alt.py <ФАЙЛЫ OS X / macOS .plist>

mac2john.py

Эта программа помогает извлекать хеши паролей из систем OS X / macOS (>= Mountain Lion -> 10.8+).

Запустите эту программу в отношении файлов .plist, полученных из расположений /var/db/dslocal/nodes/Default/users/<ИМЯ-ПОЛЬЗОВАТЕЛЯ>.plist.

Использование:

./mac2john.py <ФАЙЛЫ OS X / macOS .plist>

mcafee_epo2john.py

Конвертирует файлы паролей McAfee ePO в формат John.

ePO конфигурация хранится в сервере базы данных. Аутентификация может основываться на AD или на хеше SHA1, хранимом в базе данных.

Этот скрипт конвертирует CSV вывод таблицы dbo.OrionUsers в формат для john.

Вывод CSV должен соответствовать по крайней мере следующей схеме:

- столбец #1 -> Имя   (на самом деле не используется)
- столбец #2 -> AuthURI
- разделителем столбцов должен быть ","

Пример:

cat orion_users.csv # (извлечено из dbo.OrionUsers)

Вывод:

Name,AuthURI
system,auth:pwd?pwd=kDv1oBRuGOU3MnpIDbyBJEmJZ%2FauS1zf  <-- SHA1 based
adminepo,auth:ntlm?domain=XYZ&user=adminepo             <-- AD based

Генерация хеша и запуск атаки:

./mcafee_epo2john.py orion_users.csv > orion_hashes.txt
john -single orion_hashes.txt
Loaded 1 password hashes with 1 different salts (dynamic_24 [sha1($p.$s) 128/128 AVX 10x4x1])
Press 'q' or Ctrl-C to abort, almost any other key for status
system           (system)    

Использование:

./mcafee_epo2john.py [извлечения dbo.OrionUsers CSV]

monero2john.py

Извлекает «хеши» из баз данных Monero.

Использование:

./monero2john.py [ФАЙЛЫ Monero .keys]

ПРЕДУПРЕЖДЕНИЕ: поддерживаются только современные кошельки Monero JSON wallet (созданные после января 2016)!


money2john.py

Генерирует хеш из файлов MS Money.

Использование:

./money2john.py [ФАЙЛЫ MS Money 2002-2007 / Money Plus]

mongodb2john.js

Извлекает хеши из баз данных Mongo.

Использование:

mongo admin mongodb2john.js
mongo [ИМЯ-ХОСТА]:[ПОРТ]/[ИМЯ-БАЗЫ-ДАННЫХ] mongodb2john.js

mozilla2john.py

Помощник взлома пароля базы данных Mozilla (мастер пароля key3.db).

Mozilla сохраняет учётные данные в файле signons.sqlite используя кодирование base64, 3DES в режиме шифрования CBC и стандартное выравнивание блоков. Ключ расшифровки хранится в файле key3.db чьи записи зашифрованы мастер паролем.

Для проверки мастер пароля, расшифруйте запись password-check и она должна быть равной фиксированной строке «check-password\x00\x00«.

Использование:

mozilla2john [ФАЙЛЫ key3.db]

multibit2john.py

Генерирует хеш для взлома кошельков MultiBit Classic и HD wallets.

Использование:

./multibit2john.py [ФАЙЛЫ КОШЕЛЬКОВ MultiBit Classic или HD (.key, mbhd.wallet.aes, .wallet)]

MultiBit Classic -> для кошелька с именем ‘xyz‘, нужен файл xyz-data/key-backup/xyz*.key ИЛИ xyz-data/wallet-backup/xyz*.wallet.


neo2john.py

Вроде бы от кошелька Neo Blockchain, но документации нет.

Использование:

./neo2john.py [ФАЙЛЫ .db3]

network2john.lua

Из .pcap файлов извлекает:

  • Хеши RADIUS CHAP
  • Хеши аутентификации RADIUS
  • Хеши EAP-MD5
  • Хеши SNMPv3 USM
  • Хеши аутентификации DHCPv6
  • Хеши аутентификации DHCPv4
  • Хеши iSCSI CHAP
  • Хеши DHCP OMAPI

Для работы необходима Wireshark с включённой поддержкой Lua.

Использование:

tshark -q -Xlua_script:network2john.lua -r selected.pcap

Используйте это для разработки:

tshark -r selected.pcap -T pdml > data.pdml

office2john.py

Извлекает хешь из файлов MS Office для взлома в John the Ripp. Поддерживаются файлы MS Office 2003 / 2007 / 2010 / 2013.

olefile (ранее OleFileIO_PL), версия 0.42 2015-01-25. Модуль для чтения/записи файлов Microsoft OLE2 (также называемых структурированным хранилищем или форматом файлов составных документов Microsoft), таких как документы Microsoft Office 97-2003, файлы Image Composer и FlashPix, сообщения Outlook, …

Использование:

./office2john.py <зашифрованные файлы MS Office>

openbsd_softraid2john.py

В OpenBSD 6.1 softraid crypto переключился на bcrypt PBKDF вместо PKCS5 PBKDF2.

./openbsd_softraid2john.py [ОБРАЗ ДИСКА]

openssl2john.py

Эта утилита помогает во взломе зашифрованных файлов с использованием команды «openssl enc«.

openssl aes-256-cbc -in secret.txt -out secret.txt.enc
openssl aes-256-cbc -a -in secret.txt -out secret.txt.enc
openssl enc -aes-256-cbc -in secret.txt -out secret.txt.enc

Использование:

./openssl2john.py [-c cipher] [-m md] [-p plaintext] [-a ascii_pct] <ЗАШИФРОВАННЫЕ ФАЙЛЫ OpenSSL>

cipher может быть: 0 => aes-256-cbc, 1 => aes-128-cbc

md может быть: 0 => md5, 1 => sha1, 2 => sha256

ascii_pct: минимальный процент ascii (1-100) на зашифрованный вывод (игнорируется, если присутствует простой текст)

OpenSSL 1.1.0e использует aes-256-cbc с sha256


padlock2john.py

Извлекает хеши для взлома Padlock Android.

Использование:

./padlock2john.py [ФАЙЛЫ Padblock]

pcap2john.py

Объединяет несколько утилит конвертации pcap.

Использование:

python2 ./pcap2john.py [ФАЙЛЫ .pcap]

pdf2john.pl

Извлекает хеш из зашифрованных файлов PDF.

Использование:

./pdf2john.pl <ФАЙЛ(Ы) .pdf>

pem2john.py

Генерация хешей из .pem файлов, использующих формат PCKS #8.

Использование:

./pem2john.py <.pem файлы, использующие формат PCKS #8>

pfx2john.py

Генерация хеша для взлома защищённых паролем файлов PKCS12.

Использование:

./pfx2john.py <ФАЙЛЫ .pfx>

pgpdisk2john.py

Расшифровка дисков виртуальных дисков PGP, Symantec Encryption Desktop (SED).

Использование:

./pgpdisk2john.py [ФАЙЛ(Ы) PGP Virtual Disk .pgd]

pgpsda2john.py

Вычисляет хеш для взлома саморасшифровывающихся файлов архивов PGP — self-decrypting archive (SDA), Symantec Encryption Desktop (SED).

Использование:

./pgpsda2john.py [ФАЙЛЫ САМОРАСШИФРОВЫВАЮЩИХСЯ АРХИВОВ PGP]

pgpwde2john.py

Извлекает хеш из полностью зашифрованных образов дисков PGP WDE / Symantec Encryption Destop.

Использование:

./pgpwde2john.py [полностью зашифрованные образы дисков PGP WDE / Symantec Encryption Destop]

Пример:

./pgpwde2john.py hdd.raw

Пример:

./pgpwde2john.py /dev/sdb

prosody2john.py

Извлекает хеши из файлов .dat программы Prosody IM которые расположены в директории /var/lib/prosody/<ДОМЕН>/accounts.

Использование:

./prosody2john.py [ФАЙЛЫ prosody .dat]

pse2john.py

Этот скрипт можно использовать для анализа файлов PSE и извлечения зашифрованных материалов и данных в формате, который John the Ripper или другие инструменты взлома могут использовать для поиска ПИН-кода дешифрования.

Использование:

python2 ./pse2john.py <ФАЙЛЫ .pse>

ps_token2john.py

Парсер токена Oracle PS_TOKEN.

Использование:

python2 ./ps_token2john.py [-h] -c COOKIE

Опции:

  -h, --help  показать справку и выйти
  -c COOKIE   Указать для парсинга кукиPS_TOKEN жертвы

putty2john

Поддерживаемые типы ключей: RSA, DSA, ECDSA, ED25519.

Использование:

putty2john [ФАЙЛ(Ы) ПРИВАТНЫХ КЛЮЧЕЙ .ppk PuTTY]

pwsafe2john.py

Обрабатывает файлы Password Safe и создаёт хеш для взлома в JtR.

Использование:

./pwsafe2john.py [ФАЙЛЫ .psafe3]

racf2john

Использование:

racf2john [БИНАРНЫЕ ФАЙЛЫ RACF]

radius2john.pl

Утилита для извлечения хеша и брут-форса RADIUS shared-secret.

В качестве зависимости необходимо установить модуль Net::Pcap.

В Debian, Kali Linux и их производные это делается командой:

sudo apt install libnet-pcap-perl

В Arch Linux, BlackArch и их производные это можно сделать командой:

sudo pacman -S perl-net-pcap

Также необходимы ряд модулей PERL, для их установки в любой системе выполните:

perl -MCPAN -e shell
install CPAN::DistnameInfo
install NetPacket::IP
install Net::Radius::Dictionary

Использование:

./radius2john.pl <ФАЙЛЫ pcap>

radius2john.py

Утилита для извлечения хеша и брут-форса RADIUS shared-secret.

Использование:

./radius2john.py <ФАЙЛЫ pcap>

rar2john

Извлекает хеш из зашифрованных архивов RAR.

Использование:

./rar2john <rar файл(ы)>

Опция -v увеличивает вербальность вывода.

Формат строки вывода:

Для типа = 0 для файлов зашифрованных с опцией «rar -hp …»

archive_name:$RAR3$*type*hex(salt)*hex(partial-file-contents):type::::archive_name

Для типа = 1 для файлов зашифрованных с опцией «rar -p …»

archive_name:$RAR3$*type*hex(salt)*hex(crc)*PACK_SIZE*UNP_SIZE*0*archive_name*offset-for-ciphertext*method:type::file_name

или

archive_name:$RAR3$*type*hex(salt)*hex(crc)*PACK_SIZE*UNP_SIZE*1*hex(full encrypted file)*method:type::file_name

sap2john.pl

Этот скрипт Perl конвертирует хэши паролей, загруженные из систем SAP, в формат, подходящий для John the Ripper (выводит в stdout).

Использование:

./sap2john.pl <input-file> [A|B|D|E|F|H]

Для чтения из стандартного ввода:

./sap2john.pl - [A|B|D|E|F|H]

Подробное описание опций дано в исходном коде скрипта.


signal2john.py

Извлечение хеша для взлома пароля мессенджера Signal.

Современные версии Signal не поддерживают парольную фразу.

Скрипт был протестирован только с Signal 4.13.5.

Выполнить с файлом /data/data/org.thoughtcrime.securesms/shared_prefs/SecureSMS-Preferences.xml.

В современной версии приложения Signal для Android (например, 4.19.3) код блокировки экрана хранится в виде открытого текста в файле SecureSMS-Preferences.xml!

Использование:

./signal2john.py [ФАЙЛЫ SecureSMS-Preferences.xml]

sipdump2john.py

Обрабатывает файлы вывода sipdump (файлы дампов) в формат, подходящий для использования с JtR.

Использование:

./sipdump2john.py <ФАЙЛЫ ДАМПОВ sipdump>

ssh2john.py

Извлекает хеши из приватных ключей RSA/DSA/EC/OpenSSH.

Использование:

python2 ./ssh2john.py <ФАЙЛ(Ы) ПРИВАТНЫХ КЛЮЧЕЙ RSA/DSA/EC/OpenSSH>

sspr2john.py

Утилита для получения хэшей NetIQ SSPR от сервера LDAP.

Использование:

sspr2john.py [-h] -H ХОСТ [-p ПОРТ] -b BASEDN [-s] [-D BINDDN] [-w ПАРОЛЬ]

Опции:

  -h, --help            показать справку и выйти
  -H ХОСТ, --host ХОСТ  Формат такой: ad.example.net или 192.168.124.10
  -p ПОРТ, --port ПОРТ  Формат такой: 389 или 636
  -b BASEDN, --basedn BASEDN
                        Формат такой: CN=Users,DC=EXAMPLE,DC=NET
  -s, --secure          Использовать LDAPS (LDAP OVER SSL), рекомендуется
  -D BINDDN, --binddn BINDDN
                        Формат такой: CN=<username>,CN=Users,DC=EXAMPLE,DC=NET или <username>
  -w ПАРОЛЬ, --password ПАРОЛЬ
                        Пароль для привязки LDAP

staroffice2john.py

Утилита staroffice2john.py преобразует файлы StarOffice в формат, подходящий для использования с JtR.

Эта утилита ранее называлась sxc2john.py.

Использование:

./staroffice2john.py <ФАЙЛЫ StarOffice (.sxc, .sdw, .sxd, .sxw, .sxi)>

strip2john.py

Обрабатывает файлы STRIP в подходящий формат для использования с JtR.

Выходной формат:

filename:$strip$*data

Использование:

./strip2john.py <ФАЙЛЫ STRIP>

telegram2john.py

Утилита для извлечения «хэшей» из файла(ов) userconfing.xml приложения Telegram Android и из файла (map) локального хранилища Telegram Desktop.

Использование:

./telegram2john.py <ФАЙЛ(Ы) userconfing.xml / <путь до директории с данными Telegram>

Пример (Linux):

./telegram2john.py ~/.local/share/TelegramDesktop

Пример (Windows):

./telegram2john.py "C:/Users/Name/AppData/Roaming/Telegram Desktop"

tezos2john.py (и test_tezos2john.py)

Создает файл Tezos для John The Ripper.

Использование:

tezos2john.py [-h] [-i] [-I]

Опции:

  -h, --help            показать справку и выйти
  -i, --ignoreRules, --ignorerules
                        Игнорировать все правила, исходные слова, контрольную сумму, ...
  -I, --ignoreICORules, --ignoreicorules
                        Не проверяйте, является ли это допустимый формат ICO (15 исходных слов)

truecrypt2john.py

Утилита для импорта тома TrueCrypt в формат, который может взломать John The Ripper.

Использование:

./truecrypt2john.py [-b] ФАЙЛ_ТОМА [ФАЙЛ(Ы)_КЛЮЧЕЙ]> ФАЙЛ_ВЫВОДА

Опции:

  -h, --help  показать справку и выйти
  -b          

Включите -b только при атаке режима загрузки TrueCrypt.


uaf2john

Использование:

uaf2john uaf_file

vdi2john.pl

Преобразует файлы *.vbox (которые содержат информацию о шифровании связанного файла *.vdi) в правильный формат для обработки jtr.

Читает данные из STDIN.


vmx2john.py

Использование:

./vmx2john.py [ФАЙЛЫ .vmx]

vncpcap2john

Извлекает хеши из файлов с рукопожатием VNC сессии для взлома в паролей в John the Ripper.

Использование:

./vncpcap2john <ФАЙЛЫ pcap>

wpapcap2john

Преобразует файлы PCAP или IVS2 в формат JtR.

Поддерживаемые инкапсуляции: 802.11, Prism, Radiotap, PPI и TZSP через UDP.

Использование:

./wpapcap2john [ОПЦИИ] <ФАЙЛ(Ы)>

Опции:

-c		Показывать только полные аутентификации (неполные могут быть неправильными паролями,
		но их всё равно можно взломать чтобы узнать, какие пароли были испробованы).
-v		Увеличивает вербальность (можно использовать несколько раз, попробуйте -vv)
-d		Не подавлять дублирующие хеши (на пару AP/STA)
-r		Игнорировать replay-count (может выводить бракованные рукопожатия)
-f <n>		Указать время задержки между элементами рукопожатия, при котором оно считается бракованным +/- <n>
-e <essid:mac>	Вручную добавить пару(ы) Name:MAC в случае, если в файле отсутствуют маячки (beacons).
		Например, -e "Magnum WIFI:6d:61:67:6e:75:6d"
-m <mac>	Игнорировать любые пакеты, не включающие в себя этот MAC адрес

zed2john.py

Использование:

./zed2john.py [zed АРХИВЫ]

zip2john

Извлекает хеш из зашифрованных ZIP архивов для взлома пароля в John the Ripper.

Использование:

./zip2john [ОПЦИИ] [ФАЙЛ(Ы) zip]

Опции:

 -s Сканировать архив с самого начала в поисках локальных заголовков файлов. Это менее
    надёжно, чем использование центрального индекса, но может лучше работать с
    повреждёнными или разделёнными архивами.

Опции только для ‘старых’ зашифрованных файлов PKZIP:

 -a <ИМЯ-ФАЙЛА>   Это "известный" ASCII файл. Это может быть быстрее, ЕСЛИ все
    файлы большие, и вы ЗНАЕТЕ, что по крайней мере один из них начинается с "чистых"
    ASCII данных.
 -o <ИМЯ-ФАЙЛА>   Использовать только этот файл из .zip файла
 -c Это создаст хеш "только контрольная сумма". Если есть много зашифрованных файлов в файле .zip, 
    то это может быть вариантом, и будет достаточно данных чтобы ложные срабатывания не были видны. 
    Если .zip — это 2 байта контрольной суммы и их 3 и более, то мы имеем 48 бит знания, которые 
    "могут" быть достаточными для взлома пароля без необходимости пользователю иметь в наличии 
    .zip файл.
 -m Использование "файловой магии" в качестве известного простого текста, если это применимо.
    Это немного быстрее, но не во всех ситуациях на 100% безопасно.
 -2 Вычислить вычисление 2 байт контрольной суммы.

ПРИМЕЧАНИЕ. По умолчанию предполагается, что все файлы в каждом архиве имеют одинаковый пароль. Если это не так, полученный хэш может оказаться не поддающимся взлому. Чтобы этого избежать, используйте параметр -o, чтобы выбирать разные файлы и создавать отдельные хеши для каждого из них.


Другие утилиты для извлечения хешей

hcxtools

hcxtools — это небольшой набор инструментов для конвертации захваченных пакетов Wi-Fi. Умеет конвертировать между различными форматами и хешами для использования с последними версиями hashcat или John the Ripper.

Для John the Ripper поддерживаются следующие режимы хешей: WPAPSK-PMK, PBKDF2-HMAC-SHA1, chap, netntlm, tacacs-plus

hcxkeys

hcxkeys — это небольшой набор инструментов для генерации радужных таблиц plainmasterkeys (для взлома Wi-Fi) и хэшей для использования с последними версиями hashcat и последними версиями John the Ripper.

Что нужно знать при публикации хешей

Считается неэтичным (возможно, в некоторых странах даже противозаконным) публиковать чужие хеши, поскольку их расшифровка означает получение пароля и возможную утечку личных данных.

Также нужно понимать, что расшифровка некоторых хешей означает получение приватного ключа. К примеру, если вы опубликовали хеш от кошелька Биткоин, и кто-то его расшифровал, то стороннее лицо может управлять вашим кошельком, в том числе переводить деньги.

Связанные статьи:

  • Полное руководство по John the Ripper. Ч.1: знакомство и установка John the Ripper (100%)
  • Инструкции по использованию John the Ripper (77.5%)
  • Полное руководство по John the Ripper. Ч.3: как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы) (77.5%)
  • Полное руководство по John the Ripper. Ч.4: практика и примеры использования John the Ripper (77.5%)
  • Полное руководство по John the Ripper. Ч.5: атака на основе правил (77.5%)
  • Кража паролей и обход двухфакторной аутентификации с evilginx2 (RANDOM — 3.5%)

Время на прочтение
6 мин

Количество просмотров 33K

На данный момент хэш можно вскрыть пятью способами: грубый перебор (брутфорс), подбор по словарю, по словарю с правилами (гибридная атака), rainbow таблицы (радужные таблицы) и криптоатака. Сами хэши можно разделить на обычные хэши, и хэши с солью (salt, «затравка»). Эта статья посвящена программам john и mdcrack. На их примере, также рассмотрим основные методы для реализации брутфорса.

john

John the Ripper password cracker предназначен для вскрытия различных типов хэшей, которые применяются во множестве ПО и ОС, от MySQL до OpenBSD. В программе реализованы возможности: брутфорс пароля, подбор пароля по словарю и гибридная атака. А также signle и external способы подбора пароля, специфичные для этой программы. О всех способах будет рассказано ниже.

В программе имеется возможность восстанавливать процесс подбора после его прерывания.

Одной из особенностей программы является тот факт, что при вскрытии большого количества паролей «за раз», велика возможность того, что они вскроются быстрее, чем бы вскрылись по отдельности. А также инкремент пароля производится «интеллектуально», о чём будет сказано ниже.

В программе имеются два ограничения: john может вскрывать хэши только с солью — для вскрытия обычных хэшей вам потребуется соответствующий патч или готовая спец. сборка программы; можно брутфорсить пароль длиной не более 8-ми символов (но при атаке по словарю такого лимита нет).

Salt (соль, «затравка») — это метод усложнения вычисления хэша. К примеру, во FreeBSD, при вычислении хэша от пароля, сначала генерируются два случайных символа, которые конкатенируются к паролю, от полученной строки вычисляется хэш, и к полученному хэшу прибавляются эти два символа, давая результирующий хэш.

Для тестирования скорости программы на вашем компьютере, запустите её с флагом ‘—test’. Результат будет выдан в c/s, т.е. в символах в секунду, а не в h/s (хэш в секунду), как это принято в других программах этого типа. Но каждый следующий символ образует новый пароль. А значит, перебирая, к примеру, 3500 символов в секунду, мы генерируем 3500 новых паролей в секунду. Следовательно, цифры, которые даёт команда john —test — это и есть хэши в секунду.

Для начала работы программы, запишите вскрываемый хэш в файл: user:hash, где user — это любая строка, и hash — вскрываемый вами хэш. Если вам требуется вскрыть сразу несколько хэшей, то нужно записать их всех в один файл. Как сказано выше, велика вероятность того, что так все хэши вскроются быстрее, чем если бы они были записаны в разные файлы по отдельности. Например, создадим файл bla.pass такого содержания:

user1:$1$yHJlM1Y9$lzO5yVj6Drepbz6xje0wq0
user2:$1$RDBUtZMr$z8acZKa5XzY0vQuUwG6Un1
user3:$1$EP5lm7ex$poOrQvYoH78Bc63nhXx1p1
user4:$1$ths1/RY5$CUR32fPoOr/UcjeBpD4fx0

Что бы начать перебор, дайте команду john bla.pass. Программа скажет о количестве загруженных хэшей, о количестве различных salt-ов (в старых unix-системах salt был фиксированным, т.е. одинаковым у всех паролей) и о типе хэшей. Тип хэша может определится не верно. Так, если попытаться вскрыть обычный md5_128bit (без salt), то рассматриваемая в этой статье версия john-а определит этот хэш как NT LM DES, и начнёт подбор пароля, заведомо безрезультатно.

После начала перебора, может пройти вечность до того, как пароль вскроется. Что бы попытаться вскрыть пароль в разумные сроки, у john-а есть целый арсенал различных типов подбора (режимов работы), правил, фильтров и гибкий файл конфигурации. Далее будут коротко рассмотрены режимы работы john-а. Дополнительную информацию читайте в документации к программе.

Итого, john имеет 4 режима работы, т.е. 4 способа вскрытия пароля: single crack, wordlist, incremental и external.

Single crack mode

— поиск пароля по косвенным уликам. Первыми кандидатами в пароли становятся имя пользователя, «GECOS», «Full Name» — поля его учётной записи и название домашней директории пользователя. А также используются правила (гибридная атака) для полученных данных, и возможных паролей становиться больше. Но не так много как в прилагаемом к программе словаре. Поэтому это самый быстрый способ. Он завершает свою работу (перебирает все возможные этим способы варианты паролей) за несколько секунд.

В GECOS-поле пользователь может записать дополнительные данные о себе, такие как номер телефона, дату рождения и т.п.

Wordlist

— подбор пароля по словарю. Основной словарь весит более чем 600 Mb, распространяется на двух дисках. В нём собраны наиболее употребляемые пароли более чем на 20 языках. Стоит этот сборник паролей 28.25$. Также доступен малый сборник паролей размером 11 Mb. Эффективность этого сборника сомнительна, поскольку он также содержит пароли на более чем 20 языках. У режима wordlist есть «подрежим»: wordlist с правилами (rulets). Это гибридный вид подбора пароля. Набор применяемых правил можно изменять и дополнять своими. Правила описаны в файле конфигурации спецсимволами и специальными флагами, которые читает и обрабатывает john-овский препроцессор правил.

Вы можете скачать некоторые очень полезные словари с сайта passwords.ru

Incremental — грубый перебор, т.е. брутфорс. Настройки перебора хранятся в файле конфигурации. При переборе, программа равномерно распределяет частоту инкремента по длине пароля и набору символов (That’s one reason why this mode deals with trigraph frequencies, separately for each character position and for each password length, to crack as many passwords as possible within a limited time). Есть пять подрежимов инкрементного режима: «All», «Alnum», «Alpha», «Digits» и «LanMan». К примеру «Digits» будет перебирать лишь цифры, «Alpha» — лишь строчные латинские буквы. Также есть возможность создания своего подрежима инкрементного режима. Подробнее — в документации.

External — этот режим даёт возможность применять «фильтры», описанные в файле конфигурации на языке Си с использованием четырёх callback-функций. С помощью этого можно написать свой алгоритм перебора. Но несколько основных уже написаны в файле конфигурации, и ими можно пользоваться.

Все режимы можно совмещать. По дефолту (если не указывать режим и ничего не менять в конфигах) программа сначала отработает single-режим, затем попытается подобрать пароль по словарю, прилагаемому к программе (всего лишь 3108 паролей), затем начнёт перебор паролей (перейдёт в инкрементный режим) длиной от 0 до 8 с азбукой в 96 символов (латинские строчные, латинские заглавные, цифры и символы).

Практический совет: пробуйте сначала те режимы и подрежимы, которые заканчивают свою работу (в случае неудачи) быстрее всех. После завершения работы в режимах single, wordlist и wordlist with rulets, вы, вероятно, начнёте брутфорсить пароль в подрежиме «All». Это может оказаться вашей большой ошибкой, которая отнимет у вас слишком много времени. Вместо этого, сначала попробуйте более быстрые подрежимы в порядке возрастания количества символов: «Digits» (10 цифр), «Alpha» (26 латинских строчных букв), «Alnum» (36 символов — буквы + цифры) и т.п. Поскольку пользователи часто используют простые пароли, сперва следует попробовать более быстрые подрежимы инкрементного перебора. Это может значительно сэкономить вам время.

mdcrack

Программа нацелена на достижение максимальной скорости перебора пароля. Версия программы 1.2 имеет открытый исходный код, но поддерживает всего лишь три вида хэшей: MD4, MD5 и NTLM1. Программа версии 1.5 и 1.7 поддерживает большее число хэшей, в том числе и md5_freebsd, но исходный код в открытом виде не предоставляется. Программу mdcrack удобно использовать для брутфорса, когда стандартная сборка программы john вам не подошла, т.е. когда вам необходимо вскрыть хэш без соли (без salt).

Пример вызова программы mdcrack:

mdcrack -s qwertyuiopasdfghjklzxcvbnm -S 7 c8e5b031cee3fe69955e63f8c5e11509.

После этой команды создастся «сессия», и если вы прервёте перебор, дайте команду mdcrack (без параметров) для возврата к прерванной сессии. Для удаления сессии, дайте команду mdcrack -d.

По завершению или после прерывания работы программы, она выдаёт информацию о производительности компьютера (среднее количество хэшей в секунду).

Флаг -W используется для создания файла предварительно рассчитанных пар pass:hash. Для чтения такого файла используется флаг -R. Для более быстрой работы чтения/записи используется флаг -F.

Флаги -b и -e используются для указания challegne-значения. В некоторых протоколах передачи данных, передаваемый хэш пароля шифруется (вычисляется хэш от передаваемого хэша). Пароль, на который он шифруется в данном контексте называется challegne.

Стоит отметить, что программа mdcrack ищет в хэше коллизии. Дело в том, что одному хэшу может соответствовать несколько паролей (но вероятность этого очень мала), причём разной длины. Если пользователь задал пароль из 9 символов, при подборе такого пароля может выясниться, что другой, более короткий пароль, к примеру из двух символом, имеет точно такой же хэш. И если его ввести атакуемой системе — он будет воспринят как правильный.

Тематические ссылки

  • Статья «Заметки: какой брутер выбрать?»: forum.antichat.ru/showthread.php?t=37651
  • Словари для вскрытия хэша, и не только: www.passwords.ru

Perhaps you need a quick overview on how to use the password-cracking tool John the Ripper, or you may be a beginner and wondering why you haven’t been able to get it to work. If that’s you, you’ve come to the right place. We’ve prepared a straightforward tutorial on how to use John the Ripper for you.

A must-have in the pentester’s toolkit, John the Ripper cracks passwords using a rainbow table approach: comparing them with an inbuilt table of hashes. We’ll review John the Ripper’s three major password-cracking modes and several usage examples, with short exercises for those new to this ruthless tool.

But be warned: We don’t condone using John the Ripper for malicious purposes. With great power comes great responsibility.

Without further ado, let’s get cracking.

Table Of Contents

  1. What Is John the Ripper?
  2. John the Ripper Command Generator
  3. Modes for Cracking Passwords
  4. Cracking Passwords With John the Ripper
  5. Other Useful Commands
  6. Conclusion
  7. Frequently Asked Questions

What Is John the Ripper?

Jack the Ripper was a murderer in 1888 in London, England. Just as people exposed to Jack the Ripper died, passwords exposed to John the Ripper are no longer secret.

You can deploy John the Ripper inside Kali Linux with the following terminal command instantly:

john

Hence, for simplicity, we’ll call John the Ripper “John” from this point onward. John’s various options help you customize your experience uncovering passwords:

john -h

John the Ripper Command Generator

Say goodbye to the hassle of trying to remember the exact syntax for your John the Ripper commands! With our John the Ripper Command Generator, you can simply say what you need John the Ripper to do, and we will generate the command for you.

Modes for Cracking Passwords

John the Ripper offers three main password-cracking modes: Single, Wordlist, and Incremental.

Single Crack Mode

Our example here is a username-password pair based on the 1986 Tom Cruise movie, which released its sequel in 2022.

In Single Crack Mode, John takes a string and generates variations of that string to generate a set of passwords. For example, you can use this Mode to generate password variations of the username “topgun” with the corresponding password “Topgun” (or TopGun, ToPgUn, tOpGuN, and so on).

Use the --format flag to specify the hash type and the --single (-si) flag to let John know we want to use the Single Crack Mode.

Afterward, we’ll crack more complex passwords with John’s Wordlist Mode.

Single Crack Mode

Try this exercise

  1. Designate a short string (topgun) as a username and variations on its capitalization as the password (such as Topgun).
  2. Show the output of the SHA-256-hashed password: echo -n 'Topgun' | sha256sum
  3. Create a new text file (simple.txt) to store the username and the password hash value from prior steps: echo -n 'topgun:4558ce5abe3b1e70bbadc3b95f2ff84f54d0a5c30fb524ceebfd401f8233fda7' > simple.txt
  4. Run simple.txt through John the Ripper’s Single Crack Mode (change the --format argument as you see fit): john --single --format=raw-sha256 simple.txt
  5. Get results.

Try this exercise

A self-contained tutorial on generating a password for Single Crack Mode

Oops: If you hash your desired password with the following wrong command instead, you’ll hash an unintended line break at the end:

echo Topgun | sha256sum # wrong command

Wordlist Mode

In Wordlist Mode, we’ll provide John with a list of passwords. John will generate hashes for them in real-time and compare them with our password hash. In this example, we will use the well-known RockYou wordlist, which you can preview at

cat /usr/share/wordlists/rockyou.txt | less

Feel free to copy it to your current working directory to simplify the commands using the --wordlist (-w) flag:

cp /usr/share/wordlists/rockyou.txt rockyou

Now let’s pass text files containing password hashes through John:

john --wordlist=rockyou --format=raw-sha256 crack.txt

john -w=rockyou --format=raw-sha256 crack.txt

Wordlist Mode

Try this exercise

  1. Pipe a hash based on one or more dictionary words (optionally with numbers) to SHA-256: echo -n 'password1234' | sha256sum
  2. Write your username, a colon (:), and the hash as a single long string into a new text file (crack.txt): echo user01:b9c950640e1b3740e98acb93e669c65766f6670dd1609ba91ff41052ba48c6f3>>crack.txt
  3. Repeat Steps 1 and 2 to generate as many username-password pairs as desired and append them to crack.txt.
  4. Run crack.txt through John the Ripper’s Wordlist Mode: john --wordlist=rockyou --format=raw-sha256 crack.txt
  5. Get results.

Try this exercise

Left: John the Ripper Wordlist Mode in action

Right: Generating hashes for three simple passwords

John finds these three passwords rapidly. The weaker the password is, the faster John cracks them.

Let’s move on to John’s final Incremental Mode.

Incremental Mode

In Incremental Mode, John tries all possible character combinations as passwords. This process can be time-consuming if the password is too long or if alphanumeric characters and symbols comprise the password.

You won’t use this Mode unless you don’t have any other options. Typically, a combination of social engineering attacks and Wordlist Mode will help you uncover most passwords.

The syntax for Incremental Mode is:

john --incremental --incremental-charcount=N --format=FORMAT passwords_to_crack.txt

john -inc --incremental-charcount=N --format=FORMAT passwords_to_crack.txt

Let’s break down each flag:

Incremental Mode flags

  • The --incremental (-inc) flag tells John to use the Incremental Mode.
  • The --incremental-charcount=N  flag, where N is a positive integer, is for setting the maximum number of digits in the password.
  • The --format option tells John the hash type of your passwords.

Incremental Mode flags

Try this exercise

  1. Pipe a hash on a simple alphanumeric password to SHA-256: echo -n 'passw0rd' | sha256sum
  2. Write your username, a colon (:), and the hash as a single long string into a new text file (inc.txt): echo user02:8f0e2f76e22b43e2855189877e7dc1e1e7d98c226c95db247cd1d547928334a9>>inc.txt
  3. Run inc.txt through John the Ripper’s Wordlist Mode: john --incremental --format=raw-sha256 inc.txt
  4. Get results.

Generated password hashes

Generated password hashes

Cracking password hashes in Incremental Mode

Cracking password hashes in Incremental Mode

Now that we know how to use John the Ripper, we shall move on to specific use cases.

Cracking Passwords With John the Ripper

Now that we know the different modes, let’s examine some real-world examples of when and how to crack passwords with John.

Choosing a Wordlist

John’s default Wordlist is a file located in /usr/share/john/password.lst in Kali Linux, but its power is finite compared with custom wordlists such as those found by John’s developer OpenWall https://www.openwall.com/wordlists/. 

Apart from RockYou, the Wordlists all.lst (downloadable as all.gz) and huge.lst are good candidates for the --wordlist flag.

Edit the Wordlist by amending the following line in /usr/share/john/john.conf:

Wordlist = $JOHN/password.lst

Choosing a Wordlist

To make John work more efficiently, remove duplicate entries from and sort the contents of your chosen Wordlist file.

Cracking ZIP files

John has a utility called zip2john. zip2john helps us to get the hash from zip files. Other “2john” utilities exist, such as the rar2john utility for cracking a RAR file.

To crack a password-protected ZIP file, we first get the hash of the ZIP file’s password:

zip2john file.zip > zip.hashes

This command gets the hash from the ZIP file and stores it in the zip.hashes file.

Now you can crack the hash with John:

john zip.hashes # Single Crack Mode

john --wordlist=rockyou zip.hashes # Using the RockYou wordlist

Cracking ZIP files

Try this exercise

  1. Create a password-protected ZIP archive (classified.zip) on Kali Linux: right click on a file/folder, select “Create Archive…”, choose “ZIP” as the compression method, expand “Other options” to give it a weak password, and click “Create.”
  2. Export the ZIP hash to zip.hashes: zip2john classified.zip > zip.hashes
  3. Run zip.hashes through John the Ripper: john zip.hashes
  4. Get results.

Step 1: Create a password-protected ZIP archive on Kali Linux

Create a password-protected ZIP archive on Kali Linux

Steps 2 to 4: zip2john followed by John the Ripper usage

zip2john followed by John the Ripper usage

Cracking SSH Keys

The ssh2john utility creates a hash from your private key file. If your private key file path is /home/kali/.ssh/id_rsa, and you want to store the hash as myHash.txt, the syntax is:

ssh2john /home/kali/.ssh/id_rsa > myHash.txt

Cracking SSH Keys

Cracking SSH Keys

Try this exercise

  1. Use the following command to generate an RSA key pair with a passphrase: ssh-keygen
  2. Export the hashed private key file to a new file (myHash.txt): ssh2john /home/kali/.ssh/id_rsa > myHash.txt
  3. Run myHash.txt through John the Ripper: john --wordlist=rockyou myHash.txt
  4. Get results

Step 1: Demo of ssh-keygen

Demo of ssh-keygen

Cracking Linux Passwords

Linux stores password data in two files:

  • /etc/passwd stores information such as username, user id, and login shell;
  • /etc/shadow is the password file containing data such as hash and expiry date.

A utility bundled with John the Ripper called unshadow can combine both files for cracking. Here, we’ll name the combined file lin.txt:

unshadow /etc/passwd /etc/shadow > lin.txt

Cracking Linux Passwords

Cracking Linux hashes is tricky; Kali Linux’s John the Ripper doesn’t readily detect the hash type of Linux (crypt), where the --wordlist flag is optional. If you omit the --format flag below, John won’t crack anything at all:

Once John has uncovered the passwords, you may view them using the command below:

john --show --format=crypt lin.txt

John has uncovered the passwords

Try this exercise

  1. Create a new user on Kali Linux: sudo useradd user1
  2. Give the new user a weak password: sudo passwd user1
  3. Repeat steps 1 and 2 as desired to create two more new user accounts user2 and user3 with weak passwords.
  4. Unshadow the Linux password hashes for all users: unshadow /etc/passwd /etc/shadow > lin.txt
  5. Export only the usernames and passwords of the three new users to a new file (lin3.txt): tail -n -3 lin.txt > lin3.txt
  6. Run it through John the Ripper: john --format=crypt --wordlist=rockyou lin3.txt
  7. Get results.

Try this exercise

Cracking Windows Passwords

Windows stores hashed passwords in the SAM database. SAM uses the LM/NTLM hash format for passwords. As getting passwords from the SAM database is beyond the scope of this article, we suggest generating your own LM/NTLM hashes to test out this functionality and echo them to a text file, say win.txt, as shown in the demonstration:

The syntax for cracking this file containing the LM/NTLM hashes is the following, where the --wordlist flag is optional:

john --format=LM [--wordlist=rockyou] win.txt

Once John has uncovered the passwords, you may view them using the command below:

john --show --format=LM win.txt

Cracking Windows Passwords

Try this exercise

  1. Designate a short string (topgun) as a username and variations on its capitalization as the password (such as Topgun).
  2. Pass the password from step 1 into an LM/NTLM hash function, such as via a website as shown below.
  3. Create a new text file (ntlm.txt) to store the username and the password hash value from prior steps: echo -n 'topgun::0BA224CF1C751F31AAD3B435B51404EE:D66B0428599B168372A76C8AB73A76A2:::' > ntlm.txt
  4. Run ntlm.txt through John the Ripper’s Single Crack Mode (change the --format argument as you see fit): john --format=LM --single ntlm.txt
  5. Get results. The capitalization of the cracked password may differ from what you’ve intended.

Step 2:

Step 2

Step 3 and 4:

Step 3 and 4

Choosing Specific Hashes to Crack

If you want to override John’s behavior of discovering the hash independently, you may tell John which hash type you’re looking for using the --format=HASH_TYPE flag. Choices for HASH_TYPE include Raw-MD (MD5), Raw-SHA1 (SHA-1), Raw-SHA256 (SHA-256), SSH, RADIUS, TACACS-Plus (TACACS+), ZIP, and RAR.

You can find all hash formats John supports using the following commands:

john --list=formats

john --list=subformats

Other Useful Commands

Here is a brief cheat sheet of John the Ripper commands:

Flag Description
--show FILE Show cracked passwords based on hashes from FILE
--rules, -ru Enable word-mangling rules to teach John the Ripper how to generate passwords
--status Print the status of an interrupted or running session
--session=NAME Give a new John the Ripper session a NAME, to which John will form the session file name NAME.rec; useful for running multiple instances of John in parallel or to be able to recover later a session other than the last one you interrupt
--restore[=NAME] Continue an interrupted cracking session, reading state information from the specified session file or the default session at the file path $JOHN/john.rec
--save-memory=LEVEL Enable memory saving at LEVEL 1, 2, or 3.
Level 1 tells John not to waste memory on login names, and may speed things up.
Levels 2 and 3 reduce John’s use of performance optimizations involving large lookup tables and thus may impact performance negatively.
--test[=TIME] Run tests (and benchmarks, unless TIME is explicitly 0), each spanning TIME seconds
& This symbol only applies to Kali Linux and other Unix-based operating systems.
When you put this symbol at the end of a John the Ripper command, you run it in the background.
--format=NAME Specify the hash type for John the Ripper to detect
--list=formats, --list=subformats Reveal the hash types John the Ripper supports
--single, -si Enable Single Crack Mode
--wordlist=FILE, -w=FILE Enable Wordlist Mode, specifying a Wordlist (dictionary attack)
--incremental, -inc Enable Incremental Mode

Find the complete official documentation for John the Ripper here.

Conclusion

We hope learning how to use John the Ripper helps you, whether you’re exploring cyber security or aiming to become a professional hacker or penetration tester. For more resources, read our blog posts on hacking and check out our courses below:

Frequently Asked Questions

What can I crack with John the Ripper?

You can crack popular hash formats such as MD5, SHA-1, several DES variants, and Blowfish. Get the full list using the command john --list=formats on the Linux terminal.

How long should John the Ripper take?

Single Crack Mode usually runs for under a second to about a day, depending on the hash type and password length. The more complex your passwords are, the longer it takes; it may take years to crack certain passwords. You may find a detailed answer to this question in the FAQ on John the Ripper’s official documentation.

How does John the Ripper guess passwords?

John the Ripper uses a rainbow table approach: it hashes the guessed password and compares it to the list of password hashes you feed into it. If the hashes match, John remembers the plaintext password associated with it and can return that to the attacker.

Where can I find John cracked passwords?

Use the --show flag and an additional --format flag denoting the hash type if necessary. Example: john --show --format=raw-sha256 crack.txt

Does John the Ripper cost money?

No. It comes free with Kali Linux or as a standalone downloadable utility.

What are the alternatives to John the Ripper?

Another well-known password cracker is Hashcat.

When should I use John the Ripper vs. Hashcat?

Hashcat can do complex cracking using a GPU, but you must adjust its settings to identify the hash yourself. It also requires OpenCL to work. On the other hand, John the Ripper optimizes CPU usage. It seeks quick wins, detects your hash type, and excels in simpler jobs. Experientially it’s also a better choice for cracking SSH keys.

Level Up in Cyber Security: Join Our Membership Today!

  • Cassandra Lee

    Cassandra is a writer, artist, musician, and technologist who makes connections across disciplines: cyber security, writing/journalism, art/design, music, mathematics, technology, education, psychology, and more. She’s been a vocal advocate for girls and women in STEM since the 2010s, having written for Huffington Post, International Mathematical Olympiad 2016, and Ada Lovelace Day, and she’s honored to join StationX. You can find Cassandra on LinkedIn and Linktree.

    View all posts

Понравилась статья? Поделить с друзьями:
  • Руководство федеральной научно технической программой осуществляет
  • Daihatsu 6dk 20 инструкция на русском
  • Борглюконат кальция для животных инструкция по применению для лошадей
  • Руководство учителя в педагогике это
  • Руководство по перерождению аллоды