Практические примеры использования Hashcat. Часть 2
Life-Hack [Жизнь-Взлом]/ХакингВзлом пароля архива RAR
Для извлечения хеша выполните команду вида:
rar2john ФАЙЛ > rar.tmp
К примеру, путь до файла /mnt/disk_d/Share/test/file.rar, тогда команда следующая:
rar2john /mnt/disk_d/Share/test/file.rar > rar.tmp
Будет извлечён хеш в формате John, для Hashcat этот формат непригоден, поэтому выполним следующую команду:
cat rar.tmp | grep -E -o '(\$RAR3\$[^:]+)|(\$rar5\$.*)' > rar.hash
Она очистит хеш от ненужных строк и сохранит хеш в формате Hashcat в файл rar.hash.
Но и это ещё не всё — имеется несколько версий RAR. Поэтому нам нужно правильно определить тип вашего хеша. Вы можете открыть файл rar.hash любым текстовым редактором или выполните следующую команду, чтобы вывести первые 8 символов хеша:
head -c 8 rar.hash
- Если строка хеша начинается на:
$RAR3$*0*
Значит это RAR3-hp, номер хеша: 12500
- Если строка хеша начинается на:
$rar5$16$
Значит это RAR5, номер хеша: 13000
- Если строка хеша начинается на:
$RAR3$*1*
Значит это RAR3-p (Uncompressed), номер хеша: 23700
- Если строка хеша начинается на:
$RAR3$*1*
Значит это RAR3-p (Compressed), номер хеша: 23800
ВНИМАНИЕ: у RAR3-p (Uncompressed) и RAR3-p (Compressed) ОДИНАКОВЫЕ начала хешей, я не знаю, как их можно различить. Единственный вариант — пробовать запускать команду hashcat с указанием типа хеша 23700, а затем 23800. При этом если вы указали тип хеша неправильно, то сразу будет показана ошибка. Пример ошибки:
Hashfile '/home/mial/rar.hash' on line 1 ($RAR3$...91201eb0007c76714cbb328b2acfc*33): Salt-value exception No hashes loaded.
Если вы получили ошибки об отсутствующих модулях, например:
/usr/share/hashcat/modules/module_23700.so: cannot open shared object file: No such file or directory /usr/share/hashcat/modules/module_23800.so: cannot open shared object file: No such file or directory
То это означает, что ваша версия Hashcat ещё не поддерживает хеши с номерами 23700 и 23800 и вам нужно обновить программу до последней версии. В настоящее время эта поддержка присутствует только в бета версии Hashcat, которую вы можете скачать на официальном сайте: https://hashcat.net/beta/
Взлом пароля архива 7z
Для извлечения хеша выполните команду вида:
7z2john ФАЙЛ > 7z.tmp
Будет извлечён хеш в формате John, для Hashcat этот формат непригоден, поэтому выполним следующую команду:
cat 7z.tmp | grep -E -o '\$7z\$.*' > 7z.hash
Она очистит хеш от ненужных строк и сохранит хеш в формате Hashcat в файл 7z.hash.
Номер хеша: 11600
Взлом пароля MS Office: Word (файл .DOCX) и другие офисные файлы
Для извлечения хеша выполните команду вида:
office2john ФАЙЛ > office.tmp
Для подготовки хеша выполните команду:
cat office.tmp | grep -E -o '\$office\$.*' > office.hash
Имеется несколько версий офисных документов MS Office. Поэтому нам нужно правильно определить тип вашего хеша. Вы можете открыть файл office.hash любым текстовым редактором или выполните следующую команду, чтобы вывести первые 14 символов хеша:
head -c 14 office.hash
- Если строка хеша начинается на:
$office$*2007*
Значит это MS Office 2007, номер хеша: 9400
- Если строка хеша начинается на:
$office$*2010*
Значит это MS Office 2010, номер хеша: 9500
Если строка хеша начинается на:
$office$*2013*
Значит это MS Office 2013, номер хеша: 9600
Пример удачного взлома пароля файла Word:

Взлом пароля LibreOffice (файлы Wirter/.odt и другие)
Для извлечения хеша выполните команду вида:
libreoffice2john ФАЙЛ > odf.tmp
Для подготовки хеша выполните команду:
cat odf.tmp | grep -E -o '\$odf\$[^:]+' > odf.hash
Имеется несколько версий офисных документов LibreOffice. Поэтому нам нужно правильно определить тип вашего хеша. Вы можете открыть файл odf.hash любым текстовым редактором или выполните следующую команду, чтобы вывести первые 10 символов хеша:
head -c 10 odf.hash
- Если строка хеша начинается на:
$odf$*1*1*
Значит это Open Document Format (ODF) 1.2 (SHA-256, AES), номер хеша: 18400
- Если строка хеша начинается на:
$odf$*0*0*
Значит это Open Document Format (ODF) 1.1 (SHA-1, Blowfish), номер хеша: 18600
Взлом пароля PDF
Для извлечения хеша выполните команду вида:
pdf2john ФАЙЛ > pdf.tmp
Для подготовки хеша выполните команду:
cat pdf.tmp | grep -E -o '\$pdf\$.*' > pdf.hash
Имеется несколько версий PDF файлов. Поэтому нам нужно правильно определить тип вашего хеша. Вы можете открыть файл pdf.hash любым текстовым редактором или выполните следующую команду, чтобы вывести первые 13 символов хеша:
head -c 13 pdf.hash
- Если строка хеша начинается на:
$pdf$1*2*40*-
Значит это PDF 1.1 - 1.3 (Acrobat 2 - 4), номер хеша: 10400
- Если строка хеша начинается на:
$pdf$1*2*40*-
Значит это PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1, номер хеша: 10410
- Если строка хеша начинается на:
$pdf$1*2*40*-
Значит это PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2, номер хеша: 10420
ВНИМАНИЕ: у всех перечисленных типов файлов ОДИНАКОВЫЕ начала хешей, я не знаю, как их можно различить. Единственный вариант — пробовать запускать команду hashcat с указанием типа хеша 10400, а затем 10410 и, наконец, 10420. При этом если вы указали тип хеша неправильно, то сразу будет показана ошибка. Пример ошибки:
Hashfile '/home/mial/pdf.hash' on line 1 ($pdf$4...c5ba427b1b9102da468e77127f1e69d6): Separator unmatched No hashes loaded.
- Если строка хеша начинается на:
$pdf$2*3*128*
Значит это PDF 1.4 - 1.6 (Acrobat 5 - 8), номер хеша: 10500
- Если строка хеша начинается на:
$pdf$5*5*256*
Значит это PDF 1.7 Level 3 (Acrobat 9), номер хеша: 10600
- Если строка хеша начинается на:
$pdf$5*6*256*
Значит это PDF 1.7 Level 8 (Acrobat 10 - 11), номер хеша: 10700
- Если строка хеша начинается на:
$pdf$4*4*128*
Значит это PDF документ, созданный с помощью MS Word, для него подходит номер хеша: 10500
Взлом пароля KeePass и KeePassXC
Для извлечения хеша выполните команду вида:
keepass2john ФАЙЛ > keepass.tmp
В качестве ФАЙЛА должна быть база данных паролей .kdbx.
Или если у вас есть файл ключей, то выполните команду вида:
keepass2john -k ФАЙЛ-КЛЮЧЕЙ БАЗА-ДАННЫХ.kdbx > keepass.tmp
Вы можете увидеть сообщение:
! 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.
Для подготовки хеша выполните команду:
cat keepass.tmp | grep -E -o '\$keepass\$[^:]+' > keepass.hash
Номер хеша: 13400
Взлом пароля приватного ключа GPG
В настоящее время взлом GPG в Hashcat не поддерживается (но поддерживается в John the Ripper). Когда будет добавлена поддержка, хеш приватного ключа нужно извлечь следующим образом.
Пароль gpg можно взломать из файла приватного ключа, полученного в результате выполнения команды экспорта:
gpg --export-secret-key -a "ИМЯ ФАМИЛИЯ" > private.key
После экспорта, из этого файла приватного ключа нужно извлечь хеш для взлома пароля:
gpg2john private.key > gpg.tmp
Для подготовки хеша выполните команду:
cat gpg.tmp | grep -E -o '\$gpg\$[^:]+' > gpg.hash
Взлом пароля приватного ключа OpenSSH (id_rsa)
Для извлечения хеша выполните команду вида:
python2 ./ssh2john.py ФАЙЛ > ssh.tmp
Для подготовки хеша выполните команду:
cat ssh.tmp | grep -E -o '\$sshng\$[^:]+' > 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
Имеется несколько версий файлов приватных ключей OpenSSH. Поэтому нам нужно правильно определить тип вашего хеша. Вы можете открыть файл ssh.hash любым текстовым редактором или выполните следующую команду, чтобы вывести первые 11 символов хеша:
head -c 11 ssh.hash
- Если строка хеша начинается на:
$sshng$0$8$
Значит это RSA/DSA/EC/OpenSSH Private Keys ($0$), номер хеша: 22911
- Если строка хеша начинается на:
$sshng$6$8$
Значит это RSA/DSA/EC/OpenSSH Private Keys ($6$), номер хеша: 22921
- Если строка хеша начинается на:
$sshng$1$16
Значит это RSA/DSA/EC/OpenSSH Private Keys ($1, $3$), номер хеша: 22931
- Если строка хеша начинается на:
$sshng$4$16
Значит это RSA/DSA/EC/OpenSSH Private Keys ($4$), номер хеша: 22941
- Если строка хеша начинается на:
$sshng$5$16
Значит это RSA/DSA/EC/OpenSSH Private Keys ($5$), номер хеша: 22951
- Если строка хеша начинается на:
$sshng$6$16$
Значит это ????????????, номер хеша: ???????? [видимо, ещё не реализовано]
Если вы получили ошибки об отсутствующих модулях, например:
/usr/share/hashcat/modules/module_22951.so: cannot open shared object file: No such file or directory
То это означает, что ваша версия Hashcat ещё не поддерживает хеши с номерами 22951, 22941 и прочими и вам нужно обновить программу до последней версии. В настоящее время эта поддержка присутствует только в бета версии Hashcat, которую вы можете скачать на официальном сайте: https://hashcat.net/beta/