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:
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”.
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.
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
.
Это уже самая новая версия. Первый шаг — объединить предоставленные пароли и теневые файлы в один файл. Для этого есть команда unshadow, которая является частью пакета John. Команда выглядит следующим образом:
Имя текстового файла, можете указать по-другому.
Посмотрим содержимое файла, с помощью команды «cat»:
Хорошо, у нас есть пользователь и хеш! Идеально! Начнем с джона в одиночном режиме. Команда: «john -single unshadowed.txt ----format=crypt
»:
Не пугайтесь такого вывода, потому что у Вас, при первом взломе хешей будет отображение взломанных паролей системы из файла, который мы создавали ранее.
Будет примерно такой вывод (не обращайте внимание на команду):
Проверим, нашел ли John что-нибудь. Это команда: «john --show unshadowed.txt
»:
Мы замечаем, что он взломал два пароля: пароль пользователя Kali, по умолчанию, начиная с версии 2020.1, является «kali», и пароль пользователя «test». Всего за несколько секунд он взломал пароль по умолчанию пользователя Kali Linux. И снова говорю, что одиночный режим хорош только для взлома очень простых паролей. Когда John находит пароль, он сохраняет его в файле, в домашнем каталоге. Это команда и путь: «cat ~/.john/john.pot»:
Здесь хранятся пароли! Давайте попробуем атаку по словарю методом перебора. John the Ripper поставляется со своими собственными списками паролей в /usr/share/john.
Например, таким файлом словаря является password.lst:
Также в любом дистрибутиве Linux есть файлы словарей / usr/share/dict/.
Чтобы проверить, сколько записей находится в файле словаря, Вы выполняете: «wc -l /usr/share/dict/wordlist-probable.txt
»:
Например, в этом файле есть 203809 слов.
Хорошо, давайте начнем, используя словарь, который идет в комплекте John. Это команда: «john --wordlist=/usr/share/john/password.lst --rules --format=crypt 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
- What Is John the Ripper?
- John the Ripper Command Generator
- Modes for Cracking Passwords
- Cracking Passwords With John the Ripper
- Other Useful Commands
- Conclusion
- 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.
Try this exercise
- Designate a short string (
topgun
) as a username and variations on its capitalization as the password (such as Topgun). - Show the output of the SHA-256-hashed password:
echo -n 'Topgun' | sha256sum
- 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
- 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
- Get results.
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
Try this exercise
- Pipe a hash based on one or more dictionary words (optionally with numbers) to SHA-256:
echo -n 'password1234' | sha256sum
- 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
- Repeat Steps 1 and 2 to generate as many username-password pairs as desired and append them to
crack.txt.
- Run
crack.txt
through John the Ripper’s Wordlist Mode:john --wordlist=rockyou --format=raw-sha256 crack.txt
- Get results.
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.
Try this exercise
- Pipe a hash on a simple alphanumeric password to SHA-256:
echo -n 'passw0rd' | sha256sum
- 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
- Run inc.txt through John the Ripper’s Wordlist Mode:
john --incremental --format=raw-sha256 inc.txt
- Get results.
Generated password hashes
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
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
Try this exercise
- 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.” - Export the ZIP hash to
zip.hashes: zip2john classified.zip > zip.hashes
- Run
zip.hashes
through John the Ripper:john zip.hashes
- Get results.
Step 1: Create a password-protected ZIP archive on Kali Linux
Steps 2 to 4: 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
Try this exercise
- Use the following command to generate an RSA key pair with a passphrase:
ssh-keygen
- Export the hashed private key file to a new file
(myHash.txt): ssh2john /home/kali/.ssh/id_rsa > myHash.txt
- Run
myHash.txt
through John the Ripper:john --wordlist=rockyou myHash.txt
- Get results
Step 1: 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 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
Try this exercise
- Create a new user on Kali Linux:
sudo useradd user1
- Give the new user a weak password:
sudo passwd user1
- Repeat steps 1 and 2 as desired to create two more new user accounts
user2
anduser3
with weak passwords. - Unshadow the Linux password hashes for all users:
unshadow /etc/passwd /etc/shadow > lin.txt
- Export only the usernames and passwords of the three new users to a new file
(lin3.txt): tail -n -3 lin.txt > lin3.txt
- Run it through John the Ripper:
john --format=crypt --wordlist=rockyou lin3.txt
- Get results.
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
Try this exercise
- Designate a short string (
topgun
) as a username and variations on its capitalization as the password (such asTopgun
). - Pass the password from step 1 into an LM/NTLM hash function, such as via a website as shown below.
- 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
- 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
- Get results. The capitalization of the cracked password may differ from what you’ve intended.
Step 2:
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 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