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


Оглавление

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

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

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

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

4.1 Опция —fork=ЯДРА

4.2 Как в John the Ripper взломать пароль от Wi-Fi

4.3 Взлом пароля архива ZIP

4.4 Взлом пароля архива RAR

4.5 Взлом пароля архива 7z

4.6 Взлом пароля Word (файл .DOCX)

4.7 Взлом пароля LibreOffice (файлы Wirter/.odt и другие)

4.8 Взлом пароля PDF

4.9 Взлом пароля KeePass и KeePassXC

4.10 Взлом пароля GPG

4.11 Взлом пароля приватного ключа SSH (id_rsa)

4.12 Как взломать пароль PuTTY

4.13 Заключение по разделу

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

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

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


8. 

9. 


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

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

  • как взломать пароль Wi-Fi
  • как взломать пароль архива
  • как взломать пароль офисного документа
  • и т.д.

Эти примеры позволят нам закрепить изученные основы John the Ripper. Кстати, если вы не читали предыдущие части, то рекомендуется начать с них.

Опция —fork=ЯДРА

В последующих примерах в каждой команде запуска брут-форса на центральном процессоре используется опция —fork=ЯДРА. Вместо слова ЯДРА нужно указать число, которое соответствует количеству логических или физических ядер процессора.

Для взлома на видеокартах эту опцию использовать не нужно.


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

Захват рукопожатия Wi-Fi для взлома пароля

Здесь не будем останавливаться на основах тестирования безопасности беспроводных сетей Wi-Fi, поэтому если у вас пробелы в знаниях, то обратитесь к онлайн книге «Взлом Wi-Fi сетей с Kali Linux и BlackArch».

Посмотрим имя беспроводного интерфейса:

sudo iw dev

У меня это wlp0s20f0u1. Для автоматического сбора рукопожатий запустим команду вида:

sudo besside-ng ИНТЕРФЕЙС

В моём случае это:

sudo besside-ng wlp0s20f0u1

Чтобы просмотреть, какие рукопожатия были захвачены, выполним команду:

aircrack-ng wpa.cap

Извлечение хеша для взлома Wi-Fi

Если вы хотите взламывать сразу все рукопожатия, то выполните команду:

wpapcap2john wpa.cap > wi-fi.hash


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

В выводе сказано, что обработано 10 ТД, но записано всего 6 рукопожатий и 2 PMKID.

Можно сохранить рукопожатие для определённой точки доступа, её нужно указать с опцией -m, но указывать нужно не название, а BSSID — проще говоря, MAC адрес.

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

wpapcap2john wpa.cap > /dev/null

Допустим, меня интересует Точка Доступа FTTX772802, тогда ищем строку с ней:

В каждой строке есть три элемента данных:

  • BSSID — MAC адрес ТД (он нам и нужен)
  • ESSID — имя ТД (по нему мы ориентируемся, где смотреть MAC адрес)
  • STA — MAC адрес клиента, подключённого к ТД (это нам не пригодится)

Или можно было посмотреть MAC адрес с помощью aircrack-ng:

aircrack-ng wpa.cap | grep 'ИМЯ-ТД'

Например:

aircrack-ng wpa.cap | grep FTTX772802

Итак, я нашёл, что ТД с именем FTTX772802 имеет MAC-адрес EA:37:7A:99:BE:F0.

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

wpapcap2john -m 'MAC-АДРЕС' wpa.cap > wi-fi.hash

В моём случае это:

wpapcap2john -m 'EA:37:7A:99:BE:F0' wpa.cap > wi-fi.hash

Брут-форс пароля Wi-Fi: атака по словарю

Теперь для запуска атаки по словарю, используя центральный процессор, выполните команду вида:

john --format=wpapsk --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/wi-fi.hash

К примеру, у меня словарь находится в той же папке, что и исполнимый файл john и имеет имя rockyou.txt, и на моём компьютере 12 ядер, а wi-fi.hash находится в домашней папке пользователя, тогда команда следующая:


./john --format=wpapsk --wordlist=rockyou.txt --fork=12 ~/wi-fi.hash

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

john --format=wpapsk-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/wi-fi.hash

Мой пример:

./john --format=wpapsk-opencl --wordlist=rockyou.txt ~/wi-fi.hash

Брут-форс пароля Wi-Fi: атака по маске

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 8 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --format=wpapsk --fork=ЯДРА --mask='?d' --min-length=8 --max-length=10 /ПУТЬ/ДО/wi-fi.hash

Мой пример:

./john --format=wpapsk --fork=12 --mask='?d' --min-length=8 --max-length=10 ~/wi-fi.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 8 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=wpapsk-opencl --mask='?d' --min-length=8 --max-length=10 '/ПУТЬ/ДО/wi-fi.hash'

Мой пример:

./john --format=wpapsk-opencl --mask='?d' --min-length=8 --max-length=10 ~/wi-fi.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --format=wpapsk --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=8 --max-length=8 /ПУТЬ/ДО/wi-fi.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=wpapsk-opencl -1=?l?u?d --mask='?1' --min-length=8 --max-length=8 /ПУТЬ/ДО/wi-fi.hash

Смотрите также «Как использовать радужные таблицы для взлома паролей Wi-Fi в Hashcat и John the Ripper».


Взлом пароля архива ZIP

Для извлечения хеша выполните команду вида:

zip2john ФАЙЛ > zip.hash

К примеру, путь до файла /mnt/disk_d/Share/test/file.zip, тогда команда следующая:

zip2john /mnt/disk_d/Share/test/file.zip > zip.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦПУ, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/zip.hash

К примеру, у меня словарь находится в той же папке, что и исполнимый файл john и имеет имя rockyou.txt, и на моём компьютере 12 ядер, а zip.hash находится в домашней папке пользователя, тогда команда следующая:

./john --wordlist=rockyou.txt --fork=12 ~/zip.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/zip.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/zip.hash

Как взламывать пароли ZIP архивов на видеокарте

John the Ripper поддерживает два алгоритма взлома ZIP архивов на ЦП:

  • PKZIP
  • ZIP

И только один архив для взлома на видеокартах:

  • ZIP-opencl

В предыдущих командах мы не указывали тип хеша, поскольку он однозначно указан в самом хеше. Чтобы задействовать видеокарту, необходимо использовать опцию —format=ХЕШ. Но она будет работать только для ХЕША формата ZIP. Поэтому вам нужно открыть файл, куда сохранён хеш и посмотреть на начало хеша.

Если вы там увидите что-то вроде такого:

  • file2.zip/file.docx:$zip2$*0*3*0*3eca0462af8ea24……………….

Это означает, что данный хеш можно взломать командами вида:

john --format=ZIP-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/zip.hash
john --format=ZIP-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/zip.hash
john --format=ZIP-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/zip.hash

Если же там хеш со строкой «pkzip»:

  • file.zip/Отчёт.docx:$pkzip2$1*1*2*0*b274*c3db*7c823487*0*28*8*b……………….

То это означает, что взлом данного формата на видеокарте в настоящее время не поддерживается.


Взлом пароля архива RAR

Для извлечения хеша выполните команду вида:

rar2john ФАЙЛ > rar.hash

К примеру, путь до файла /mnt/disk_d/Share/test/file.rar, тогда команда следующая:

rar2john /mnt/disk_d/Share/test/file.rar > rar.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/rar.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/rar.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john —fork=ЯДРА -1=?l?u?d —mask='?1' —min-length=1 —max-length=8 /ПУТЬ/ДО/rar.hash

Как взламывать пароли RAR архивов на видеокарте

John the Ripper поддерживает два алгоритма взлома RAR архивов на ЦП: rar и RAR5.

В предыдущих командах мы не указывали тип хеша, поскольку он однозначно указан в самом хеше. Чтобы задействовать видеокарту, необходимо использовать опцию —format=ХЕШ. В качестве ХЕШ нужно указать rar-opencl или RAR5-opencl в зависимости от типа архива.

Тип архива можно узнать по хешу. Поэтому вам нужно открыть файл, куда сохранён хеш и посмотреть на начало хеша.

Если вы там увидите что-то вроде такого (присутствует строка rar5):

  • /mnt/disk_d/Share/test/file-rar5.rar:$rar5$16$76ce05b54ff5af……………….

Это означает, что данный хеш можно взломать командами вида:

john --format=RAR5-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/rar.hash
john --format=RAR5-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/rar.hash
john --format=RAR5-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/rar.hash

Если же там хеш со строкой «RAR3»:

  • file-rar4.rar:$RAR3$*1*2dfc09f8674acc2e*8734827c*45584*50139*1*02dfdd427b08ebce3f0……………….

То вам нужно использовать команды вида:

john --format=rar-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/rar.hash
john --format=rar-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/rar.hash
john --format=rar-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/rar.hash

Взлом пароля архива 7z

Для извлечения хеша выполните команду вида:

7z2john ФАЙЛ > 7z.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/7z.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/7z.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/7z.hash

Как взламывать пароли 7z архивов на видеокарте

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

john --format=7z-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/7z.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=7z-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/7z.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:


john --format=7z-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/7z.hash

Взлом пароля Word (файл .DOCX)

Для извлечения хеша выполните команду вида:

office2john ФАЙЛ > office.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/office.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/office.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/office.hash

Как взламывать пароли Word (.DOCX) на видеокарте

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

john --format=office-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/office.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=office-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/office.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=office-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/office.hash

Пример удачного взлома пароля Word:


Взлом пароля LibreOffice (файлы Wirter/.odt и другие)

Для извлечения хеша выполните команду вида:

libreoffice2john ФАЙЛ > odf.hash

Если вы получили ошибку:

Traceback (most recent call last):
  File "/usr/bin/libreoffice2john", line 152, in <module>
    process_file(sys.argv[k])
  File "/usr/bin/libreoffice2john", line 86, in process_file
    salt = binascii.hexlify(base64.b64decode(salt)).decode("ascii")
UnboundLocalError: local variable 'salt' referenced before assignment

то обновите JtR до последней версии.

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/odf.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/odf.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/odf.hash

Как взламывать пароли LibreOffice (.odt и другие)  на видеокарте

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

john --format=ODF-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/odf.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=ODF-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/odf.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=ODF-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/odf.hash

Взлом пароля PDF

Для извлечения хеша выполните команду вида:

pdf2john ФАЙЛ > pdf.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/pdf.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/pdf.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/pdf.hash

Как взламывать пароли PDF на видеокарте

В настоящее время взлом пароля PDF файла на видеокарте в John the Ripper не поддерживается.


Взлом пароля KeePass и KeePassXC

Для извлечения хеша выполните команду вида:

keepass2john ФАЙЛ > keepass.hash

В качестве ФАЙЛА должна быть база данных паролей .kdbx.

Или если у вас есть файл ключей, то выполните команду вида:

keepass2john -k ФАЙЛ КЛЮЧЕЙ БАЗЫ ДАННЫХ .kdbx > keepass.hash

Вы можете увидеть сообщение:

! Passwords.kdbx : File version '40000' is currently not supported!

Оно означает, что в ФАЙЛЕ Passwords.kdbx используется база данных KDBX версии 4.0, а программа keepass2john поддерживает только KDBX версию KDBX 3.1. То есть в настоящее время невозможно взломать пароль KeePass с базой данных KDBX версии 4.0 в John the Ripper.

Смотрите также «Менеджеры паролей KeePass и KeePassXC».

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/keepass.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/keepass.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/keepass.hash

Как взламывать пароли KeePass на видеокарте

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

john --format=KeePass-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/keepass.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=KeePass-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/keepass.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=KeePass-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/keepass.hash

Взлом пароля GPG

В папке ~/.gnupg/private-keys-v1.d/ имеются файлы .key, но возможно ли из них извлечь ключи и пароли, я не знаю.

Пароль gpg можно взломать из файла приватного ключа, полученного в результате выполнения команды экспорта:

gpg --export-secret-key -a "ИМЯ ФАМИЛИЯ" > private.key

Смотрите также «Как пользоваться gpg: шифрование, расшифровка файлов и сообщений, подпись файлов и проверка подписи, управление ключами».

После экспорта, из этого файла приватного ключа нужно извлечь хеш для взлома пароля:

gpg2john private.key > gpg.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/gpg.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/gpg.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/gpg.hash

Как взламывать пароли gpg на видеокарте

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

john --format=gpg-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/gpg.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=gpg-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/gpg.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=gpg-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/gpg.hash

Взлом пароля приватного ключа SSH (id_rsa)

Для извлечения хеша выполните команду вида:

python2 ./ssh2john.py ФАЙЛ > ssh.hash

Обратите внимание, что для работы ssh2john необходим Python 2. Если вы используете Python 3, то вы получите следующую ошибку:

/usr/bin/ssh2john:103: DeprecationWarning: decodestring() is a deprecated alias since Python 3.1, use decodebytes()
  data = base64.decodestring(data)
Traceback (most recent call last):
  File "/usr/bin/ssh2john", line 193, in <module>
    read_private_key(filename)
  File "/usr/bin/ssh2john", line 153, in read_private_key
    saltstr = data[salt_offset:salt_offset+salt_length].encode("hex")
AttributeError: 'bytes' object has no attribute 'encode'

В качестве ФАЙЛА нужно указать приватный ключ SSH, путь до него может быть ~/.ssh/id_rsa.

Этот ключ генерируется командой:

ssh-keygen -t rsa

Подробности смотрите в статье «SSH (ч.4): Создание и настройка ключей OpenSSH».

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/ssh.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/ssh.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/ssh.hash

Как взламывать пароли SSH (id_rsa) на видеокарте

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

john --format=ssh-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/ssh.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=ssh-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/office.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 1 до 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=ssh-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/office.hash

Ошибка «cipher value of 6 is not supported!»

При запуске john вы можете получить ошибки:

[SSH] cipher value of 6 is not supported!
[ssh-opencl] cipher value of 6 is not supported!

Они означают, что ваш тип хеша не поддерживается в john. Для исправления этих ошибок обновите John the Ripper до последней версии.

Если вы получили следующее сообщение:

[ssh-opencl] cipher value of 6 is not yet supported with OpenCL!

Оно означает, что вы можете запустить взлом на центральном процессоре, но не можете использовать видеокарту. Попробуйте обновить John the Ripper до последней версии, но на момент описания эта поддержка ещё не добавлена.


Как взломать пароль PuTTY

PuTTY — это популярная программа для подключения к удалённым компьютерам по протоколам Telnet, SSH, Rlogin, Serial и Raw. Особенно широко эта программа распространена на Windows, так как раньше ей не было альтернатив на этой ОС.

Файлы, сгенерированные в PuTTYgen, имеют расширение .ppk и примерно следующую структуру:

В этом файле содержатся одновременно приватный и публичный ключи.

В первую очередь обратите внимание на строку со словом Encryption:

Encryption: none

Если там слово none, то это означает, что ключ вовсе не зашифрован и вы можете использовать его в PuTTY. Если вы хотите использовать его в привычной OpenSSH, то достаточно конвертировать в соответствующий формат, как это описано в разделе «Как конвертировать .ppk ключ в OpenSSH ключ».

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

putty2john ФАЙЛ.ppk > putty.hash

Вы можете получить сообщение:

file.ppk : this private key doesn't need a passphrase!

Оно означает, что ключи в файле .ppk не зашифрованы и взламывать нечего, достаточно конвертировать в нужный вам формат как это показано по ссылкам выше.

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦП, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/putty.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/putty.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/putty.hash

Как взламывать пароли PuTTY на видеокарте

В настоящее время взлом пароля PuTTY файла на видеокарте в John the Ripper не поддерживается.


Заключение по разделу

Если я пропустил ещё какой-то важный или популярный тип файлов, то напишите о нём в комментарии и я добавлю примеры взлома его пароля.


Рекомендуется Вам:

3 комментария to Полное руководство по John the Ripper. Ч.4: практика и примеры использования John the Ripper

  1. Аноним:

    Всё написано очень здорово. Огромное спасибо.

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

    Также с нетерпением ждём продолжения Вашего онлайн руководства: 5 и 6 частей, а возможно и 7 части!

    • Alexey:

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

      Что касается следующей части по John, то она уже в процессе написания, следующая статья будет продолжением по John.

  2. Аноним:

    Может кто знает. Не знаю как вытащить хэш с файла .stronghold кошелька iota. Попробовал скормить hashcat :

     hashcat /Users/valery/Desktop/firefly-backup-2022-11-21T18-08-22.stronghold

    hashcat (v6.2.6) starting in autodetect mode

     

    METAL API (Metal 244.303)

    =========================

    * Device #1: Intel Iris Graphics, skipped

     

    OpenCL API (OpenCL 1.2 (Aug 29 2022 02:56:50)) — Platform #1 [Apple]

    ====================================================================

    * Device #2: Intel(R) Core(TM) i5-4288U CPU @ 2.60GHz, 4064/8192 MB (1024 MB allocatable), 4MCU

    * Device #3: Iris, skipped

     

    The following 36 hash-modes match the structure of your input hash:

     

          # | Name                                                       | Category

      ======+============================================================+======================================

      13711 | VeraCrypt RIPEMD160 + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)

      13712 | VeraCrypt RIPEMD160 + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)

      13713 | VeraCrypt RIPEMD160 + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)

      13741 | VeraCrypt RIPEMD160 + XTS 512 bit + boot-mode (legacy)     | Full-Disk Encryption (FDE)

      13742 | VeraCrypt RIPEMD160 + XTS 1024 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)

      13743 | VeraCrypt RIPEMD160 + XTS 1536 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)

      13751 | VeraCrypt SHA256 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)

      13752 | VeraCrypt SHA256 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)

      13753 | VeraCrypt SHA256 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)

      13761 | VeraCrypt SHA256 + XTS 512 bit + boot-mode (legacy)        | Full-Disk Encryption (FDE)

      13762 | VeraCrypt SHA256 + XTS 1024 bit + boot-mode (legacy)       | Full-Disk Encryption (FDE)

      13763 | VeraCrypt SHA256 + XTS 1536 bit + boot-mode (legacy)       | Full-Disk Encryption (FDE)

      13721 | VeraCrypt SHA512 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)

      13722 | VeraCrypt SHA512 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)

      13723 | VeraCrypt SHA512 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)

      13771 | VeraCrypt Streebog-512 + XTS 512 bit (legacy)              | Full-Disk Encryption (FDE)

      13772 | VeraCrypt Streebog-512 + XTS 1024 bit (legacy)             | Full-Disk Encryption (FDE)

      13773 | VeraCrypt Streebog-512 + XTS 1536 bit (legacy)             | Full-Disk Encryption (FDE)

      13781 | VeraCrypt Streebog-512 + XTS 512 bit + boot-mode (legacy)  | Full-Disk Encryption (FDE)

      13782 | VeraCrypt Streebog-512 + XTS 1024 bit + boot-mode (legacy) | Full-Disk Encryption (FDE)

      13783 | VeraCrypt Streebog-512 + XTS 1536 bit + boot-mode (legacy) | Full-Disk Encryption (FDE)

      13731 | VeraCrypt Whirlpool + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)

      13732 | VeraCrypt Whirlpool + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)

      13733 | VeraCrypt Whirlpool + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)

       6211 | TrueCrypt RIPEMD160 + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)

       6212 | TrueCrypt RIPEMD160 + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)

       6213 | TrueCrypt RIPEMD160 + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)

       6241 | TrueCrypt RIPEMD160 + XTS 512 bit + boot-mode (legacy)     | Full-Disk Encryption (FDE)

       6242 | TrueCrypt RIPEMD160 + XTS 1024 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)

       6243 | TrueCrypt RIPEMD160 + XTS 1536 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)

       6221 | TrueCrypt SHA512 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)

       6222 | TrueCrypt SHA512 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)

       6223 | TrueCrypt SHA512 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)

       6231 | TrueCrypt Whirlpool + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)

       6232 | TrueCrypt Whirlpool + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)

       6233 | TrueCrypt Whirlpool + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)

     

    Please specify the hash-mode with -m [hash-mode].

     

    А вот с помощью john :

    john /Users/valery/Desktop/firefly-backup-2022-11-21T18-08-22.stronghold

    Warning: invalid UTF-8 seen reading /Users/valery/Desktop/firefly-backup-2022-11-21T18-08-22.stronghold

    Warning: detected hash type "HMAC-SHA256", but the string is also recognized as "HMAC-SHA512"

    Use the "—format=HMAC-SHA512" option to force loading these as that type instead

    Using default input encoding: UTF-8

    Loaded 1 password hash (HMAC-SHA256 [password is key, SHA256 128/128 SSE4.1 4x])

    Proceeding with single, rules:Single

    Press 'q' or Ctrl-C to abort, almost any other key for status

    Almost done: Processing the remaining buffered candidate passwords, if any.

    Proceeding with wordlist:/usr/local/Cellar/john-jumbo/1.9.0_1/share/john/password.lst, rules:Wordlist

    Proceeding with incremental:ASCII

    0g 0:00:00:13  3/3 0g/s 701177p/s 701177c/s 701177C/s nrhi..ns00

    0g 0:00:00:21  3/3 0g/s 906870p/s 906870c/s 906870C/s rd1d43..rd1tns

    0g 0:00:00:25  3/3 0g/s 956924p/s 956924c/s 956924C/s lewy95..leruje

    Можно искать до бесконечности. 

     

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *