Введение
Hashcat — это мощный и универсальный инструмент для восстановления паролей. Чтобы эффективно его использовать, вы должны сначала понять его структуру командной строки. Одна команда Hashcat состоит из нескольких ключевых компонентов, которые точно говорят программе, что нужно взломать и как это сделать.
В этой лабораторной работе вы изучите фундаментальную структуру команды Hashcat. Мы будем собирать полную, функциональную команду по частям, охватывая пять основных компонентов: исполняемый файл, тип хэша, режим атаки, входной файл хэша и входной файл словаря. К концу вы сможете составлять базовые команды Hashcat для атак на основе словаря.
Определение основных компонентов команды Hashcat
На этом шаге мы определим базовый синтаксис команды Hashcat. Понимание этой структуры — первый шаг к использованию инструмента.
Типичная команда Hashcat следует этому шаблону:
hashcat [options] hashfile [wordlist/mask]
Разберем эти компоненты:
hashcat: Это имя самого исполняемого файла программы.[options]: Это флаги, которые изменяют поведение программы. Наиболее важными опциями являются-mдля типа хэша и-aдля режима атаки, которые мы рассмотрим на следующих шагах.hashfile: Это путь к файлу, содержащему хэш или хэши, которые вы хотите взломать.[wordlist/mask]: Это путь к входному файлу, например, к словарю для атаки по словарю или к шаблону маски для атаки полным перебором.
Для начала давайте посмотрим встроенное справочное меню, чтобы получить представление об инструменте. Эта команда выводит все доступные опции и информацию.
Выполните следующую команду в вашем терминале:
hashcat --help
Вы увидите длинный вывод, подробно описывающий все возможности Hashcat. Мы будем ссылаться на эту информацию на последующих шагах.
hashcat (v6.2.6) starting in help mode
Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
...
-a, --attack-mode | Num | Attack-mode, see references below.
-m, --hash-type | Num | Hash-type, see references below.
...
Теперь, когда мы понимаем базовую структуру, мы можем начать собирать нашу команду.
Указание типа хэша с помощью флага -m
На этом шаге вы узнаете, как указать тип целевого хэша. Hashcat поддерживает сотни различных алгоритмов хэширования, и вы должны сообщить ему, какой из них вы пытаетесь взломать. Это делается с помощью флага -m, за которым следует числовой код.
Наша лабораторная среда подготовила файл с именем hashes.txt, который содержит хэш MD5. Чтобы найти правильный код для MD5, вы можете просмотреть вывод hashcat --help.
Используйте команду grep для фильтрации справочного текста по "MD5":
hashcat --help | grep MD5
Вывод покажет вам все типы хэшей, связанные с MD5, вместе с их соответствующими кодами.
0 | MD5 | Raw Hash, Salted and/or Iterated
10 | md5($pass.$salt) | Raw Hash, Salted and/or Iterated
20 | md5($salt.$pass) | Raw Hash, Salted and/or Iterated
...
Как вы видите, код для стандартного хэша MD5 — 0. Теперь мы можем добавить это в нашу команду. Команда в настоящее время выглядит так:
hashcat -m 0 ...
На следующем шаге мы укажем режим атаки.
Указание режима атаки с помощью флага -a
На этом шаге вы узнаете, как установить режим атаки с помощью флага -a. Режим атаки сообщает Hashcat, какой метод использовать для взлома пароля.
Hashcat предлагает несколько режимов атаки, но наиболее распространенными являются:
0: Straight (Атака по словарю) - Сравнивает хэши со списком слов.1: Combination (Комбинация) - Объединяет слова из двух разных словарей.3: Brute-force (Атака полным перебором / по маске) - Пробует все возможные комбинации символов на основе определенного шаблона (маски).
Для этой лаборатории мы выполним атаку Straight (по словарю), поэтому будем использовать режим атаки 0. Список всех режимов атаки вы можете найти в справочном меню.
Давайте снова используем grep, чтобы найти раздел "Attack-Modes":
hashcat --help | grep "Attack-Modes" -A 10
Флаг -A 10 указывает grep показать 10 строк после совпадения, предоставляя вам полный список.
- [ Attack-Modes ] -
## | Mode
===+======
0 | Straight
1 | Combination
3 | Brute-force
6 | Hybrid dict + mask
7 | Hybrid mask + dict
Теперь мы определили наш режим атаки. Добавим его в нашу команду, которая теперь выглядит так:
hashcat -m 0 -a 0 ...
Далее мы предоставим файл, содержащий хэш, который мы хотим взломать.
Указание файла с входным хэшем
На этом шаге вы укажете входной файл, содержащий хэш для взлома. Этот аргумент идет после опций.
Скрипт настройки для этой лаборатории уже создал файл с именем hashes.txt в вашей текущей директории (~/project). Этот файл содержит один хэш MD5.
Давайте посмотрим содержимое этого файла с помощью команды cat:
cat hashes.txt
Вы должны увидеть следующий вывод:
5f4dcc3b5aa765d61d8327deb882cf99
Это хэш, который мы будем взламывать. Чтобы добавить его в нашу команду, мы просто помещаем имя файла после опций. Наша команда теперь выглядит так:
hashcat -m 0 -a 0 hashes.txt ...
Последний штрих — предоставить список слов для нашей атаки по словарю.
Указание входного списка слов или маски
На этом заключительном шаге вы предоставите последний необходимый компонент для нашей атаки по словарю: список слов (wordlist). Список слов — это файл в простом текстовом формате, где каждая строка представляет собой потенциальный пароль.
Среда лаборатории включает простой список слов с именем wordlist.txt. Давайте рассмотрим его содержимое:
cat wordlist.txt
Вывод будет следующим:
test
hello
password
123456
Этот список слов будет использоваться Hashcat для проверки против хэша. Файл списка слов является последним аргументом в нашей команде.
Теперь соберем и выполним полную команду:
hashcat -m 0 -a 0 hashes.txt wordlist.txt
Hashcat начнет работу. Поскольку наш хэш и список слов очень просты, он завершится почти мгновенно. Вывод покажет статус сеанса взлома.
...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 496.9 kH/s (0.00ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: test -> 123456
Hardware.Mon.#1..: Util: 99%
...
Строка Status...........: Cracked подтверждает успешное завершение. Чтобы увидеть взломанный пароль, вы можете снова выполнить ту же команду с флагом --show.
hashcat -m 0 -a 0 hashes.txt wordlist.txt --show
Вывод четко отобразит хэш и соответствующий ему пароль в открытом виде:
5f4dcc3b5aa765d61d8327deb882cf99:password
Поздравляем, вы успешно собрали и выполнили полную команду Hashcat!
Резюме
В этой лаборатории вы изучили основную структуру команд Hashcat, построив команду с нуля. Вы успешно взломали хэш MD5, используя атаку по словарю.
Теперь вы понимаете пять основных компонентов базовой команды Hashcat:
- Исполняемый файл:
hashcat - Тип хэша: Указывается с помощью
-m(например,-m 0для MD5). - Режим атаки: Указывается с помощью
-a(например,-a 0для атаки по словарю). - Файл хэшей: Файл, содержащий целевые хэши (например,
hashes.txt). - Список слов/Маска: Входные данные для атаки (например,
wordlist.txt).
Окончательная структура команды, которую вы изучили, выглядит так: hashcat -m <тип_хэша> -a <режим_атаки> <файл_хэшей> <список_слов>. Эти знания обеспечивают прочную основу для изучения более продвинутых функций Hashcat.


