hashcat-utils
Описание hashcat-utils
Hashcat-utils — это набор маленьких утилит, которые полезны для продвинутого взлома паролей.
Они все упакованы во множество отдельных исполнимых файлов.
Каждая из этих утилит создана для выполнения только одной определённой функци.
Поскольку они все работают с STDIN (стандартным вводом) и STDOUT (стандартным выводом) вы можете группировать их в цепи.
Домашняя страница: https://hashcat.net/wiki/doku.php?id=hashcat_utils
GitHub: https://github.com/hashcat/hashcat-utils/
Автор: atom
Лицензия: MIT
Характеристика программ в hashcat-utils
cap2hccapx
Инструмент используется для генерации файлов .hccapx из файлов сетевого захвата (.cap или .pcap) для взлома WPA/WPA2 аутентификаций. Файлы .hccapx используются как ввод для типа хеша -m 2500 = WPA/WPA2.
Дополнительные опции позволяют вам указать имя сети (ESSID) для фильтрации нежелательных сетей и для предоставления cap2hccapx подсказки о имени сети (ESSID) и MAC адресе точки доступа (BSSID) если не было захвачено маячков (beacon).
Использование:
./cap2hccapx.bin input.pcap output.hccapx [фильтрация по essid] [дополнительная сеть essid:bssid]
cleanup-rules
Отделяет правила из STDIN (стандартного ввода), которые не совместимы со специфичной платформой.
Использование:
./cleanup-rules.bin mode
… где mode это 1 = CPU, 2 = GPU.
combinator
использование:
./combinator.bin file1 file2
Эта программа является самостоятельной реализацией Комбинаторной атаки.
Каждое слово из file2 добавляется к каждому слову из file1, а затем выводится в стандартный вывод.
Поскольку программе требуется перематывать файлы множество раз, нельзя воспользоваться стандартным вводом — требуются реальные файлы.
Другим вариантом могло бы быть сохранение содержимого обоих файлов в оперативной памяти. Поскольку при взломе хешей мы обычно работаем с огромными файлами, то результатом этого были бы соответствующие требования к оперативной памяти.
Дополнительные примеры смотрите в раздел Комбинаторная атака.
combinator3
Похожа на combinatory, но принимает на входе три файла, на выходе создаёт комбинации всех трёх списков.
combipow
Создаёт все “уникальные комбинации” из короткого списка ввода.
cat wordlist a b c XYZ 123 combipow wordlist a b ab c ac bc abc XYZ aXYZ bXYZ abXYZ cXYZ acXYZ bcXYZ abcXYZ 123 a123 b123 ab123 c123 ac123 bc123 abc123 XYZ123 aXYZ123 bXYZ123 abXYZ123 cXYZ123 acXYZ123 bcXYZ123 abcXYZ123
ct3_to_ntlm
Использование:
./ct3_to_ntlm.bin 8-byte-ct3-in-hex 8-byte-salt-in-hex [24-byte-ESS-in-hex]
Имеется две различных версии NetNTLMv1 – одна с ESS, а другая – без.
Если у вас нет ESS:
NETNTLM_bs_fmt_plug.c: {"$NETNTLM$1122334455667788$B2B2220790F40C88BCFF347C652F67A7C4A70D3BEBD70233", "cory21"},
Вы можете использовать это примерно так:
./ct3_to_ntlm.bin C4A70D3BEBD70233 1122334455667788 51ad
Если у вас есть ESS:
./ct3_to_ntlm.bin 7D01513435B36DCA 1122334455667788 1FA1B9C4ED8E570200000000000000000000000000000000 34d5
Обсуждение на форуме здесь.
cutb
Эта программа (она появилась в hashcat-utils-0.6) создана для обрезки словаря (читает из стандартного ввода) для использования в комбинаторной атаке. Предположим, что пароли в какой-то подборке имеют общий заполнитель длины в начале или конце слов. Эта программа отсечёт префикс или суффикс конкретной длины от существующих слов в списке и выдаст полученный результат в стандартный вывод.
Использование:
./cutb.bin offset [длина] < входной_файл > выходной_файл
Примерный файл словаря:
cat wordlist apple1234 theman fastcars
Пример положительного смещения и фиксированной длинный (первые 4 символа):
./cutb.bin 0 4 < wordlist appl them fast
Пример положительного смещения без длины (возвращает оставшиеся символы в строке):
./cutb.bin 4 < wordlist e1234 an cars
Пример отрицательного смещения (последние 4 символа в строке):
./cutb.bin -4 < wordlist 1234 eman cars
Пример отрицательного смещения, фиксированная длина:
./cutb.bin -5 3 < wordlist e12 hem tca
Предполагаемое использование:
- Комбинаторная атака (-a 1)
- Гибридная атака (-a 6 или -a 7)
Не забудьте запустить sort -u для вывода перед использованием его в атаке!
deskey_to_ntlm
TBD
Использование:
./deskey_to_ntlm.pl 8-byte-key-in-hex
Объявление на форуме и обсуждение здесь.
expander
У этой программы нет параметров для настройки.
Каждое слово, поступившее из стандартного ввода, парсится и разделяется на его отдельные символы, которые перемешиваются и объединяются для составления новых слов, выдаваемых в стандартный вывод.
Есть несколько реконструкций, которые генерируют все возможные шаблоны входного слова с применением следующие итерации:
- Все возможные длины паттернов внутри максимума из 7 символов (определяются в LEN_MAX, значение которой можно увеличить в исходном коде).
- Все возможные смещения слова.
- Перемещение слова вправо до полного цикла.
- Перемещение слова влево до полного цикла.
Важно: убедитесь, что вы уникализировали последующую выдачу.
Пример:
echo pass1 | ./expander.bin | sort -u 1 1p 1pas 1pass a as ass ass1 ass1p p pa pas pass pass1 s s1 s1p s1pa s1pas ss ss1 ss1p ss1pa
Эта программа является сердцем Атаки по отпечаткам.
gate
Каждый словарь, приходящий в стандартный ввод, парсится и расщепляется на равные секции, а затем выходит через стандартный вывод. Возможно разбитие на неравные части — в соответствии с переданными параметрами. Причиной расщепления может быть распределённое вычисление по полученным словарям.
Например, если у вас i7 CPU и вы хотите использовать ваш словарь с программой, которая не может использовать множество ядер, вы можете расщепить словарь на несколько меньших частей и затем запустить несколько экземпляров этой программы.
Использование:
./gate.bin режим сдвиг < входящий_файл > исходящий_файл
Здесь присутствуют два важный параметра “режим” и “сдвиг”.
- Значение «режим» - это число раз, на которое вы хотите расщепить ваш словарь.
- Значение «сдвиг» - это с какой позиции нужно начинать..
Вот пример словаря для ввода:
cat numbers 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Мы хотим разделить словарь на два равных словаря:
./gate.bin 2 1 < numbers 2 4 6 8 10 12 14
./gate.bin 2 0 < numbers 1 3 5 7 9 11 13
generate-rules
Отдельная утилита для генерации случайных правил.
Использование:
./generate-rules.bin number [seed]
Эта команда сгенерирует 10 случайных правил, используя “42” в качестве seed:
./generate-rules.bin 10 42 $ $} z3 *61 t l o2* L2 *6B *98 D1 x0A f x32 s^L s[5 s'# swU }
hcstatgen
Инструмент используется для генерации файлов .hcstat которые используются в statsprocessor.
Использование:
./hcstatgen.bin out.hcstat < входящий файл
ПРИМЕЧАНИЕ. Вывод, сгенерированный hcstatgen, больше не поддерживается текущим hashcat и не поддерживает более длинные пароли (до длины 256). Вместо этого используйте hcstat2gen.
Особо здесь нечего добавить. Каждый выходной файл будет иметь размер ровно 32.1 мегабайт.
Также смотрите hcstat2gen.
hcstat2gen
Инструмент для создания пользовательской статистики Маркова для использования (после сжатия LZMA) с параметром hashcat --markov-hcstat (скоро будет --markov-hcstat2).
hcstat2gen похож на своего предшественника hcstatgen, но обновляется синхронно с hashcat 4.0 для поддержки максимальной длины пароля до 256 (а также добавлен заголовок типа файла).
Для экономии места hashcat теперь ожидает, что файлы hcstat2 будут сжаты как LZMA. Если файл не сжат, вы увидите ошибку «Не удалось распаковать данные».
Синтаксис:
Использование:
./hcstat2gen.bin ВЫХОДНОЙ_ФАЙЛ < СЛОВАРЬ
Пример общего использования:
./hcstat2gen.bin hcstat2_output_raw.bin </ПУТЬ/ДО/СЛОВАРЯ.txt lzma --compress --format=raw --stdout -9e hcstat2_output_raw.bin > output.hcstat2
Если ваша lzma не поддерживает --stdout, попробуйте:
lzma --compress --format=raw hcstat2_output_raw.bin --suffix=hcstat2
Каждый исходный файл должен быть размером около 132 МБ (с переменным размером после сжатия).
Обратите внимание, что этот новый формат ещё не поддерживается обработчиком статистики.
Смотрите также hcstatgen.
keyspace
Расчитывает пространство ключей в манере hashcat.
Использование:
./keyspace.bin [опции] маска
Опции
-m, --hash-type=ЧИСЛО Тип хеша --hex-charset Предположим, что кодировка задана в шестнадцатеричном виде --markov-hcstat=ФАЙЛ Указать hcstat файл для использования, по умолчанию это hashcat.hcstat -t, --markov-threshold= ЧИСЛО Порог для цепей маркова -1, --custom-charset1=CS Определённые пользователем наборы символов -2, --custom-charset2=CS Примеры: -3, --custom-charset3=CS --custom-charset3=?dabcdef : устанавливает набор символов ?3 на 0123456789abcdef -4, --custom-charset4=CS --custom-charset4=?l?u : устанавливает набор символов ?4 на все буквы верхнего и нижнего регистров -h, --help Вывод справки
len
Каждое слово, входящее в стандартный ввод парсится по длине и проходит в стандартный вывод если оно соответствуют заданному диапазону длины слова.
Использование:
./len.bin минимум максимум < входной_файл > выходной_файл
Это пример входного словаря:
cat dict 1 123 test pass hello world
Мы хотим только те слова, которые имеют длину 2, 3 или 4:
./len.bin 2 4 < dict 123 test pass
mli2
Объединяет два списка.
Как и rli2, два списка должны быть отсортированы (в LC_ALL=C порядке).
Использование:
./mli2.bin infile mergefile
Пример:
cat w1.txt 123 1234 999 aceofspades cards password veryfast cat w2.txt 123 1234 999 extra mli2 w1.txt w2.txt 123 1234 999 aceofspades cards extra password veryfast
Если вы используете mli2 на не рассортированных списках, вы получите несвязанные результаты.
Если вы используете mli2 на сортированных, но не уникализированных списках, вы получите отсортированные, но не уникализированные результаты.
morph
По сути morph генерирует правила вставки для самых частых цепей символов по позиции из файла словаря который вы указываете.
Использование:
./morph.bin словарь глубина ширина минимальная_позиция максимальная_позиция
- Словарь = Используемый словарь для частотного анализа.
- Depth = Определяет «верхушку» цепи, которую вы хотите. Например, 10 даст вам верх 10 (фактически началом окажется величина 0, поэтому 10 даст верхушку 11.
- Width = Максимальная длина цепи. С 3, например, вы получите 3 правила на строку для самой длинной 3 буквенной цепи.
- pos_min = Минимальная позиция, где будет сгенерировано правило вставки. Например, 5 будет означать делать правило для вставки строки только с позиции 5 и выше.
-pos_max = Максимальная позиция, где будет сгенерировано правило вставки. Например, 10 будет означать, что будет сделано правило вставки строки так, что оно заканчивается в максимум 10 позиции.
permute
Эта программа является самостоятельной реализации Перестановочной атаки.
Она не имеет параметров для настройки.
Каждое слово поступающие в стандартный ввод парсится и пропускается через “The Countdown QuickPerm Algorithm” от Phillip Paul Fuchs.
Для примеров смотрите Перестановочную атаку.
permute_exist
TBD
Использование:
./permute_exist.bin word < infile > outfile
prepare
Эта программа сделана оптимизатором словаря для Перестановочной атаки.
Из-за природы самого перестановочного алгоритма, слова на вводе “BCA” и “CAB” создадут в точности одинаковых кандидатов в пароли.
echo BCA | ./permute.bin BCA CBA ABC BAC CAB ACB echo CAB | ./permute.bin CAB ACB BCA CBA ABC BAC
Лучший способ отсортировать «дубли» - реконструировать вводимое слово изменением порядка по ASCII значению каждого символа в слове:
Ввод:
- B ⇒ 0x42
- C ⇒ 0x43
- A ⇒ 0x41
Вывод: ABC
Ввод:
- C ⇒ 0x43
- A ⇒ 0x41
- B ⇒ 0x42
Вывод: ABC
Далее мы можем безопасно выполнить sort -u:
wc -l rockyou.txt 14344391 rockyou.txt ./prepare.bin < rockyou.txt | sort -u > rockyou.txt.prep wc -l rockyou.txt.prep 9375751 rockyou.txt.prep
Отсортировано 4968640 слов (34.6%) которые воспроизвели бы дубли в Перестановочной атаке.
remaining
TBD
Использование:
./remaining.pl wordlist_base.txt wordlist_search.txt
req
req был заменён на req-include и req-exclude, описанные ниже.
req-exclude
Как req-include, но исключает слова, соответствующие определенным критериям.
req-include
Каждое слово поступающее в стандартный ввод и выходит в стандартный вывод если соответствует групповому критерию пароля.
Иногда вы знаете, чтобы удовлетворить политике паролей некоторые пароли должны включать символы нижнего регистра, верхнего регистра и цифры.
Это означает проверку паролей, которые не соответствуют политике и определённо не принесут результата во взломе пароля. Поэтому их можно пропустить.
Программа не очень сложная, и она не может полностью соответствовать всем популярным критериям политике паролей, но она даёт немного помощи.
Определены следующие группы паролей:
Имя | Пункт | Символы |
---|---|---|
МАЛЕНЬКАЯ | 1 | abcdefghijklmnoprstuvwxyz |
БОЛЬШАЯ | 2 | ABCDEFGHIJKLMNOPRSTUVWXYZ |
ЦИФРА | 4 | 0123465789 |
ДРУГОЕ | 8 | Всё остальное, не соответствующее тому, что указано выше |
Для настройки группы паролей из одиночных записей, просто добавьте номера элементов всех отдельных записей вместе.
Например, если вы хотите чтобы в стандартный вывод проходили только слова, которые имеют одну маленькую букву и одну цифру, то просто найдите в таблице «МАЛЕНЬКАЯ», её значением является “1”, а затем «ЦИФРА», значение которой “4” и сложите их вместе — получится “5”.
echo hello | ./req.bin 5 echo hello1 | ./req.bin 5 hello1 echo Hello1 | ./req.bin 5 Hello1
rli
rli сравнивает единичный файл с другим(и) файлом (файлами) и удаляет все дубли:
Использование:
rli входящий_файл исходящий_файл файл_для_удаления
Допустим, у нас есть два файла w1.txt:
password 123 cards 999 aceofspades 1234 veryfast
И w2.txt:
123 999 1234
Если мы запустим следующую команду:
rli w1.txt OUT_FiLE.txt w2.txt
OUT_FiLE.txt будет иметь:
password cards aceofspades veryfast
Также поддерживается множественность файлов: w3.txt имеет “password” в нём, мы запускаем:
rli w1.txt OUT_FiLE.txt w2.txt w3.txt
OUT_FiLE.txt:
cards aceofspades veryfast
rli может очень пригодиться для очистки ваших словарей и для уникализации их содержимого.
Но размер словаря не может превышать размер памяти вашей машины. Смотрите rli2 ниже для больших файлов.
rli2
В отличие от rli, rli2 не ограничена. Но для неё нужно, чтобы входящий файл и файл для удаления были уникализированы до использования с этой программой, в противном случае она не будет работать как доложна.
Например, используя файлы w1.txt and w2.txt files о которых мы говорили выше, если мы запустим:
rli2 w1.txt w2.txt
На выходе мы получим:
password 123 cards 999 aceofspades 1234 veryfast
Ни какой разницы. Но если мы отсортируем и уникализируем w1.txt и w2.txt так:
sort w1.txt > w1su.txt sort w1.txt > w1su.txt
И запустим:
rli2 w1su.txt w2su.txt
Мы сделаем это аккуратно:
aceofspades cards password veryfast
Обратите внимание, что rli2 не может обрабатывать множество файлов. И если вы ещё не заметили, rli2 выводит в стандартный вывод, а не в файл. Вы всегда можете передать по трубе (|) выводимые данные или использовать перенаправление стандартного вывода (>) для сохранения в файл.
rules_optimize
TBD
seprule
TBD
splitlen
Эта программа создана быть оптимизатором словаря для oclHashcat.
oclHashcat имеет очень своеобразную манеру загрузки словарей, в отличие от hashcat. Лучший способ организовать ваши словари для использования с oclHashcat — это отсортировать каждое слово в вашем словаре по их длине в отдельные файлы, в отдельные директории и затем запустить oclHashcat в режиме директорий.
Использование:
./splitlen.bin outdir < infile
Всё, что вам нужно, это создать новый словарь, например, “ldicts”.
mkdir ldicts ./splitlen.bin ldicts < rockyou.txt
Результат в:
ls -l ldicts/ total 129460 -rw-r--r-- 1 root root 90 Oct 12 15:54 01 -rw-r--r-- 1 root root 1005 Oct 12 15:54 02 -rw-r--r-- 1 root root 9844 Oct 12 15:54 03 -rw-r--r-- 1 root root 89495 Oct 12 15:54 04 -rw-r--r-- 1 root root 1555014 Oct 12 15:54 05 -rw-r--r-- 1 root root 13634586 Oct 12 15:54 06 -rw-r--r-- 1 root root 20050168 Oct 12 15:54 07 -rw-r--r-- 1 root root 26694333 Oct 12 15:54 08 -rw-r--r-- 1 root root 21910390 Oct 12 15:54 09 -rw-r--r-- 1 root root 22150645 Oct 12 15:54 10 -rw-r--r-- 1 root root 10392420 Oct 12 15:54 11 -rw-r--r-- 1 root root 7219550 Oct 12 15:54 12 -rw-r--r-- 1 root root 5098436 Oct 12 15:54 13 -rw-r--r-- 1 root root 3727905 Oct 12 15:54 14 -rw-r--r-- 1 root root 0 Oct 12 15:54 15
ПРИМЕЧАНИЕ: splitlen не добавляет и не перезаписывает файлы в выходной директории. Поэтому вы должны использовать пустые директории.
strip-bsn
Убирает все \0 байты из стандартного ввода.
strip-bsr
Убирает все \r байты из стандартного ввода.
tmesis
tmesis берёт словарь и производит правила вставки, который вставят каждое слово словаря в предустановленные позиции.
Например:
Слово ‘password’ создаст правила вставки, которые вставят ‘password’ с позиции 0 до позиции F (15) и они будут видоизменять строку ‘123456’ следующим образом.
password123456 1password23456 12password3456 123password456 1234password56 12345password6 123456password
Подсказки:
- Используйте tmesis для создания правил атаки списка хешей, полученных из источника. Запустите базовый анализ по взломанным паролям, отберите топовые 10-20 слов (паролей) и используйте tmesis для генерации правил.
- Используйте tmesis для создания правил в комбинации с best64.rules.
- tmesis обрабатывает многобайтовые символы Юникода не как отдельные символы, а как отдельные байты. Это означает, что её также можно использовать для вставки многобайтовых символов.
tmesis-dynamic
Использование:
./tmesis-dynamic.pl substring wordlist1.txt wordlist2.txt
tmesis-dynamic примет 2 списка слов и сделает новый, используя определённую пользователем подстановку в качестве «ключа».
Каждое слово словаря 1 которое соответствует определённой пользователем подстроки, заменяет эту подстроку на каждое слово списка слов 2.
Например, эти списки слов:
cat wordlist1.txt isajack3935 jackysch_5131 HBjackas5 mom1jackhopes
cat wordlist2.txt 123456 password jill hashcat
… создадут следующих кандидатов, когда указан ключ “jack”:
./tmesis-dynamic.pl jack wordlist1.txt wordlist2.txt isa1234563935 isapassword3935 isajill3935 isahashcat3935 123456ysch_5131 passwordysch_5131 jillysch_5131 hashcatysch_5131 HB123456as5 HBpasswordas5 HBjillas5 HBhashcatas5 mom1123456hopes mom1passwordhopes mom1jillhopes mom1hashcathopes
topmorph
TBD
Использование:
./topmorph.pl dictionary depth width pos_min pos_max
Ограничения hashcat-utils
Все программы hashcat-utils разделяют одинаковый движок парсига слов в их входном коде. Этот движок имеет минимальный и максимальный диапазон позволенной длины слов (как в “len”, например).
Смотрите заголовок utils.c:
#define FGETS_MIN 1 #define FGETS_MAX 16
Вы можете изменить их и затем перекомпилировать hashcat-utils. Тем не менее, во взломе паролей нам обычно не требуются слова большей длины.
Примеры использования hashcat-utils
Конвертировать файл RT-WiFi_96.pcap с захваченным Wi-Fi рукопожатием в хеш для взлома в Hashcat и сохранить этот хеш в файле RT-WiFi_96.hccapx:
cap2hccapx RT-WiFi_96.pcap RT-WiFi_96.hccapx
Конвертировать четырёх этапное рукопожатие из файла all.pcap для Wi-Fi сети RT-WiFi_96 в хеш для взлома пароля и сохранить его в файле RT-WiFi_96.hccapx:
cap2hccapx all.pcap RT-WiFi_96.hccapx RT-WiFi_96
Для двух сетей с именами RT-WiFi_96 и RT-WiFi_97 извлечь рукопожатия из файла all.pcap и сохранить хеши для взлома в файл 96_97.hccapx:
cap2hccapx all.pcap 96_97.hccapx RT-WiFi_96 RT-WiFi_97:d110391a58ac
Обратите внимание, что если вы указываете несколько имён сетей для извлечения рукопожатий, то для второй нужно указывать её BSSID.
Установка hashcat-utils
Установка hashcat-utils в Kali Linux
Программа предустановлена в Kali Linux. Для установки в минимальные версии выполните команду:
sudo apt install hashcat-utils
Установка hashcat-utils в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S hashcat-utils
Установка hashcat-utils в Linux
Можно скачать бинарные файлы здесь: https://github.com/hashcat/hashcat-utils/releases
После скачивания достаточно распаковать архив и запускать требуемые файлы *.bin.
Либо установить из исходных кодов.
git clone https://github.com/hashcat/hashcat-utils cd hashcat-utils/src/ make sudo mv *.bin /usr/local/bin/ sudo cp -a *.pl /usr/local/bin/
Установка hashcat-utils в Windows
Скачайте исполнимые файлы: https://github.com/hashcat/hashcat-utils/releases
Распакуйте архив.
Откройте окно командной строки (Win+x и выберите там «Windows PowerShell»).
Перетащите нужный .exe файл в командную строку и нажмите ENTER.
Скриншоты hashcat-utils
Инструкции по hashcat-utils
- Книга «Продвинутый взлом паролей с *Hashcat» на русском языке
- Как конвертировать рукопожатие (хендшейк) в новый формат Hashcat. Решение проблемы «Old hccap file format detected! You need to update»
- Семейство программ *Hashcat: как научиться взламывать пароли, создавать и оптимизировать словари
- Продвинутые техники создания словарей
Comments are Closed