Полное руководство по John the Ripper. Ч.4: практика и примеры использования John the Ripper
Оглавление
1. Знакомство и установка John the Ripper
2. Утилиты для извлечения хешей
3. Как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы)
4. Практика и примеры использования John the Ripper
4.2 Как в John the Ripper взломать пароль от Wi-Fi
4.6 Взлом пароля Word (файл .DOCX)
4.7 Взлом пароля LibreOffice (файлы Wirter/.odt и другие)
4.9 Взлом пароля KeePass и KeePassXC
4.11 Взлом пароля приватного ключа SSH (id_rsa)
4.12 Как взломать пароль PuTTY
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 не поддерживается.
Заключение по разделу
Если я пропустил ещё какой-то важный или популярный тип файлов, то напишите о нём в комментарии и я добавлю примеры взлома его пароля.
Связанные статьи:
- Полное руководство по John the Ripper. Ч.3: как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы) (56.7%)
- Как использовать предварительно вычисленные таблицы для взлома паролей Wi-Fi в Hashcat и John the Ripper (56.7%)
- Полное руководство по John the Ripper. Ч.6: брут-форс нестандартных хешей (56.7%)
- Полное руководство по John the Ripper. Ч.7: Johnny — графический интерфейс для John the Ripper (56.7%)
- Продвинутые техники создания словарей (56.4%)
- Настройка и запуск сетевых служб в Kali Linux (Apache, MySQL, SSH, PostgreSQL, NetworkManager и Bluetooth) (RANDOM - 1.3%)
Всё написано очень здорово. Огромное спасибо.
Однако, если это возможно, то хотелось бы чтобы Вы поподробнее рассказали и привели подробные примеры извлечения хеша из любого криптокошелька и подбор пароля.
Также с нетерпением ждём продолжения Вашего онлайн руководства: 5 и 6 частей, а возможно и 7 части!
Приветствую! Криптокошельки должны были попасть уже в эту часть, но они оказались не такими уж простыми. Про криптокошельки, по основам их работы и восстановлению данных готовится отдельная статья, после того, как сам разберусь с матчастью и создам файлы для тестов по извлечению хешей, восполню пробел по взлому их паролей.
Что касается следующей части по John, то она уже в процессе написания, следующая статья будет продолжением по John.
Может кто знает. Не знаю как вытащить хэш с файла .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
Можно искать до бесконечности.