Введение
В этой лабораторной работе вы изучите основы взлома хэша WPA/WPA2 PMKID (Pairwise Master Key Identifier) с использованием Hashcat, мощного и универсального инструмента для восстановления паролей. PMKID является частью процесса аутентификации WPA/WPA2 и иногда может быть захвачен с точки доступа без необходимости присутствия клиента. Взлом PMKID часто более эффективен, чем взлом полного 4-стороннего рукопожатия (4-way handshake).
Вы пройдете весь процесс, от подготовки файла с хэшем до выполнения словарной атаки с помощью Hashcat. Этот практический опыт даст вам понимание того, как работает взлом паролей в контролируемой образовательной среде. Вся деятельность в этой лабораторной работе предназначена исключительно для образовательных целей.
Преобразование захвата PMKID в формат, совместимый с Hashcat
На этом этапе вы узнаете о формате, необходимом для взлома хэшей PMKID с помощью Hashcat. Обычно PMKID извлекаются из необработанных файлов захвата сети (например, файлов .pcapng). Такой инструмент, как hcxpcapngtool, используется для преобразования захвата в простой текстовый формат хэша, который может обрабатывать Hashcat.
Команда для этого будет выглядеть следующим образом:
hcxpcapngtool -o <output_hash_file> <input_capture_file.pcapng>
Для этой лабораторной работы, чтобы обеспечить бесперебойный процесс, мы уже выполнили это преобразование для вас. Полученный хэш сохранен в файле с именем pmkid.hash в вашей текущей директории (~/project).
Давайте рассмотрим содержимое этого файла, чтобы понять его структуру. Используйте команду cat для отображения содержимого файла.
cat pmkid.hash
Вы увидите следующий вывод, который представляет собой одну строку, содержащую хэш PMKID:
d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65
Этот формат: PMKID*MAC_AP*MAC_STA*SSID_HEX. Каждая часть разделена звездочкой, предоставляя Hashcat всю необходимую информацию для выполнения атаки.
Выберите правильный режим Hashcat для WPA-PMKID, который равен -m 16800
На этом этапе вы определите правильный режим для взлома хэшей PMKID в Hashcat. Hashcat поддерживает сотни различных алгоритмов хэширования, и каждому из них присвоен уникальный номер режима. Указание правильного режима необходимо для корректной работы Hashcat.
Список всех поддерживаемых типов хэшей и их соответствующих режимов можно найти, используя опцию --help с командой hashcat. Чтобы сузить список, вы можете передать вывод команде grep и выполнить поиск по определенному ключевому слову, например "PMKID".
Выполните следующую команду, чтобы найти режим для WPA-PMKID:
hashcat --help | grep "WPA-PMKID"
Вывод покажет соответствующий режим хэша:
16800 | WPA-PMKID-PBKDF2 | Network Protocols
Как видно из вывода, номер режима для WPA-PMKID-PBKDF2 равен 16800. Вы будете использовать этот номер режима с опцией -m в вашей команде Hashcat.
Создание команды Hashcat с файлом хэша
На этом этапе вы начнете конструировать команду hashcat. Базовый синтаксис для словарной атаки: hashcat [options] <hash_file> <wordlist_file>.
К настоящему моменту вы определили два ключевых компонента:
- Режим хэша:
-m 16800 - Файл хэша:
pmkid.hash
Соберем их вместе. Нам также нужно указать режим атаки с помощью опции -a. Словарная атака имеет режим 0, поэтому мы будем использовать -a 0. Это режим атаки по умолчанию, но хорошей практикой является его явное указание.
Попробуем выполнить команду только с режимом хэша и файлом хэша. Это приведет к ошибке, но это хороший способ подтвердить наш синтаксис и увидеть, что Hashcat ожидает дальше.
hashcat -m 16800 pmkid.hash
Hashcat запустится, а затем завершится с сообщением об использовании, поскольку отсутствует обязательный аргумент для данного типа атаки.
hashcat (v6.2.6) starting...
* Device #1: WARNING! Kernel exec timeout is not disabled.
...
Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
Try --help for more help.
Ошибка указывает на то, что для режима атаки по умолчанию (словарная атака) требуется список слов или каталог. Это подтверждает, что структура нашей команды пока верна, и подводит нас непосредственно к следующему шагу: предоставлению списка слов.
Укажите список слов для словарной атаки
На этом этапе вы завершите команду Hashcat, добавив список слов. Словарная атака работает путем взятия каждого слова из данного файла ("список слов" или "словарь") и проверки его как потенциального пароля против хэша.
Для этой лаборатории в каталоге ~/project был создан небольшой файл списка слов с именем wordlist.txt. Давайте посмотрим его содержимое.
cat wordlist.txt
Вы увидите короткий список потенциальных паролей:
secret
123456
password123
qwertyuiop
labex
Одно из этих слов является правильным паролем для нашего хэша. Теперь вы можете собрать полную команду, добавив имя файла списка слов к команде из предыдущего шага.
Полная команда: hashcat -m 16800 -a 0 pmkid.hash wordlist.txt
-m 16800: Указывает тип хэша WPA-PMKID.-a 0: Указывает режим словарной атаки.pmkid.hash: Файл, содержащий хэш для взлома.wordlist.txt: Файл словаря, содержащий кандидатов в пароли.
На последнем шаге вы выполните эту команду для взлома хэша.
Запуск Hashcat и анализ результатов взлома
На этом этапе вы выполните полную команду Hashcat и проанализируете вывод, чтобы найти взломанный пароль. Пришло время собрать все воедино и начать процесс взлома.
Выполните полную команду в вашем терминале:
hashcat -m 16800 -a 0 pmkid.hash wordlist.txt
Hashcat инициализируется, отобразит информацию о сессии и начнет проверку паролей из wordlist.txt. Поскольку список слов очень мал, процесс будет практически мгновенным. Как только будет найден правильный пароль, Hashcat отобразит его и сообщит статус "Cracked" (Взломано).
Вывод будет выглядеть примерно так:
...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: WPA-PMKID-PBKDF2
Hash.Target......: d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*...
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
...
Recovered........: 1/1 (100.00%) Digests
...
d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65:password123
All hashes have been recovered.
...
Самая важная строка — d5b6c18645897310626525389ebb3461*...:password123, которая показывает исходный хэш, за которым следует двоеточие и восстановленный пароль: password123.
Hashcat автоматически сохраняет взломанные пароли. Чтобы просмотреть ранее взломанные хэши без повторного запуска атаки, вы можете использовать опцию --show.
hashcat -m 16800 pmkid.hash --show
Эта команда мгновенно отобразит пару взломанного хэша и пароля:
d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65:password123
Итоги
Поздравляем с успешным взломом хэша PMKID! В этой лаборатории вы получили практический опыт работы с Hashcat и изучили основные шаги, связанные со словарной атакой.
Вы научились:
- Распознавать формат хэшей PMKID, совместимый с Hashcat.
- Определять правильный режим Hashcat для конкретного типа хэша (
-m 16800для WPA-PMKID). - Составлять полную команду Hashcat для словарной атаки (
-a 0). - Выполнять атаку, используя файл хэша и список слов.
- Анализировать вывод и просматривать взломанные пароли с помощью опции
--show.
Хотя в этой лаборатории использовался небольшой простой пример, те же принципы применимы и к реальным сценариям, которые включают гораздо большие списки слов и более мощное оборудование. Полученные вами навыки обеспечивают прочную основу для понимания безопасности паролей и практик этичного взлома.
