Основы Wireshark. Расшифровка и захват трафика. Часть 1

Spread the love

ВНИМАНИЕ!!!! АВТОР ДАННОЙ СТАТЬИ НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ДЕЙСТВИЯ ОТ ЕЕ ПРОЧТЕНИЯ. ВСЕ МАТЕРИАЛЫ ПРЕДОСТАВЛЕНЫ В ИСКЛЮЧИТЕЛЬНО ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЯХ!

Сегодня начнём мы изучать практическую часть с изучения утилиты Wireshark. Возникает логичный вопрос: почему именно Wireshark? Всё просто, он обладает несколькими особенностями которые выделяют его среди конкурентов:

  • Интерфейс. Его интерфейс прост и понятен на столько на сколько это вообще возможно среди подобных утилит.
  • Гибкость в использовании. Позволяет анализировать трафик не только в реальном времени, но можно работать и с сохранёнными файлами захвата, причем есть поддержка форматов огромного количества утилит.
  • Поддержка сетевых протоколов. Wireshark поддерживает огромное количество сетевых протоколов, от самых распространённых до довольно специфических, причем этот список пополняется практически в каждом обновлении, другими словами, вероятность что ты столкнёшься с не поддерживаемым протоколом ничтожно мала.
  • Мультисистемность. Wireshark работает на Windows, Linux, MacOS – это замечательно по определению.
  • Халява. Все любят халяву. Wireshark абсолютно бесплатен. Не смотря на это сообщество разработчиков очень активно, постоянно что-то допиливает, дорабатывает, обновляет. И это, кстати еще одни плюс.

Теперь давай запустим Wireshark и начнём с ним работать. Кстати в таких системах как Kali Linux и Parrot Security он уже предустановлен, а для винды и яблока его можно скачать на официальном сайте https://www.wireshark.org/. Ну, а я буду использовать его на Parrot Security. Кстати есть мнение, в том числе разработчиков Wireshark, что использовать его на Windows – тот ещё тот мазохизм, особенно для перехвата wi-fi трафика, во первых нужно устанавливать дополнительные драйвера – WinPcap, но самая главная проблема в том, что режим мониторинга сетевого адаптера в Windows работает максимально криво. 

Небольшое отступление: в этом гайде, в процессе использования Wireshark нас в первую очередь будет интересовать трафик передаваемый через беспроводные сети, причём желательно чужой трафик, мы ведь тут собрались не для того чтоб неисправности в сети искать, правда? И ты правильно догадался (если догадался) что я плавно подвожу к режиму мониторинга wi-fi адаптера, если ты забыл то он нужен чтобы видеть весь трафик, а не только предназначенный нашей сетевой карте. Включаем:

airmon-ng start wlan0

Ну а теперь точно можно запускать Wireshark, это можно сделать из вкладки “Приложения”, а можно из терминала:

sudo wireshark

сразу после запуска, нам предложат выбрать сетевой интерфейс для запуска захвата. Можем так и сделать, или, если мы хотим поработать с ранее захваченным трафиком, сохраненным в файл, можем нажать File->Open и выбрать нужный файл.

Выбираем интересующий нас сетевой интерфейс (wlan0mon) и дважды давим на него.

Перед нами появится основное окно программы с которым мы будем проводить больше всего времени и сразу начнут перехватываться данные, пока что нажмём “Стоп” (красный квадратик в левом верхнем углу) и порассматриваем интерфейс программы.

Пройдёмся по интерфейсу сверху вниз:

  • В самом верху, под главным меню, находится панель с кнопками – это Main Toolbar, здесь находятся основные элементы управления программой – старт/стоп и настройки захвата, открытие/закрытие файлов захвата, навигация по пакетам и управлением размером текста;
  • Сразу под ней находится – Filter Toolbar – здесь мы будем вписывать фильтры и операторы, но об этом чуть позже;
  • Ещё ниже находится – Packet List – это таблица в которой отображаются все пакеты из текущей сессии перехвата или из открытого файла перехвата;
  • Под ним – Packet Details – здесь отображаются сведения о выбранном пакете (выбирать пакеты можно в Packet List);
  • И самое нижнее окошко – Packet Bytes – здесь показаны исходные данные пакета в необработанном виде, т.е. в том виде, в каком пакет передаётся по сети. (Сейчас бы начать тебе про интерпретацию пакетов рассказывать, но это в другой раз) 

Настройка Wireshark

Общие параметры самого приложения WIreshark находятся во вкладке Edit->Preferences. Их можно настроить в зависимости от своих потребностей или предпочтений, но я бы, на стадии знакомства с программой, не рекомендовал туда лезть. С опытом использования программы и работы с трафиком понимание что тебе нужно подкрутить для удобства придет само, а потому просто кратко перечислим какие здесь есть разделы:

  • Appearance (Внешний вид). Грубо говоря здесь определяется внешний вид программы: положение окон, расположение основных панелей, расположение полосы прокрутки и столбцов в панели Packet List, шрифты, а также цвета фона и шрифтов.
  • Capture (Перехват). В этом разделе можно настроить порядок перехвата пакетов, в том числе стандартный интерфейс для перехвата, параметры обновления панели Packet List в реальном времени.
  • Filter Expressions (Фильтрующие выражения). Здесь можно создавать фильтры сетевого трафика и управлять ими. Этот момент мы обсудим отдельно.
  • Name Resolution (Преобразование имен). В этом разделе активируются средства Wireshark, позволяющие преобразовывать адреса в имена, более удобные для понимания, в том числе адреса канального, сетевого и транспортного уровня, а также можно указывать максимальное количество параллельных запросов на преобразование имен.
  • Protocols (Протоколы). В этом разделе находятся параметры, влияющие на перехват и отображение различных пакетов, которые Wireshark может декодировать. Правда настраивать параметры можно далеко не для всех протоколов, да и в большинстве случаев, без острой на то необходимости менять здесь ничего не надо.
  • Statistics (Статистика). Название раздела говорит само за себя, здесь находятся параметры отображения и ведения статистики.
  • Advanced (Продвинутый). Параметры которые не вошли не в одну из перечисленных категорий, либо предназначены для более тонкой настройки функционала. Вот сюда точно лезть не нужно.

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

Перейдем в Edit->Preferences и во вкладке Appearance выберем раздел Columns, здесь жмем на плюсик и добавляем такие колонки, с такими параметрами:

  • Title: Channel, Type: Custom, Fields: wlan_radio.channel – будет показывать нам канал в котором перехвачен пакет;
  • Title: Signal Strenght, Type: Custom, Fields: wlan_radio.signal_dbm – покажет мощность сигнала в канале в момент перехвата пакета.

Расшифровка беспроводного трафика

Когда мы запустили захват трафика на интерфейсе wlan0mon ты наверняка обратил внимание, что в Packet List отображается всё что угодно кроме того что нужно, а именно из полезной информации там можно найти только название сети (SSID) и MAC адреса (на самом деле кое-что ещё есть), а какой-нибудь интересной информации нет, от слова “совсем”. На самом деле она есть, просто она зашифрована. Почему так? Ответ банален – потому что трафик шифруется. Соответственно надо его расшифровать, а для этого надо понимать некоторые процессы которые происходят в wi-fi сетях. 

При передаче данных по wi-fi трафик шифруется с использованием ключа PTK (Pairwise Transient Key). При этом этот ключ динамичный, то есть создаётся заново для каждого нового соединения, а соответственно трафик для каждого соединения в одной и той же сети зашифрован разными PTK. Когда какой-нибудь клиент переподключается, то и PTK тоже меняется. Что бы этот самый PTK узнать необходимо перехватить четырёх этапное рукопожатие, ну и знать пароль, имя (SSID) wi-fi сети и канал на котором она работает. 

Как узнать пароль wi-fi сети я статью уже писал, поэтому примем за аксиому что он у тебя есть, а SSID и канал мы и так видим в Wireshark, вопрос остаётся только в PTK. Соответственно нужно перехватить рукопожатие и не какое-нибудь, а именно то которое произошло между интересующим нас клиентом и точкой доступа непосредственно перед обменом интересующей нас информацией. Так как наш адаптер уже в режиме мониторинга, а необходимые нам данные мы видим в Packet Details при нажатии на пакет из интересующей нас сети:

То сразу открываем терминал и запускаем перехват рукопожатия:

sudo airodump-ng wlan0mon --channel 11 --write 123

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

aireplay-ng --deauth 100 -a 3c:15:c2:f0:b8:4c wlan0mon

и спустя небольшой промежуток времени видим в правом верхнем углу нашего терминала появилась надпись: WPA handshake

это означает, что рукопожатие мы получили, а значит успех близок. Вернемся в Wireshark.

В Filter Toolbar нужно написать:

eapol

Это необходимо что бы убедится что рукопожатие действительно у нас, если это так – можем продолжать. Теперь сделаем то, что я чуть раньше предупреждал не делать, а именно поменяем настройки протоколов. Идём Edit-> Preferences и выбираем вкладку Protocols, в ней нам надо найти IEEE 802.11 и поставить галку Enable decryption после чего нажать Edit

в появившемся окне жмём “+” и там где Key type выбрать wpa-pwd, а там где Key нужно ввести через двоеточие “пароль:имя сети”, потом нажать ОК и сохранить изменения в настройках протокола.

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

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

WP2Social Auto Publish Powered By : XYZScripts.com