Как сканировать трафик wifi
Этичный хакинг и тестирование на проникновение, информационная безопасность
Опасно ли пользоваться открытым 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 вашей корпоративной сети.
Привет! Эта статья будет про перехват трафика Wi-Fi роутера в целях выявления утечек в личной сети. Узнаем, как всякие злодеи пытаются проводить такие атаки, посмотрим на методы защиты, просто послушаем ерундовые истории. В общем, кратко и по сути.
Статья, наш портал WiFiGid и автор не призывают к нарушающим закон действиям. Все описанное применяется исключительно в сети, где у вас имеется разрешение на подобные деяния, в целях повышения безопасности этой сети. Все злодеи идут лесом.
Очень мало теории
Все технологии перехвата трафика базируются на технике MITM – Man In The Middle – Человек Посередине. Т.е. атакующее устройство внедряется между отправителем и получателем, транслирую весь трафик через себя. Подобное в локальной сети возможно из-за уязвимости ARP протокола. Вы можете подделать широковещательный ответ, а все подключенные устройства в рамках одного сегмента сети будут думать, что вы, например, роутер.
На этом ARP-спуфинге и построены многие программы и скрипты. Конечно же, все доступно открыто и безвозмездно, при условии использования для тестирования безопасности своей сети. Техники применения нескольких из них мы и рассмотрим ниже.
Предупреждение. Пользуясь общественными сетями, вы подвергаете себя опасности эксплуатации этой уязвимости. Будьте осторожны, не пользуйтесь в таких сетях ресурсами, которые могут привести к утечкам ваших паролей.
Методы защиты
На любую атаку есть свои методы защиты, иначе бы и не было возможности скрыться от всего этого. Вот основные фронты обороны:
- Специальные ARP-мониторы. Например, arpwatch и BitCometAntiARP. Их суть – установить соответствие между IP и MAC, а в случае подмены принять решение (заблокировать).
- Создание виртуальных сетей VLAN. Т.е. можно выделить доверенные сегменты сети и «гостевые». В рамках сегмента проведение атаки будет возможным.
- VPN подключения – PPTP и PPPoE.
- Шифрование трафика. Например, используя IPSec.
Cain&Abel
Cain&Abel (Каин и Авель) – классический инструмент для проведения ARP-атак. Упоминается во всех учебниках безопасников очень долгие годы (и даже в последней редакции EC-Council). Графический инструмент, Windows, все интуитивно понятно. Ниже будет пример использования.
- Запускаем программу и переходим на вкладку Сниффера:
- Нужно, чтобы здесь отобразились устройства сети. Если их нет, нажимаем на значок плюса:
- Выбираем подмену – слева адрес жертвы, справа другое устройства (будем маскироваться под роутер):
- Смотрим статус. Poisoning означает, что перехват начался, подмена выполнена успешно:
- На вкладке Passwords будут перехваченные данные.
Airodump и Wireshark
Использование этих инструментов не ограничено этим частным случаем.
Этот очень краткий раздел посвящен пользователям Kali Linux. Все знают, что здесь есть готовые средства использования перехвата, поэтому знатокам исключительно для справки. Примерный алгоритм действий (для использования беспроводного адаптера):
- Переходим нашу Wi-Fi карту в режим монитора. В таком режиме беспроводной адаптер не фильтрует все пакеты (которые были отправлены не ему), а принимает все. Вариантов сделать это много, наверняка знаете свой самый удобный.
- Запускаете Airodump. Например, следующая команда выведет открытые сети:
- А теперь для выбранного канала можно начать перехват данных и запись их в отдельный файл:
Intercepter-NG
Еще одна понятная и простая утилита. Среди новых статей именно ее отмечают больше, чем даже классику Каина-Авеля. Так что кратко разберем и эту чудо-утилитку.
А что для Android?
А Android и тем более всякие iOS лично я вообще не рекомендую использовать в профессии безопасника на текущий день. Если только не использовать мобильную Кали… Из доступных же общей публике сейчас не осталось почти ничего для перехвата трафика с телефона. Т.е. если вы не профи – мимо, если же вы разбираетесь – Кали.
В былые времена на Андроиде была доступна DroidSheep. Но со временем «овца» не так уж и много шерсти дает. Но DNS и ARP-спуфинг поддерживает. В теории возможно применение как поддельной точки доступа.
Fern Wifi Wireless Cracker
Еще одна популярная в последнее время программка на Линукс, являющая оболочкой для многих известных утилит. Это комбайн с возможностями перехватывать и сохранять данных (в том числе паролей и кук).
На этом статью и заканчиваю. Инструментарий, как и технологии, меняются не так часто, но если вдруг в будущем появится инструмент, обходящий по популярности описанные выше – я его обязательно добавлю к общему списку. Вы же в свою очередь можете поделиться своим мнением в комментариях. Берегите себя и своих близких!
Определение уязвимых устройств и веб-сервисов на вашем целевом беспроводном маршрутизаторе может стать сложной задачей, так как хакеры способны провести атаку на вашу беспроводную сеть, не оставив следов в ваших лог-файлах, а также других признаков своей активности. В этом материале мы расскажем про способ организовать скрытый перехват, дешифровку и анализ 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:
Этот вид мониторинга может показаться агрессивным, однако имейте ввиду, что ваш провайдер также хранит эти данные в логах и имеет право продавать информацию на сторону.
Допустим, нужно узнать, какие приложения используются на телефоне. Если вы находитесь в одной 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, вам понравилось.
Пакет с сертификатами от Хабра
Wireshark — очень известная программа для захвата и анализа сетевого трафика, незаменимый инструмент хакера, сетевого инженера, программиста, специалиста по безопасности. Да вообще любого любознательного человека, который хочет детально изучить трафик со своего или чужого мобильного телефона, фитнес-браслета, телевизора.
Wireshark в реальном времени перехватывает сетевые пакеты и сохраняет, например, в файлах pcap (Packet Capture). Их потом используют для изучения трафика, восстановления информации, анализа работы сети, обнаружения атак. Это альтернатива и дополнение к стандартной утилите tcpdump , с графическим интерфейсом, фильтрами и более широкими возможностями.
В Wireshark миллион функций, но буквально каждый человек с минимальными знаниями может использовать его с пользой. Ниже примеры основных сетевых задач.
Расшифровка трафика SSL/TLS
Chrome и Firefox могут записывать логи сессионных ключей, которые используются для шифрования трафика SSL/TLS. Наша задача — включить запись этих логов, а потом загрузить их в Wireshark для анализа. Предполагается, что у нас есть физический доступ к компьютеру пользователя, трафик которого мы хотим расшифровать. Или к серверу, который устанавливает зашифрованное соединение с пользователем.
Сначала включаем запись ключей.
Старые билды Windows 10
В старых билдах Windows 10 работает старый метод. Заходим в Панель управления → Система и безопасность → Система. На вкладке «Дополнительные параметры системы» нажимаем кнопку «Переменные среды».
Добавляем для пользователя новую переменную SSLKEYLOGFILE и указываем путь до файла.
В результате получаем логи с ключами, начало файла:
Новые билды Windows 10
В более новых версиях после установки Windows 10 старый способ добавления переменных окружения может больше не работать. Тогда есть альтернативный вариант с помощью команды в оболочке PowerShell.
[Environment]::SetEnvironmentVariable("PATH", "C:\TestPath", "User")
Первый параметр — это имя переменной, второй — значение, третий — для какого уровня переменная (пользовательский или системный).
[Environment]::SetEnvironmentVariable("SSLKEYLOGFILE", "D:\wireshark", "User")
Linux и Mac OS X
Под Linux и Mac OS X можно использовать такую команду для изменения переменной окружения и ведения логов — с запуском браузера из того же терминального окна, поскольку переменные окружения всегда работают в пределах одной сессии.
После накопления лога запускаем Wireshark.
Заходим в «Параметры», там на вкладке «Протоколы» (Protocols) находим раздел TLS (раньше он назывался SSL) — и указываем путь к файлу с логами и ключом, который использовался в сессии симметричного шифрования: (Pre)-Master-Secret log filename.
Например, при заходе пользователя на сервер Gmail в окне инспектирования пакетов QUIC мы видим обычные пакеты QUIC, зашифрованные ключом TLS.
Но в нижней части экрана появляется новая вкладка Decrypted QUIC, которая показывает расшифрованное содержимое этих пакетов.
Такой метод расшифровки трафика клиента не требует установки Wireshark на его компьютер, достаточно только скачать дамп с ключами, а потом использовать его вместе с дампом трафика.
Анализируем трафик с другого компьютера
Если нужно разобраться с сервером в продакшне, то удобно скопировать оттуда файлы pcap — и проанализировать трафик на личном компьютере.
Записываем пакеты на сервере с помощью сниффера пакетов tcpdump, который входит в стандартный комплект *nix:
Затем копируем файлы к себе на компьютер:
Здесь уже запускаем Wireshark и открываем полученный файл.
Есть вариант отслеживать серверный трафик в реальном времени со своего домашнего/рабочего компьютера. Например, весь трафик, кроме портов 22 и 53:
Примерно то же самое с компьютера под Windows:
Ищем проблемы
Чтобы выделить конкретное TCP-соединение, находим любой интересующий пакет, щёлкаем по нему правой кнопкой мыши — и применяем фильтр диалога.
Теперь из всего записанного трафика остались только пакеты, принадлежащие конкретно этому соединению.
На скриншоте мы видим пакеты с начала установки соединения TLS: пакет с приветствием клиента, ответный пакет с приветствием сервера, предъявленный сертификат, список шифров и так далее. Содержимое каждого пакета можно изучить отдельно. Очень удобно.
Типичный паттерн — использовать Wireshark для диагностики конкретных проблем. Например, в случае разрыва TLS-соединения мы можем зайти и посмотреть, кто его разорвал (клиент или сервер), на каком этапе это произошло и по какой причине.
Содержимое пакетов
Отключение сетевого интерфейса Intel происходит, если по адресу 0x47f находится значение 2 или 3, то есть 32 HEX или 33 HEX. Если там 4, то всё нормально.
Поиск пакетов по содержанию
Выше мы применили фильтр диалога, чтобы выдать все пакеты для конкретного TCP-соединения. Однако фильтры можно писать и вручную. Вот некоторые примеры запросов:
- frame contains "google" — поиск всех пакетов со словом “google” в любом месте пакета
- tcp.port == 443 — порт 443
- dns.resp.len > 0 — все DNS-ответы
- ip.addr == 95.47.236.28 — конкретный IP-адрес для получателя или отправителя
Трафик с мобильного телефона
Аналогичным образом можно проанализировать трафик с фитнес-часов по Bluetooth или трафик любого мобильного приложения под Android. Для этого нужно записать пакеты PCAP на мобильном устройстве — и передать их для анализа в Wireshark на рабочем ПК.
Есть несколько мобильных программ для записи PCAP. Например, приложение
PCAPdroid для Android:
PCAPdroid
В принципе, можно не передавать записанные файлы PCAP, а анализировать их прямо на мобильном устройстве. В некоторых мобильных снифферах есть и зачаточные функции анализатора пакетов, см. Packet Capture и Termux (о нём ниже).
Packet Capture
Wireshark имеет и прямой интерфейс Androiddump, чтобы снимать данные с телефона напрямую через Android SDK.
Трафик с телевизора и других бытовых приборов
Чтобы изучить трафик с телевизора, смартфона жены или других бытовых приборов, которые подключены в домашнюю сеть по Ethernet и WiFi, придётся записывать PCAP на маршрутизаторе. Иногда достаточно встроенных инструментов. Если у вас маршрутизатор с прошивкой DD-WRT, то можно прямо на устройстве запустить tcpdump :
Для прошивки OpenWrt есть вариант зеркалировать трафик с помощью iptables-mod-tee.
Можно зеркалировать и записывать трафик с помощью дополнительного физического хаба или врезки в сеть. Подробнее см. в документации.
Другой способ — перехватить беспроводной трафик WiFi с помощью утилиты Airodump-ng без подключения к маршрутизатору. Но это больше подходит для анализа трафика на чужих хотспотах.
Далее всё по накатанной — загружаем файлы в Wireshark, запускаем фильтры.
Кстати, Wireshark поддерживает также анализ трафика USB: встроенный сниффер USBPcap и импорт пакетов из сторонних снифферов, таких как Npcap и RawCap.
Если вы анализируете объёмные логи на удалённом сервере, но не хотите копировать всё на свою машину, может пригодиться Termshark — удобный пользовательский интерфейс в консоли для анализатора TShark, по внешнему виду напоминающий Wireshark.
Функции
- Чтение файлов pcap и прослушивание трафика с активных интерфейсов в реальном времени (где разрешён tshark)
- Фильтрация pcap или активных интерфейсов с помощью фильтров отображения Wireshark
- Повторная сборка и инспектирование потоков TCP и UDP
- Просмотр сетевых сеансов по каждому протоколу
- Копирование выделенных пакетов из консоли в буфер обмена
- Инструмент написан на языке Go, на каждой платформе компилируется в единый исполняемый файл: есть уже собранные версии для Linux, macOS, вариантов BSD, Android (termux) и Windows
Вот как выглядит версия под Android:
Если по каким-то причинам вы не можете запустить Wireshark на локальной машине, можно воспользоваться облачным сервисом CloudShark, который сделан на удивление качественно.
Сервис платный, есть 30-дневный пробный период.
В общем, Wireshark — просто фантастическая программа на все случаи жизни.
Кроме реальной практической пользы, анализатор даёт примерное представление о том, как работает фильтрация DPI у российских провайдеров. Там всё устроено примерно так же. Система в реальном времени сканирует трафик, фильтрует конкретно пакеты от Twitter — и замедляет их доставку пользователям на территории России. В частности, этим непотребством занимается Роскомнадзор с 10 марта 2021 года.
На правах рекламы
Если для работы необходим сервер в аренду на Linux или Windows, то вам однозначно к нам — активация услуги через минуту после оплаты!
Читайте также: