Как в Wireshark расшифровать Wi-Fi трафик

Расшифровка WPA трафика в Wireshark

Начнём с теории, чтобы понять, почему процесс расшифровки Wi-Fi трафика в Wireshark требует некоторых усилий и почему нельзя просто расшифровать любой захваченный Wi-Fi трафик даже если есть пароль от Точки Доступа.

При передаче по Wi-Fi трафик шифруется с использованием PTK (Pairwise transient key — можно перевести как Парный переходной ключ). При этом PTK является динамичным, то есть создаётся заново для каждого нового соединения. Таким образом получается, что Wi-Fi трафик для каждого соединения в одной и той же Точке Доступа зашифрован разными PTK, причём даже для одного Клиента после переподключения PTK меняется. Для вычисления PTK необходимы данные из четырёх этапного рукопожатия, а также пароль от Wi-Fi сети (на самом деле нужна ещё и другая информация, например имя (SSID) сети, но получение этих данных не является проблемой).

Главное, что нужно понять: для расшифровки Wi-Fi трафика необходимо четырёх этапное рукопожатие. Причём не любое, а именно то, которое произошло для передачи того трафика, который нужно расшифровать. Но для использования захваченного рукопожатия необходим пароль от Wi-Fi сети.

Итак, чтобы расшифровать Wi-Fi трафик нужны:

1) рукопожатие, произошедшее между Клиентом и Точкой доступа непосредственно перед обменом расшифровываемой информацией

2) пароль для подключения к Точке Доступа

Далее будет показано два примера захвата Wi-Fi трафика и его расшифровки. Первый захват данных выполнен с помощью Airodump-ng, а затем беспроводной трафик будет расшифрован в Wireshark. Во втором примере данные будут захвачены и расшифрованы с использованием только Wireshark.

Захват Wi-Fi трафика в Airodump-ng

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

Смотрим имена беспроводных интерфейсов:

iw dev

Переводим ИНТЕРФЕЙС в режим монитора командами вида:

sudo ip link set ИНТЕРФЕЙС down
sudo iw ИНТЕРФЕЙС set monitor control
sudo ip link set ИНТЕРФЕЙС up

Запускаем airodump-ng командой вида:

sudo airodump-ng ИНТЕРФЕЙС

Например, я хочу захватить и расшифровать трафик для Точки Доступа Paangoon_2G, которая работает на 9 канале.

Тогда мне нужно перезапустить airodump-ng командой вида:

sudo airodump-ng ИНТЕРФЕЙС --channel КАНАЛ --write ИМЯ_ФАЙЛА

Надпись WPA handshake говорит о том, что было захвачено четырёх этапное рукопожатие. Это означает что:

  • теперь мы сможем расшифровать Wi-Fi данные (если у нас есть ключ от Wi-Fi сети)
  • мы сможем расшифровать данные только для конкретного клиента (с которым было совершено рукопожатие)
  • мы сможем расшифровать данные, которые были отправлены только после этого захваченного рукопожатия

Расшифровка Wi-Fi трафика в Wireshark

Открываем файл захвата в Wireshark. В исходном виде трафик выглядит примерно так:


То есть без расшифровки мы видим только MAC-адреса участников передачи данных, пакеты некоторых видов, а также пакеты с данными — полезная нагрузка в которых зашифрована.

Перед расшифровкой убедимся, что имеется хендшейк, иначе продолжать нет смысла:

eapol

Перед расшифровкой нам нужно сделать некоторые изменения в настройках протокола IEEE 802.11.

Перейдите в EditPreferences, раскройте секцию protocol и выберите IEEE 802.11. Настройки должны быть такими:

Когда у вас будут такие же настройки, как и на предыдущем скриншоте, нажмите на кнопку Edit рядом с надписью Decryption Keys (для добавления WEP/WPA ключа):

Нажмите кнопку Создать. В открывшемся окне в поле Key type выберите wpa-pwd, введите пароль от Wi-Fi сети, а через двоеточие имя (SSID) сети и нажмите ОК.

Например, в моём случае пароль 00001777, а имя сети Paangoon_2G, тогда я ввожу:

00001777:Paangoon_2G

Нажмите кнопку Применить:

Трафик будет расшифрован:

Теперь там видны DNS, HTTP запросы и ответы, а также другие сетевые пакеты.

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

Захват Wi-Fi в Wireshark

Трафик Wi-Fi можно захватить непосредственно в Wireshark. Но нам предварительно нужно переключить Wi-Fi карту на тот же канал, на котором работает целевая Точка Доступа. Это делается командами вида:

sudo ip link set ИНТЕРФЕЙС down
sudo iw ИНТЕРФЕЙС set monitor control
sudo ip link set ИНТЕРФЕЙС up
sudo iw dev ИНТЕРФЕЙС set channel КАНАЛ

В этих командах нужно слова ИНТЕРФЕЙС и КАНАЛ заменить на действительные данные.

Когда интерфейс переключён на нужный канал, в Wireshark найдите этот интерфейс, в его свойствах поставьте галочку Capture packets in monitor mode. Затем начните захват данных:

Последующая расшифровка выполняется точно таким же образом, как показано выше.

Заключение

Для расшифровки WEP Wi-Fi трафика достаточно знать только пароль. Но ТД с WEP уже практически не встречаются.

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

2 комментария to Как в Wireshark расшифровать Wi-Fi трафик

  1. Maks:

    а как быть с SSL ? сделайте статью, как читать SSL трафик серез wireshark

    • Alexey Alexey:

      Читать SSL трафик нет никаких проблем — там бессмысленные нули и единицы. Вот расшифровать… это проблема.

      Если есть приватные ключи от сайтов, то расшифровать можно, а если приватных ключей нет, то короткий ответ — никак не расшифровать. Либо варианты атаки человек-посередине когда у «жертвы» в качестве доверенного корневого Центра Сертификации установлены ключи атакующего. В этом случае будет работать обычная классическая атака человек-посередине с подменёнными сертификатами, которые генерируются на лету, но которым доверяет веб-браузер «жертвы», поскольку у него в доверенных ключи корневого CA, с помощью которых генерируются поддельные SSL сертификаты.

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

Ваш e-mail не будет опубликован.