Как в 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.
Перейдите в Edit → Preferences, раскройте секцию 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 уже практически не встречаются.
Связанные статьи:
- BoopSuite – альтернатива Airodump-ng, Airmon-ng и Aireplay-ng (87.3%)
- Аудит безопасности Wi-Fi с Hashcat и hcxdumptool (75.5%)
- Перехват и анализ трафика в открытых Wi-Fi (74.6%)
- Как взломать Wi-Fi (71.1%)
- Взлом Wi-Fi без пользователей в Aircrack-ng (71.1%)
- WPA2 Half Handshake (половина рукопожатия): программы для взлома Wi-Fi пароля и сценарии атак (RANDOM - 67.4%)
а как быть с SSL ? сделайте статью, как читать SSL трафик серез wireshark
Читать SSL трафик нет никаких проблем — там бессмысленные нули и единицы. Вот расшифровать… это проблема.
Если есть приватные ключи от сайтов, то расшифровать можно, а если приватных ключей нет, то короткий ответ — никак не расшифровать. Либо варианты атаки человек-посередине когда у «жертвы» в качестве доверенного корневого Центра Сертификации установлены ключи атакующего. В этом случае будет работать обычная классическая атака человек-посередине с подменёнными сертификатами, которые генерируются на лету, но которым доверяет веб-браузер «жертвы», поскольку у него в доверенных ключи корневого CA, с помощью которых генерируются поддельные SSL сертификаты.