Перехват пакетов wifi mac os

Обновлено: 07.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Опасно ли пользоваться открытым Wi-Fi

Интернет-доступ через Wi-Fi в настоящее время очень популярен. Wi-Fi есть во многих квартирах, на рабочих местах. При использовании беспроводного доступа важно поддерживать безопасность своей Точки Доступа (смотрите статью «Как защитить Wi-Fi роутер от взлома»).

В настоящее время также очень популярными стали публичные сети Wi-Fi. Они есть в ресторанах, спортивных залах, в торговых центрах, в метро, в отелях, в частных больницах и поликлиниках, в апартаментах и кондоминиумах — их можно найти практически везде, где собирается довольно много людей.

У этих сетей есть особенность — часто это открытые сети Wi-Fi для подключения к которым не требуется пароль. Есть ли какие-то дополнительные правила безопасности для работы с такими сетями?

Да, при использовании открытой Wi-Fi сетью нужно хорошо понимать, что:

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

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

Итак: нужно помнить, что открытые беспроводные сети подвержены перехвату информации.

Далее я покажу пример перехвата данных, из которого вам станет понятнее, что именно может увидеть злоумышленник.

Перехват трафика в открытых Wi-Fi сетях

Для успешной атаке нужен компьютер на Linux (например, с Kali Linux или с BlackArch), а также Wi-Fi карта из этого списка.

Начнём с того, что посмотрим имена беспроводных интерфейсов:


Как можно увидеть, у меня несколько беспроводных интерфейсов, я буду использовать wlp0s20f0u2.

Переводим беспроводной интерфейс в режим монитора:

В предыдущих командах вместо ИНТЕРФЕЙС нужно вписать то имя, которое беспроводной интерфейс имеет в вашей системе. Например, для wlp0s20f0u2 команды выглядят так:

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

  • ИНТЕРФЕЙС — имя беспроводного интерфейса в вашей системе
  • -t OPN — фильтр, который показывает только открытые Wi-Fi сети

У меня интерфейс называется wlp0s20f0u2, поэтому я запускаю следующей командой:

Пример полученных данных:


Как можно увидеть, имеется сразу несколько открытых Точек Доступа. В принципе, можно выбрать любую из них для перехвата данных, но нужно помнить, что: для успешного анализа данных важно захватить передаваемые данные и от ТД, и от Клиентов. То есть я могу выбрать для захвата данных дальнюю ТД и, вероятно, я буду захватывать большую часть её беспроводных фреймов, но дело в том, что у Клиентов обычно менее мощные беспроводные передатчики. Также Клиенты могут находиться ещё дальше от меня, чем сама Точка Доступа. По этой причине лучше выбирать самую близкую ТД. Чем больше значение PWR, тем лучше сигнал (на всякий случай напомню: отрицательные числа чем ближе к нулю, тем они больше). Например, в моей ситуации я выбираю ТД с сигналом -35.

Направленные антенны могут значительно улучшить качество беспроводного соединения, если направлены в нужную сторону. Что касается захвата данных, то лучше не использовать направленную антенну, поскольку ТД может быть в одном направлении, а её Клиенты — в других. Желательно использовать большую внешнюю антенну.

Неважно, является ли ТД хот-спотом с авторизацией на веб-интерфейсе (Captive Portal — Перехватывающим Порталом) или просто открытой Точкой Доступа — описанный способ перехвата работает одинаково для любого из этих вариантов.

Для захвата данных вновь запускаем airodump-ng, но уже командой вида:

  • ИНТЕРФЕЙС — имя беспроводного интерфейса,
  • --channel НОМЕР — номер канала, на котором находится целевая ТД
  • --write openap — опция для сохранения захваченных данных в файл. В данном случае название файла будет начинаться с openap (можно поменять на своё усмотрение)

Например, я хочу прослушивать ТД, которая работает на первом канале, для этого я хочу использовать беспроводной интерфейс wlp0s20f0u2 и сохранять перехваченную информацию в файл, имя которого начинается на openap, тогда моя команда следующая:


Далее ждём, когда соберётся достаточно данных. Анализировать данные можно прямо в процессе захвата — без остановки airodump-ng.

Анализ трафика в открытых Wi-Fi сетях

В процессе работы airodump-ng будет создан файл с расширением .cap, например, openap-01.cap.

Для анализа данных можно использовать разные программы, я покажу анализ беспроводного трафика с Wireshark.

Откройте файл с захваченными данными в Wireshark.

Для выделения разных данных нам понадобятся фильтры Wireshark. Здесь я покажу пример использования только некоторых фильтров, рекомендуется изучить большую подборку полезных фильтров Wireshark здесь.

Для оценки качества захвата, можно начать с фильтров, которые выводят результаты анализа TCP протокола.


Этот фильтр выводит информацию о фреймах с флагом ACK, которые являются дублями. Большое количество таких фреймов может говорить о проблемах связи между Клиентом и Точкой Доступа.

Фильтр показа фреймов для которых не захвачен предыдущий сегмент:


Это нормально в начале захвата данных — поскольку информация перехватывается не с самого начала. Но если эта ошибка часто возникает в дальнейшем, значит вы находитесь слишком далеко от Точки Доступа или Клиентов и вы не захватывает часть данных, которые они передают.

Для показа фреймов, которые являются ретрансмиссией (отправляются повторно):


Большое количество таких фреймов может говорить о том, что между Клиентом и ТД плохая связь и им часто приходится отправлять повторно одни и те же данные.

С помощью фильтра


Можно увидеть ARP трафик — с его помощью удобно анализировать, сколько всего устройств в данный момент подключено к локальной сети, какие у них IP адреса и какие MAC адреса. Зная MAC адрес устройства можно узнать его производителя.

С помощью фильтра

можно увидеть все отправленные DNS запросы.


Например, на скриншоте можно увидеть адреса онлайн кинотеатра Netflix, Facebook, различных сервисов Google.

Здесь можно узнать множество интересной информации. Например, можно увидеть запросы к сервисам и передаваемые данные, в том числе API ключи, идентификаторы устройств и прочее:


Можно увидеть посещённые URL адреса со всеми передаваемыми параметрами:


Видны информация авторизации, используемой при отправке данных:


Видны загруженные и открытые в Интернете файлы:


Вы можете сохранить любой переданный файл. Для этого выделите мышкой пакет, который его содержит (1), затем в средней панели, которая содержит подробную информацию, пролистните в самый низ, чтобы найти поле с данными и кликните на него правой кнопкой мыши, чтобы вызвать контекстное меню (2), в контекстном меню выберите Export Selected Packet Bytes (3) — Экспортировать байты выбранного пакета:


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

Кто-то обновляет Windows:


Также видны установленные пользователю кукиз или переданные им кукиз:

С помощью фильтра

А с помощью фильтра

можно увидеть запросы, в которых сервер установил кукиз в браузер пользователя.

Соседи скачивают странные торренты:


Переданные методом POST данные также видны:


Для поиска любых переданных изображений:


Для поиска определённых видов изображений:

Для поиска файлов определённого типа:

Поиска в Wireshark запросов на получения файлов определённого типа. Например, для поиска переданных ZIP архивов:



Фильтр, который показывает только данные, переданные методом POST:


Фильтр, который показывает только данные, переданные методом GET:

Поиск запросов к определённому сайту (хосту):

Поиск запросов к определённому сайту по части имени:

Заключение

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


Приложение iPhone постоянно загружает какие-то (аудио?) файлы не используя безопасное соединение:



Гарантированной защитой от такого перехвата является использование доверенного VPN сервиса. Надёжным VPN сервисом можно считать тот, который вы настроили сами, либо VPN вашей корпоративной сети.

Стандартом де-факто в вардрайвинге обычно считается система Linux (модифицированные драйвера, Kismet в связке с aircrack-ng). Но немногие знают, что в маке есть мощные инструменты для взлома и аудита безопасности беспроводных сетей, ни чуть не уступающие, а во многом и превосходящие по функционалу Linux-аналоги.



Для ознакомления с общими понятиями вардрайвинга рекомендуется почитать эту статью

Kismac — Мощная программа «всё в одном». Большим преимуществом перед линуксом является то, что драйвера wi-fi карт интегрированы сразу в программу и не нужно устанавливать дополнительные модули. Все действия по сканированию сети, сбору и анализу трафика (в линуксе команды airdump, airmon, airplay) выполняются в одном месте из графического интерфейса, что значительно упрощает процесс.


  • пассивный сканер/сниффер
  • инъекция пакетов
  • запись дампа в стандартном формате PCAP, понятном для всех анализаторов пакетов (например Wireshrak)
  • при наличии GPS модуля может отмечать найденные сети на карте
  • звуковая индикация мощности сигнала (как металлоискатель)
  • запись дампа с сервера kismet drone

В Kismac также есть интструменты для дешифровки WEP/WPA алгоритмов, но авторы программы говорят, что они давно не разрабатываются и рекомендуют использовать последнию версию aircrack-ng, которую можно установить из исходников или с помощью системы портов fink.

Выбор оборудования

Встроенная в макбук карта «Airport Extreme» не годится для вардрайвинга. Ею невозможно проводить инъекции пакетов, а из-за низкой чувствительности приемника сбор трафика для анализа нужно производить в непосредственной близости от источника сигнала. Единственное, для чего она годится — первичный осмотр сетей: можно узнать тип используемого шифрования, наличие клиентов на точках и т. д.

Для более глубокого изучения необходима карта, поддерживающая инъекцию пакетов (см. список устройств). Наиболее оптимальным выбором будет карта Alfa AWUS036H на чипсете RTL8187L. Ее рекомендуют разработчики kismac и aircrack-ng. Поддерживается всеми вардрайверскими программами во всех операционных системах, обладает очень чувствительным приемником. Мощность передачтика 500 милливатт. Оснащена разьемом RP-SMA для подключения внешних антенн.
Китайцы делают эти карты под разными названиями, например G-SKY или IDU-2850UG-8G или Kinmax.
В принципе, можно выбрать любую из поддерживаемых карт, но у этой лучшие характеристики, стоит дешево и легко найти.


Чтобы начать работать, нужно выбрать драйвер для вашего устройства:
KisMac => Preferences… => Driver


Для знакомства с программой и за неимением других карт выбираем Airport Extreme Passive mode.

Channel Hopping — выбираем все европейские каналы 1-11.
Use as primary device — чтобы активировать функцию инъекции пакетов (невозможно в Airport)
Dump Filter — какие данные записывать в дамп-файл, выбираем «Keep everything».
Save Dumps At — путь и название дамп-файла.


Теперь можно начать сканирование. Программа сообщит обо всех найденных сетях. Изменяющееся цифры в нижнем правом углу означают, что устройство находится в режиме Channel Hopping, прыгая по частотам чтобы обнаружить сети работающие на всех каналах. Также необходимо иметь ввиду, что карта прыгает по каналам очень быстро (скорость настраивается при выборе драйвера), поэтому есть вероятность, что некоторые сети могу быть не обнаружены. Чтобы исключить это, можно пройтись по каждому каналу отдельно. Когда вы выбрали интересующую сеть, необходимо остановить Channel hopping и установить канал, на котором работает выбранная сеть.


При двойном клике по выбраной сети будет показана подробная информация.
Слева — техничесская информация, справа — список клиентов подключюенных к точке. Реально подключенные клиенты имеют значение Last Seen.

Важным фактором является уровень сигнала.
Signal — мощность сигнала
AvgSignal — качество сигнала (полезный сигнал с учетом помех)
MaxSignal — максимально зафиксированный уровень сигнала

Для успешных инъекций пакетов сигнал точки и сигнал клиента не должен быть ниже 40-50. Необходимо найти оптимальное положение антенны, при котором сигнал будет максимальным. Иногда изменение положения даже на один сантиметр может существенно повлиять на уровень сигнала. Так же можно включить звуковую индикацию мощности сигнала в меню «Network => Monitor Signal Strenght», в зависимости от уровня сигнала будет меняться тональность звука.

Сниффинг в откртых сетях

В сетях без шифрования весь траффик может быть свободно просмотрен. Для этого достаточно настроить карту на прослушивание частоты, на которой работает сеть (Main channel), и собирать весь трафик в файл. После чего дамп можно просматривать анализатором пакетов.


Вот, например, за соседним столиком в кафе Вася !*SuPeR-ViP*! Пупкин залогинился вконтактик:

В нагруженных сетях дампы наполняются очень быстро, и чтобы ускорить открытие дампа wireshark-ом можно применять фильтры. Например делать выборку только по протколу или IP. Так же можно отключить резолв адресов.

Взлом WEP

Суть состоит в том, чтобы собрать большое количество служебных пакетов, содержащих вектор инициализации (Initial Vector), и из них дешифровать ключ сети. Векторы инициализации передаются для контроля соеднинения точки с клиентом, соответсвенно, атака осуществима только при налии подключений к точке.

Для успешного нахождение ключа необходимо собрать более 70 тысяч пакетов (на практитке достаточно и 20 тысяч). Собрать такое количество, пассивно слушая эфир, не представляется возможным. Для ускорения процесса существует метод инъекции пакетов, чтобы заставить хосты генерировать большое количество IV-пакетов. Для начала инъекции необходимо иметь какое-то количество Initial Vectors, поэтому можно просто подождать или же нагнать трафик флудом авторизации: Network => Authentication Flood (Подобие DoS-атаки. Будьте осторожны с этой опцией, точка доступа может зависнуть). После этого можно начинать инъекции:Network => Reinject Packets.

Если попытка иньекций была удачной, количество нужных нам пакетов (Unique IV’s) начнет резко увеличиваться.

Запустим паралельно дешифровку ключа, используя программу aircrack-ng.
В терминале вводим:

Если не указывать mac-адрес атакуемой точки доступа, программа предложить выбрать из всех точек найденных в дампе. Указать mac-адрес можно опцией -b:

Взлом WPA/WPA2

На сегодняшний день алгоритм WPA является достаточно надежным. Единственная возможность взлома — брутфорс (перебор по словарю).
Задача состоит в перехвате «handshake» (рукопожатия) в момент авторизации клиента на точке доступа и последующего перебора паролей по словарю. Для этого нам необходимо либо дождаться момента когда клиент придет логиниться либо попытаться разорвать уже имеющиеся соединения для того чтобы спровоцировать повторное подключение:

Network => Deauthenticate


Важно поймать обе части рукопожатия: Challenge и «Response. В случаи успеха красная точка Ch/Re станет зеленой.
Часто случается, что удается поймать только ответ точки (Challenge), а ответ маломощного клиента (например мобильного телефона) не удается. В таком случае нужно найти положение антенны, в котором будет максимальным сигнал клиента

Перебор ключа выглядит так:

где keys.txt — путь к словарю, 00:00:00:00:00:00 — mac-адрес атакуемой точки, dump.file — путь к файлу с хендшейком.

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

для WEP шифрования ключ задается опцией -w:

для WPA/WPA2 опцией -e имя_сети -p ключ_сети:

В результате будет создан дешифрованный дамп-файл который уже можно просматривать анализатором пакетов.

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

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

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

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

Основные принципы реализации срытой атаки на WiFi сеть

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

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

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

Утилита Airodump-ng — это набор программ для обнаружения беспроводных сетей и перехвата передаваемого по этим сетям трафика, доступная для всех популярных операционных систем, включая UNIX, Linux, Mac OS X и Windows, которая, в том числе, способна работать на виртуальных машинах и одноплатных компьютерах Raspberry Pi. Airodump-ng также, как и Wireshark, широко применяется для сетевого аудита, как, впрочем, и используется злоумышленниками.

Итак, давайте детально разберемся на основе пошагового практического примера, как злоумышленники могут реализовать скрытый взлом Wi-Fi-сети, чтобы в дальнейшем мы могли детально оценить, насколько уязвимы наши беспроводные сети. В рамках данного практического руководства мы будем использовать систему на базе Kali Linux для сбора, дешифровки и анализа беспроводных сетевых данных, генерируемых Wi-Fi-роутером, которым мы сами же и управляем.

Шаг 1 Определение целевого Wi-Fi-роутера.

Чтобы с помощью утилиты Airodump-ng включить режим мониторинга на беспроводном адаптере, используйте следующую команду:

«airmon-ng start wlan0»

Скриншот визуального представления запуска данной команды представлен на рисунке 1.

Рисунок 1. Демонстрация запуска команды «airmon-ng start wlan0» для включения режима мониторинга на беспроводном адаптере с помощью утилиты Airodump-ng.

Затем следует найти целевую беспроводную сеть (для нашего практического примера был использован маршрутизатор «Null Byte»). Для просмотра работающих в зоне вашей доступности сетей Wi-Fi используйте следующую команду:

Скриншот визуального представления запуска данной команды представлен на рисунке 2.

Рисунок 2. Демонстрация запуска команды «airodump-ng wlan0mon» для просмотра доступных в окрестности сетей Wi-Fi с помощью утилиты Airodump-ng.

Обратите пристальное внимание на такие характеристики выбранной вами Wi-Fi-сети, как «BSSID», «CH», и «ESSID». Эта информация понадобиться для идентификации данных, передаваемых на беспроводный маршрутизатор, чтобы успешно реализовать процесс по их захвату и сбору.

Шаг 2. Захвата WiFi трафика

Чтобы начать сбор данных, относящихся к целевой WiFi сети, используйте следующую команду (обратите внимание, что в данной команде вам следует заменить выделенные курсивом и подчеркнутые части на те, которые актуальны для вашего конкретного случая):

«airodump-ng --bssid TargetMACaddressHere --essid RouterNameHere -c ChannelNumber -w SaveDestination wlan0mon»

  • «TargetMACaddressHere» — это MAC-адрес целевого Wi-Fi-роутера (или значение «BSSID» из примера выше);
  • «RouterNameHere» — это имя целевого Wi-Fi-роутера (или значение «ESSID» из примера выше);
  • «ChannelNumber» — это номер канала целевого Wi-Fi-роутера (или значение «CH» из примера выше);
  • «SaveDestination» — это выбранный для сохранения каталог и имя создаваемого файла.

Скриншот визуального представления с примером ввода данной команды представлен на рисунке 3.

Рисунок 3. Пример ввода команды из утилиты Airodump-ng для старта сбора данных, относящихся к целевому Wi-Fi-роутеру «Null Byte».

Как вы можете видеть, в нашем примере мы указываем папку для сохранения собранных данных «/tmp» и имя файла «null_byte», используя аргумент «-w». Программа Airodump-ng автоматически добавит число в конец имени файла, поэтому на самом деле собранные данные в нашем практическом примере были сохранены в файле с именем «null_byte-01.cap». На рисунке 4 проиллюстрировано, что можно увидеть на запущенном терминале утилиты Airodump-ng.

Рисунок 4. Скриншот запущенного терминала утилиты Airodump-ng.

Самой важной вещью, которую вы можете наблюдать на запущенном терминале утилиты Aireplay-ng, является рукопожатие WPA («WPA handshake»), расположенное в правом верхнем углу экрана (смотрите рисунок 4). «Рукопожатие» должно произойти, чтобы Wireshark позже смог расшифровать захваченный трафик Wi-Fi. Другими словами, после того, как вы начали сбор данных с помощью Aireplay-ng, вам необходимо переподключить подсоединенные к целевому Wi-Fi-роутеру устройства, трафик которых вы собираетесь проанализировать. К слову, для этих целей можно использовать встроенные возможности Aireplay-ng по принудительному отключению устройств от сети, чтобы инициировать переподключение и, соответственно, запуск процесса рукопожатия WPA. Но этот шаг может причинить неудобство и вызвать подозрения у пользователей, подключенных к сети.

Пока терминал Airodump-ng запущен, данные будут накапливаться. Терминал Airodump-ng может работать несколько часов или даже дней. В нашем практическом примере сеанс Airodump-ng по сбору пакетов длился чуть более 15 минут. Длительность сеанса можно увидеть в верхнем левом углу терминала (смотрите рисунок 4).

Когда будет собрано достаточное количество данных, сеанс Airodump-ng можно остановить, нажав «Ctrl + C». Теперь в каталоге «/tmp» будет файл «null_byte-01.cap» (или как вы его назвали). Этот файл с расширением «.cap» можно будет открыть с помощью Wireshark.

Шаг 3. Установка последней версии сниффера Wireshark

Прежде всего, необходимо запустить из консоли команду обновления «apt-get», чтобы получить доступ к загрузке последней, протестированной и поддерживаемой (разработчиками Kali Linux) версии Wireshark. Для этого откройте терминал и введите следующую команду:

«sudo apt-get update»

Затем используйте следующую команду для установки Wireshark:

«sudo apt-get install wireshark»

К слову, вы можете использовать символ двойного амперсанда «&&» между двумя этими командами. Это даст указание терминалу сначала синхронизировать индекс пакета с его источниками (репозиториями Kali Linux). А затем (и только при условии успешного обновления) будет установлен Wireshark. Скриншот выполнения этих команд представлен на рисунке 5.

Рисунок 5. Установка сниффера Wireshark в Kali Linux.

Шаг 4. Запуск инструментария Wireshark

Wireshark, после успешной установки, можно будет найти в категории «Sniffing & Spoofing» в меню «Applications». Чтобы запустить Wireshark, просто кликните на значок (смотрите рисунок 6).

Рисунок 6. Запуск инструментария Wireshark в Kali Linux.

Шаг 5. Настройка Wireshark для дешифровки трафика WiFi

Чтобы использовать Wireshark для дешифрования данных, находящихся в файле с расширением «.cap», нажмите кнопку «Edit» в верхней панели, затем выберите «Preferences», и разверните раскрывающееся меню «Protocols». Визуальный скриншот представлен на рисунке 7.

Рисунок 7. Раскрывающееся меню «Protocols» в разделе «Preferences» в Wireshark.

После этого прокрутите вниз и выберите опцию «IEEE 802.11». Поле добавления, расположенное рядом со значением «Enable decryption», должно быть отмечено галочкой. Затем кликните на кнопке «Edit», чтобы добавить ключи дешифрования («Decryption keys») для конкретной сети Wi-Fi. Визуальный скриншот представлен на рисунке 8.

Рисунок 8. Выбор ключей дешифрования для конкретной сети Wi-Fi в Wireshark

Откроется новое окно, в котором необходимо указать пароль и имя Wi-Fi-роутера. Для этого, прежде всего, выберите для значения «Key type» параметр «wpa-pwd». Этот тип ключа необходим для добавления пароля WPA в виде обычного текста. При вводе учетных данных пароль и имя беспроводного маршрутизатора разделяется двоеточием (например, так — «password:router_name»). В нашем практическом примере для Wi-Fi-сети «Null Byte» был использован сверхнадежный пароль в виде длинной закодированной стоки, поэтому текст для значения «Key» получился следующим: «bWN2a25yMmNuM2N6amszbS5vbmlvbg==:Null Byte» (визуальный скриншот представлен на рисунке 9). Если же у вас, к примеру, пароль «Wonderfulboat555» к Wi-Fi-роутеру «NETGEAR72», то у вас должна получиться следующая строка: «Wonderfulboat555:NETGEAR72».

Рисунок 9. Установленные ключи дешифрования для конкретной сети Wi-Fi в Wireshark

Нажмите «ОК», чтобы сохранить учетные данные. Теперь, после импортирования файла с расширением «.cap», в котором находятся данные перехваченного беспроводного трафика, Wireshark сможет автоматически расшифровывать данные, относящиеся к Wi-Fi-сети «Null Byte».

Шаг 6. Проведение подробного анализа пакетов (Perform Deep Packet Inspection, DPI)

Чтобы импортировать файл с захваченными и сохранными пакетами данных, нажмите на кнопку «File» на верхней панели, а затем выберете «Open». В нашем случае файл с расширением «.cap» был сохранен в каталоге «/tmp»; выбираем его и нажимаем «Open». В зависимости от того, как долго утилита Airodump-ng собирала данные, Wireshark может потребоваться несколько минут для импорта и дешифрования всех данных. Визуальный скриншот этого действия представлен на рисунке 10.

Рисунок 10. Импортирование файла с расширением «.cap» в Wireshark.

После открытия файла с расширением «.cap» в Wireshark вы можете обнаружить тысячи строк необработанного веб-трафика. На первый взгляд это может выглядеть пугающим. К счастью, в Wireshark есть фильтры отображения («Display Filters»), которые можно использовать для сортировки и фильтрации ненужных пакетов. В сети вы можете найти огромное количество фильтров отображения, которые помогают пользователям провести тонкую настройку Wireshark, чтобы точечно идентифицировать актуальную и деликатную информацию. Далее, в рамках данного практического руководства, мы расскажем о нескольких наиболее эффективных фильтрах отображения, которых злоумышленники очень часто используют для проверки активности, происходящей в сети.

1. Поиск данных, содержащих запросы метода POST

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

Итак, чтобы использовать фильтр для получения данных, содержащих POST-запросы, введите приведенную ниже строку в поле ввода фильтра отображения Wireshark:

Рисунок 11. Фильтр отображения для идентификации данных POST-запросов в Wireshark.

Если в файле с расширением «.cap» Wireshark найдет POST-запросы, то он отобразит их в информационном в столбце «Info» в виде строк, содержащие данные POST. Двойной щелчок по одной из этих строк приведет к появлению нового окна Wireshark, содержащего дополнительную информацию. Прокрутите вниз и разверните раскрывающийся список «HTML Form», чтобы просмотреть данные.

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

Более детальная информация представлена на рисунке 12.

Рисунок 12. Личная и конфиденциальная информация, найденная сниффером Wireshark при использовании фильтра отображения данных, содержащих POST-запросы

Как вы можете видеть, веб-сайт запросил введение формы пароля, который при обнаружении злоумышленники могут добавить в списки паролей и использовать его при проведении дальнейших атак грубой силы на сеть (с использованием метода перебора). Кроме того, люди часто используют идентичные пароли для нескольких учетных записей. Вполне возможно, что найденный пароль может предоставить злоумышленникам доступ к электронному адресу Gmail, также указанному в данных POST.

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

Рисунок 13. Личная информация, найденная Wireshark при использовании фильтра отображения данных, содержащих POST-запросы.

Поиск данных, содержащих запросы метода GET

Чтобы использовать фильтр для получения данных, содержащих GET-запросы, введите приведенную ниже строку в поле ввода фильтра отображения Wireshark:

Рисунок 14. Скриншот примера использования фильтра отображения для идентификации данных GET-запросов в Wireshark

Многие веб-сайты добавляют окончания «.html» или «.php» к концу своих URL-адресов (смотрите рисунок 14). Эта закономерность может быть использована в качестве индикатора веб-сайтов, просматриваемых кем-то в сети Wi-Fi.

Кроме того, для оптимизации поиска будет не лишним отсеять все GET-запросы, связанные с CSS (Cascading Style Sheets, каскадные таблицы стилей), для описания стилей и шрифтов, так как эти виды запросов не задаются пользователями напрямую, а происходят в фоновом режиме, когда кто-то просматривает веб-страницы в Интернете. Чтобы использовать фильтр для получения данных, содержащих GET-запросы и одновременно отфильтровать содержимое CSS, введите приведенную ниже строку в поле ввода фильтра отображения Wireshark:

Рисунок 15. Отображение в Wireshark подробной информацией об активности пользователя через данные «Hypertext Transfer Protocol»

Из информации, которую пересылает о себе клиентское приложение User-agent, мы можем идентифицировать, что наша жертва использует компьютер под управлением Windows и браузер Chrome. Эта информация очень ценна для злоумышленников, так они теперь смогут более целенаправленно выбирать «полезные нагрузки» (payload) при осуществлении атаки эксплоита для получения доступа к системе этого пользователя, учитывая специфические свойства и уязвимости используемой им версии операционной системы Windows.

Что эта тривиальная и на первый взгляд «неопасная» информация может сказать злоумышленнику? Много. Прежде всего, использование поисковой системы DuckDuckGo вместо стандартной для большинства Google, может указывать на человека, который заботится о своей конфиденциальности, поскольку Google известен своими агрессивными политиками в области собирания и использования личных данных своих пользователей. А тот, кто заботится о конфиденциальности, может также интересоваться защитным программным обеспечением, таким как антивирусные программы. И это то, что хакеры также будут учитывать при создании «полезной нагрузки» для этого пользователя.

3. Поиск данных DNS-запросов

Поиск DNS-запросов в файле с разрешением «.cap» (с перехваченным беспроводным трафиком) поможет злоумышленникам понять, какие веб-сайты часто посещают люди, подключенные к целевому маршрутизатору. Злоумышленники также смогут увидеть доменные имена, принадлежащие веб-сайтам, которые получают и отправляют зашифрованные данные на такие веб-сайты, как Facebook, Twitter и Google.

Чтобы использовать фильтр для получения данных, содержащих DNS-запросы, введите приведенную ниже строку в поле ввода фильтра отображения Wireshark:

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

image

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

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

Дешифровка зашифрованных пакетов

Когда в вашей Wi-Fi сети используется шифрование при помощи технологии WPA2, безопасность сессии основана на двух составляющих. Во-первых, пароль, используемый для генерации гораздо более длинного числа (PSK или pre-shared key). Во-вторых, собственно само рукопожатие, происходящее во время установки соединения. Если злоумышленник получает PSK к Wi-Fi и наблюдает, как вы подключаетесь к сети (или на некоторое время сбрасывает ваше соединение), то впоследствии сможет расшифровать ваш Wi-Fi трафик и узнать, чем вы занимаетесь.

Как работает схема

Для реализации атаки необходимо выполнение нескольких условий. Во-первых, нужен пароль. Кроме того, нужно быть рядом с жертвой для перехвата трафика и уметь отключить целевое устройство от сети для повторного подключения. Мы запустим Wireshark, выполним настройки, связанные с дешифровкой Wi-Fi пакетов, добавим PSK и дождемся EAPOL пакетов с целевого устройства, пытающегося подключиться к сети.

Что понадобится

Вам понадобится карта беспроводного сетевого адаптера с режимом мониторинга (беспроводной сети) и смартфон с iOS или Android, подключенный к Wi-Fi, которую вы собираетесь мониторить. Вы можете попрактиковаться на открытой сети, чтобы примерно понимать, какие результаты вы получите, поскольку вначале расшифровка может не сработать. Кроме того, вам нужно знать пароль и имя сети, которую вы хотите мониторить. В этом случае вы сможете вычислить ключ PSK, позволяющий дешифровать трафик в режиме реального времени.

Шаг 1. Загрузка Wireshark и подключение к Wi-Fi сети

Загрузите и установите Wireshark, после чего подключитесь к целевой Wi-Fi сети. Если вы планируете использовать PSK, а не сетевой ключ, нужно сделать вычисления при помощи WPA PSK Generator, поскольку во время перехвата у вас может не быть доступа к интернету (зависит от используемой карты).

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


Рисунок 1: Перечень сетевых интерфейсов

Шаг 2. Настройка перехвата в Wireshark

В меню Wireshark кликните иконку в виде шестеренки, чтобы зайти в раздел «Capture options»


Рисунок 2: Интерфейс Wireshark

Появится окно Capture Interfaces (Интерфейсы перехвата), как показано на рисунке ниже.


Рисунок 3: Перечень интерфейсов

Шаг 3. Перехват и сканирование EAPOL пакетов

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



Рисунок 4: Перехваченные пакеты

Шаг 4. Дешифровка трафика при помощи PSK

Теперь, когда у нас появились рукопожатия, можно приступать к расшифровке трафика. Вначале нужно добавить сетевой пароль или PSK. Зайдите в выпадающее меню «Wireshark» и выберите раздел «Preferences». Затем кликните на «Protocols».


Рисунок 5: Настройки, связанные с протоколами

В разделе Protocols выберите «IEEE 802.11» и кликните на флажок «Enable decryption». Для добавления сетевого ключа кликните на «Edit», рядом с надписью «Decryption keys». В открывшемся окне добавьте пароли и PSK.


Рисунок 6: Активация дешифровки


Рисунок 7: Добавление ключа

По завершению процедуры кликните на «OK» в разделе Preferences. Теперь Wireshark должен пересканировать и попробовать дешифровать все перехваченные пакеты. По некоторым причинам эта схема может не сработать. У меня практически всегда работало при наличии качественного рукопожатия (EAPOL) и при переключении между сетевым паролем и PSK. В случае успешной расшифровки мы можем перейти к следующему шагу и проанализировать трафик для выяснения, какие приложения работают на устройстве.

После снятия защиты с трафика, можно приступать к расшифровке пакетов и выяснению, чем занимаются устройства в Wi-Fi сети, по которым получены рукопожатия, в режиме реального времени.

1. DNS запросы

Просмотр интересных пакетов начнем с DNS запросов, используемых приложением для проверки неизменности IP-адресов, к которым происходит подключение. Обычно происходит обращение к именам доменов, содержащих имена приложений, что значительно упрощает идентификацию программы, которая работает на iPhone и Android и выполняет запросы.


Рисунок 8: Перечень DNS запросов


Использование приложения Signal – хорошая идея, но в связке с VPN еще лучше. Причины? Даже при открытии Signal происходит взаимообмен, показанный ниже, что свидетельствует о коммуникации через мессенджер с шифрованием.


Рисунок 10: Пример запроса мессенджера Signal

Во время прослушивания песен в приложении Shazam создаются следующие запросы:


Рисунок 11: Пример запроса во время прослушивания песен в Shazam

При открытии Uber создаются запросы следующего содержания:


Рисунок 12: Пример запроса при открытии приложения Uber

Ниже виден эффект, возникающий при открытии Venmo (приложение для перевода денежных средств). Удачный момент для перенаправления запроса куда-нибудь в другое место.


Рисунок 13: Пример запроса, отправляемый приложением Venmo


Рисунок 14: Пример содержимого раздела Hypertext Transfer Protocol у пакета



Рисунок 15: Сайт приложения WeChat

Если мы хотим увидеть всю историю резолвинга, то можем зайти во вкладку «Statistics» и выбрать «Resolved Addresses» для просмотра всех доменов, которые были преобразованы во время перехвата. Здесь должен быть полный список служб, к которым подключалось устройство через запущенные приложения.


Рисунок 16: Список доменов, к которым проходило подключение

Вышеуказанный список позволяет еще быстрее понять, что представляет собой целевое устройство.

Заключение

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

Надеюсь, это руководство, посвященное перехвату Wi-Fi трафика при помощи Wireshark, вам понравилось.

Читайте также: