HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как в 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 карта не переключала каналы, а выполняла захват информации на одном канале, на котором работает целевая Точка Доступа. Поэтому начнём со сбора информации о целевой точки доступа.
Смотрим имена беспроводных интерфейсов:
Переводим ИНТЕРФЕЙС в режим монитора командами вида:
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-адреса участников передачи данных, пакеты некоторых видов, а также пакеты с данными — полезная нагрузка в которых зашифрована.
Перед расшифровкой убедимся, что имеется хендшейк, иначе продолжать нет смысла:
Перед расшифровкой нам нужно сделать некоторые изменения в настройках протокола IEEE 802.11.
Перейдите в Edit → Preferences, раскройте секцию protocol и выберите IEEE 802.11. Настройки должны быть такими:
Когда у вас будут такие же настройки, как и на предыдущем скриншоте, нажмите на кнопку Edit рядом с надписью Decryption Keys (для добавления WEP/WPA ключа):
Нажмите кнопку Создать. В открывшемся окне в поле Key type выберите wpa-pwd, введите пароль от Wi-Fi сети, а через двоеточие имя (SSID) сети и нажмите ОК.
Например, в моём случае пароль 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 уже практически не встречаются.