Как перехватить пакеты от приложения
Запустите игру и войдите на сервер.
Вот и все, пакеты в порядке и вы можете разобрать их.
Внимание: Статьи ниже - это информация о том, как работать с данной программой и пакетами TCP. Не является прямой инструкцией, но рекомендуется к ознакомлению в случае если Вы хотите таки перехватывать и анализировать трафик.
Поиск и анализ хостов и пользователей в сетевом трафике при помощи WireShark
Когда хост заражен или любым другим образом угрожает вашей информационной безопасности, сетевым специалистам необходимо быстро проанализировать захваченные пакеты подозрительного сетевого трафика (захваченные и хранящиеся в файлах с расширением «.pcap» библиотеки libpcap), чтобы оперативно идентифицировать затронутые угрозой хосты и пользователей. В рамках данного руководства мы подробно, используя практические примеры, расскажем вам, как получить необходимую вам информацию об интересующих вас хостах и пользователях с помощью самой популярной программы-анализатора сетевого трафика Wireshark.
В большинстве случаев оповещения о подозрительной активности основаны на IP-адресах. Если у вас есть доступ к полному захвату пакетов вашего сетевого трафика, то полученные pcap-файлы наряду с внутренним IP-адресом также будут содержать информацию о связанном MAC-адресе и имени хоста.
Как же нам добыть эту информацию, используя Wireshark? Для этого нам необходимо использовать фильтр по одному из видов сетевой активности: DHCP или NBNS. Трафик DHCP может помочь идентифицировать хосты практически для любого типа компьютеров, подключенных к вашей сети. Трафик NBNS генерируется в основном компьютерами под управлением Microsoft Windows или хостами Apple под управлением MacOS.
Выберите один из пакетов, который обозначен как DHCP-запрос («DHCP Request») в информационном столбце. Перейдите в раздел с детальной информацией о пакете и разверните пункт меню «Bootstrap Protocol (Request)», как показано на рисунке 2. Необходимая нам информация находится в подпунктах «Client Identifier» и «Host Name», что проиллюстрировано на рисунке 3. В подробной информации об идентификаторе клиента должен быть указан MAC-адрес, соответствующий IP-адресу «172.16.1.207», ну а сведения об имени хоста должны, как следует из названия, откроют нам имя хоста.
Рисунок 2: Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса
Мы можем легко сопоставить MAC-адрес и IP-адрес для любого пакета с источником «172.16.1.207», как это показано на рисунке 4.
Информация о хосте из трафика NBNS
В зависимости от того, как часто обновляется аренда DHCP, у вас могут возникнуть осложнения с анализом трафика DHCP в захваченном вами pcap-файле. К счастью, мы можем использовать трафик NBNS для определения имени хоста для компьютеров под управлением Microsoft Windows или устройств Apple под управлением MacOS.
Второй pcap-файл «host-and-user-ID-pcap-02.pcap» для нашего практического руководства вы можете загрузить по ссылке, которую мы уже дали выше. Этот файл от хоста Windows, использующего внутренний IP-адрес «10.2.4.101». Откройте данный pcap-файл в Wireshark и используйте фильтр «nbns». Это действие должно показать вам трафик NBNS. Выбрав первый пакет, вы можете быстро и легко сопоставить IP-адрес с MAC-адресом и именем хоста, как это показано на рисунке 5.
В разделе с детальной информацией о пакете вы также можете найти имя хоста, соответствующее IP-адресу, как показано на рисунке 6.
Обратите внимание на рисунке 8 на следующий фрагмент в строке User-Agent: «(Windows NT 6.1; Win64; x64)».
- Windows NT 5.1: Windows XP;
- Windows NT 6.0: Windows Vista;
- Windows NT 6.1: Windows 7;
- Windows NT 6.2: Windows 8;
- Windows NT 6.3: Windows 8.1;
- Windows NT 10.0: Windows 10.
Строка User-Agent на рисунке 10 указывает нам на операционную систему Android относительно старой версии 7.1.2, выпущенную в апреле 2017 года. Ну а фраза «LM-X210APM» относится к номеру модели для этого Android-устройства. Быстрый поиск в Google позволяет нам идентифицировать, что данная модель является смартфоном LG Phoenix 4.
Как можно увидеть на рисунке 12, найденный фрагмент строки User-Agent звучит так: «(iPhone; CPU iPhone OS 12_1_3 like Mac OS X)». Это указывает на то, что устройством Apple является смартфоном iPhone, и он работает под управлением iOS версии 12.1.3.
Учетная запись пользователя Windows из трафика Kerberos
Для хостов Windows в среде Active Directory (AD) мы можем найти имена учетных записей пользователей в трафике Kerberos.
Эта операция позволит вам создать новый столбец, озаглавленный «CNameString». Отсортируйте вывод информации по этому столбцу и прокрутите вниз до последних пакетов. Здесь, как показано на рисунке 14, в трафике между контроллером домена с IP-адресом «172.16.8.8» и клиентом Windows с IP-адресом «172.16.8.201» вы должны найти имя учетной записи пользователя «theresa.johnson».
Значения CNameString для имен хостов всегда заканчиваются символом «$» (знаком доллара), в то время как имена учетных записей пользователей — нет. Поэтому, чтобы отфильтровать имена пользователей и исключить результаты CNameString со знаком доллара, используйте следующее выражение в Wireshark: «kerberos.CNameString and !(kerberos.CNameString contains $)».
Заключение
При получении предупреждения о вредоносной активности в вашей сети крайне важно правильно и быстро выделить из сетевого трафика причастные хосты и пользователей. Используя методы, описанные в данном практическом руководстве, вы сможете лучше использовать доступные вам возможности Wireshark, чтобы ускорить процесс идентификации затронутых угрозой хостов и пользователей.
Протокол TCP: что нужно знать специалисту по анализу сетевого трафика!
По нашему опыту, когда дело доходит до низкоуровневого анализа TCP девять из десяти ИТ специалистов в компаниях среднего и крупного бизнеса чувствуют себя неуверенно. Не могут точно сказать, что такое ретрансмиссии, размер окна и т.д. Большинство материалов в интернете по этой теме больше походят на научные работы. В этой статье мы попытаемся донести с практической точки зрения, что же полезного прячет в себе протокол TCP для того, кто занимается анализом сетевого трафика.
В каких случаях нам нужен анализ TCP пакетов?
Как показывает практика, современные системы анализа сетевого трафика имеют большую базу протоколов и готовых шаблонов для программного обеспечения. Это позволяет без труда разбивать транзакции на логические части. К сожалению, далеко не для всех задач бизнеса удаётся найти готовые продукты и в каждой компании обязательно найдётся парочка «самописных» или кастомизированных приложений. Как же анализировать трафик от таких приложений?
База анализатора трафика не имеет информации, в каком бите содержится код реквеста, какой код соответствует респонсу и т.д. В таких ситуациях приходится прибегать к самым азам сетевой науки – TCP анализу. Давайте рассмотрим, что прячет внутри себя этот протокол.
По своей сути TCP является протоколом транспортного уровня. Он позволяет осуществить соединение одного сокета (IP-адрес + порт) хоста источника с сокетом хоста назначения. Заголовок IP будет содержать информацию, связанную с IP-адресами, а заголовок TCP — информацию о порте.
Заголовок TCP
Заголовки TCP перемещаются по сети для установления, поддержки и завершения TCP-соединений, а также передачи данных.
(Пакет №1). Клиент отправляет пакет с установленным флагом SYN и случайным числом («R1»), включенным в поле порядкового номера (sequence number).
(Пакет №2). При получении пакета №1 сервер в ответ отправляет пакет с установленным флагом SYN, а также с установленным флагом ACK. Поле порядкового номера будет содержать новое случайное число («R2»), а поле номера подтверждения будет содержать значение порядкового номера клиента, увеличенного на единицу (то есть «R1 + 1»). Таким образом, он будет соответствовать следующему порядковому номеру, который сервер ожидает получить от клиента.
- Загрузка данных.
- Завершение соединения.
- Keep-alive или повторное использование соединений
У меня есть приложение, которое общается с каким-то сервером. Я хочу знать, каков IP этого сервера. Как я могу захватить весь трафик от определенного приложения, а не только весь трафик, как Wireshark?
Какую операционную систему ты используешь? Как много вы знаете о приложении? Вы знаете, использует ли он определенные порты? Windows Server 2008 R2 / Windows 7 Я ничего не знаю о номерах портов. Это IP (TCP / UDP) трафик. Итак, чтобы уточнить. Вы хотите увидеть хотя бы идентификатор процесса. Но что-то вроде netstat -aon не будет этого делать, потому что вы хотите видеть и неудачные попытки подключения. (Я ничего не знаю, и вам повезет, если кто-то узнает, но не могли бы вы уточнить, чего вы хотите?) Знаете ли вы, где приложение будет пытаться подключиться? Я думаю, вы могли бы использовать wireshark и использовать фильтры для детализации до хоста назначения / IP? Кроме того, в зависимости от типа приложения вы можете заставить его проходить через прокси-сервер и использовать что-то вроде fiddler для захвата трафика этого приложения. Никогда не пробовал, но не понимаю, почему это не сработает. Это может быть так же просто, как изменить настройки прокси-сервера IE на прокси-сервер Fiddler (порт 8888 по умолчанию), или так же сложно, как перекомпилировать приложение для использования прокси-сервера или каким-то образом заставить приложение использовать прокси-сервер - я уверен, что есть приложения там. это может сделать это.Можно захватить весь сетевой трафик для данного приложения, перехватывая вызовы Windows Sockets API. Это инструменты, которые могут помочь.
Проксокет, написанный Луиджи Ауриеммой. Он перехватывает вызовы API и сохраняет захваченный трафик в виде готового к использованию Wireshark файла .cap в формате tcpdump. Нет ничего более объяснительного, чем изображение, предоставленное самим Луиджи:
NirSoft имеет приложение SocketSniff, которое позволяет захватывать трафик определенного процесса. Картинка тоже стоит тысячи слов:
К сожалению, упомянутые инструменты, скорее всего, не будут поддерживать 64-битные приложения. Однако можно написать собственный перехватчик, используя библиотеку mhook, поддерживающую как 32-битный, так и 64-битный API.
Чтобы перехватывать трафик, анализаторы могут использовать перенаправление пакетов или задействовать так называемый Promiscuous mode — «неразборчивый» режим работы сетевого адаптера, при котором отключается фильтрация и адаптер принимает все пакеты независимо от того, кому они адресованы. В обычной ситуации Ethernet-интерфейс фильтрует пакеты на канальном уровне. При такой фильтрации сетевая карта принимает только широковещательные запросы и пакеты, MAC-адрес в заголовке которых совпадает с ее собственным. В режиме Promiscuous все остальные пакеты не отбрасываются, что и позволяет снифферу перехватывать данные.
Нередко анализаторы трафика применяются в «мирных» целях — для диагностики сети, выявления и устранения неполадок, обнаружения вредоносного ПО или чтобы выяснить, чем заняты пользователи и какие сайты они посещают. Но именно при исследовании безопасности сетевого периметра или тестировании на проникновение сниффер — незаменимый инструмент для разведки и сбора данных. Существуют снифферы для различных операционных систем, кроме того, подобное ПО можно установить на роутере и исследовать весь проходящий через него трафик. Сегодня мы поговорим о наиболее распространенных популярных анализаторах трафика для платформы Microsoft Windows.
Wireshark
Об этой программе знает, наверное, каждый, кто хотя бы раз сталкивался с задачей анализа трафика. Популярность Wireshark вполне оправданна: во‑первых, данный продукт бесплатен, во‑вторых, его возможностей вполне хватает для решения самых насущных вопросов, касающихся перехвата и анализа передаваемых по сети данных. Продукт пользуется заслуженной популярностью у вирусных аналитиков, реверс‑инженеров, системных администраторов и, безусловно, пентестеров.
Что такое Wireshark, знает, наверное, каждый
Этот анализатор имеет русскоязычный интерфейс, умеет работать с большим количеством сетевых протоколов (перечислять здесь их все лишено смысла: полный список можно найти на сайте производителя). В Wireshark можно разобрать каждый перехваченный пакет на части, просмотреть его заголовки и содержимое. У приложения очень удобный механизм навигации по пакетам, включая различные алгоритмы их поиска и фильтрации, есть мощный механизм сбора статистики. Сохраненные данные можно экспортировать в разные форматы, кроме того, существует возможность автоматизировать работу Wireshark с помощью скриптов на Lua и подключать дополнительные (даже разработанные самостоятельно) модули для разбора и анализа трафика.
Помимо Ethernet, сниффер умеет перехватывать трафик беспроводных сетей (стандарты 802.11 и протокол Bluetooth). Тулза позволяет анализировать трафик IP-телефонии и восстанавливать TCP-потоки, поддерживается анализ туннелированного трафика. Wireshark отлично справляется с задачей декодирования протоколов, но, чтобы понять результаты этого декодирования, надо, безусловно, хорошо разбираться в их структуре.
К недостаткам Wireshark можно отнести то, что восстановленные потоки не рассматриваются программой как единый буфер памяти, из‑за чего затруднена их последующая обработка. При анализе туннелированного трафика используется сразу несколько модулей разбора, и каждый последующий в окне программы замещает результат работы предыдущего — в итоге анализ трафика в многоуровневых туннелях становится невозможен.
В целом Wireshark — не просто популярный, но очень добротный продукт, позволяющий отследить содержимое гуляющих по сети пакетов, скорость их передачи, найти «проблемные места» в сетевой инфраструктуре. Но в отличие от коммерческих приложений здесь нет удобных инструментов визуализации. Кроме того, с помощью Wireshark не так уж и просто, например, выловить из трафика логины и пароли, а это одна из типичных задач при тестировании на проникновение.
CommView
Среди существующих ныне снифферов CommView — один из самых старых и заслуженных ветеранов, об этом продукте «Хакер» писал еще в 2001 году. Проект жив и по сей день, активно развивается и обновляется: последняя на текущий момент версия датирована 2020 годом. Несмотря на то что продукт платный, производитель предлагает скачать триал, который позволяет посмотреть работу приложения на практике — пробная версия сниффера перехватывает трафик в течение пяти минут, после чего просит денег.
CommView — заслуженный «ветеран» в мире снифферов
Программа имеет русскоязычный интерфейс, что может стать определяющим фактором при выборе сниффера для пользователей, не владеющих английским. Главное преимущество CommView — возможность гибко настроить правила фильтрации пакетов: можно выбрать отдельные протоколы, которые будет отслеживать приложение, сортировать пакеты по ряду признаков, например по размеру или заголовку. Ассортимент поддерживаемых протоколов также весьма велик: сниффер умеет работать с самыми распространенными прикладными протоколами, а также выполнять реконструкцию TCP-сессии и UDP-потока. При этом CommView позволяет анализировать трафик вплоть до пакетов протоколов самого низкого уровня — TCP, UDP, ICMP, а также просматривать «сырые» данные. Программа показывает заголовки перехваченных пакетов, собирает подробную статистику IP-трафика. Сохраненные данные можно экспортировать в 12 различных форматов, начиная с .txt и .csv и заканчивая файлами других анализаторов вроде Wireshark.
Помимо трафика на сетевой карте, CommView может мониторить соединения по VPN, а также трафика, проходящего через модемы — аналоговые, мобильные, ADSL, ISDN и другие, для чего в систему устанавливается специальный драйвер. Есть возможность перехвата VoIP-трафика и сессий SIP-телефонии. В состав приложения входит генератор пакетов, с помощью которого можно отправить на заданный Ethernet-интерфейс пакет указанной длины, с произвольными заголовками и содержимым. Есть также довольно удобный просмотрщик лог‑файлов, позволяющий открывать файлы журналов в отдельном окне сниффера и выполнять поиск по их содержимому.
Тулза, вне всяких сомнений, крайне удобная и полезная, если бы не «кусачие» цены на лицензию. Для профессионального пентестера покупка такого инструмента наверняка будет оправданна, но ради того, чтобы разок «глянуть сеть», можно поискать альтернативные — более дешевые или бесплатные решения.
Intercepter-NG
Это тоже очень старый и убеленный сединами инструмент — впервые «Хакер» написал о нем еще в 2012 году. C тех пор разрабатываемый нашими соотечественниками проект не только не исчез с просторов интернета, как многие его конкуренты, но даже активно развивался и совершенствовался — последняя актуальная редакция сниффера датирована 2020 годом. Существует версия программы для Android в виде .APK-файла и даже консольная версия этого инструмента для Unix.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Зачем это делать ?
Пример 1. Анализ трафика.
Пользователи вашей сети пользуются вашим прокси-сервером. Вы можете увидеть на какие сайты заходят пользователи, запрещать дальнейшие переходы на эти сайты.
Пример 2. Сбор данных.
Ваши пользователи пользуются через вас некоторыми веб-ресурсами. Например, они вводят vin-номер своего автомобиля на сайте дилера авто и получают в ответ данные этого автомобиля. Вы можете сохранять эти данные в свою базу данных.
Установка Fiddler
Установка простая и быстрая.
Настройка Fiddler
Если опция "File -> Capture Traffic" выключена, то Fiddler перестает работать как системный прокси-сервер и перехватывает только те пакеты, которые идут непосредственно на адрес Fiddler. Это может быть когда вы настроили ваше приложение или браузер сами для работы через ip/port Fiddler. По умолчанию Fiddler слушает на порту 127.0.0.1:8888
Опция "Keep: All sessions".
В данном режиме Fiddler не очищает журнал собранных HTTP-пакетов. Если требуется продолжительная работа Fiddler, то при большой нагрузке этих пакетов будет очень много и Fiddler скушает всю доступную оперативную память компьютера. Чтобы этого не случилось переключите в режим "Keep: 100 sessions".
Опция "Decode".
По умолчанию выключена. В процессе анализа собранных пакетов рекомендуется включить чтобы пакеты автоматически декодировались. Либо можно выделить собранные пакеты через Ctrl+A, вызвать меню нажатием правой кнопки мыши по выделенным пакетам и нажать "Decode Selected Sessions".
Основные настройки
Переходим в "Tools -> Options. ".
Вкладка "HTTPS".
После установки Fiddler не собирает HTTPS-трафик, это необходимо включить. Ставим галочку в опции "Decrypt HTTPS traffic". После этого Fiddler сгенерирует самоподписанный сертификат и спросит хотите ли установить данный сертификат. Отвечаем да.
Опция "Ignore server certificate errors (unsafe)" - сразу можно не включать. На некоторых порталах бывают ошибки сертификатов, но это редко. Как увидите так включите )
Настройка протоколов. По умолчанию стоит значение "<client>;ssl3;tls1.0". Советую сразу установить значение на "<client>;ssl3;tls1.0;tls1.1;tls1.2". После изменения настроек необходимо перезапустить программу чтобы настройки вступили в силу.
"Trust Root Certificate" - если сгенерированный Fiddler сертификат вы не установили после включения опции "Decrypt HTTPS traffic", то можно это сделать здесь.
"Export Root Certificate to Desktop" - если вы планируете использовать Fiddler как прокси-сервер локальной сети, то на каждом устройстве пользователя необходимо установить сгенерированный выше сертификат. С помощью этой опции сохраняете сертификат на ваш рабочий стол.
"Reset All Certificates" - в некоторых случаях необходимо сгенерировать новый сертификат взамен старого. В этом случае сбрасываем все Fiddler-сертификаты и генерируем новый сертификат.
Вкладка "Connections".
Здесь устанавливаем на каком порту Fiddler работает как прокси-сервер. Порт по умолчанию "8888".
"Allow remote computers to connect" - включаем опцию чтобы Fiddler начал принимать подключения от других компьютеров.
"Act as system proxy on startup" - по умолчанию опция включена. Если включена, то при запуске опция "File -> Capture Traffic" включена.
После изменения данных настроек необходимо перезапустить программу чтобы настройки вступили в силу.
Вкладка "Gateway".
Здесь устанавливаем куда Fiddler отправляет входящие пакеты, какой прокси использует.
"Use System Proxy (recommended)" - использование системного прокси из реестра текущего пользователя.
"Manual Proxy Configuration" - возможность задать вручную прокси-сервер.
"No proxy" - задаем что выход в Интернет напрямую, без использования прокси.
После изменения данных настроек необходимо перезапустить программу чтобы настройки вступили в силу.
Установка сертификатов на Windows устройствах
После того как сгенерированный сертификат скопирован на рабочий стол этот сертификат необходимо установить на каждое устройство которое будет использовать данный Fiddler в качестве прокси-сервера.
Для установки сертификата используем консоль управления MMC: в коммандной строке вводим команду "mmc".
В меню файл выбираем "Добавить или удалить оснастку". Из доступных оснасток выбираем "Сертификаты" и с помощью кнопки "Добавить" выбираем данную оснастку. Нажимаем "Ок" и выбираем "учетной записи компьютера". Это нужно чтобы открыть сертификаты которые установлены для всего компьютера, а затем установить сертификат Fiddler именно в это хранилище. Если открыть сертификаты "моей учетной записи пользователя", то после установки сертификата Fiddler в это хранилище другие пользователи данного компьютера не смогут подключиться к Fiddler.
Установку сертификата производим в "Доверенные корневые центры сертификации".
Если ваши компьютеры находятся в домене, то используйте инструменты домена для установки сертификата каждому пользователю или на каждый компьютер сети.
Анализ трафика
В процессе работы Fiddler сниффит все HTTP-запросы и их обычно много. Для поиска необходимых запросов можно использовать фильтры. Правой кнопкой мыши выбираем лишний запрос, выбираем "Filter Now" и "Hide '. '" чтобы скрыть запросы к данному домену. Можно удалять вручную выделенные запросы используя кнопку "Delete".
Изменение данных запросов
В Fiddler существует инструмент "Fiddler ScriptEditor" (Редактор скриптов) для создания правил модификации трафика. Запуск редактора скриптов через "Ctrl+R" или выбора пункта меню "Rules -> Customize Rules. ".
В редакторе скриптов есть два основных метода: "OnBeforeRequest" и "OnBeforeResponse":
"OnBeforeRequest" - выполнение скриптов в этом методе происходит перед отправкой пакетов на веб-сервер.
"OnBeforeResponse" - выполнение скриптов в этом методе происходит после получения ответа от веб-сервера.
Ниже приведены примеры скриптов с указанием в каком методе их расположить.
Задача 1: Запрет сайта
Запрещаем переход на адрес сайта содержащий строку.
Задача 2: Запрет загрузки ресурса
Запрещаем загрузку ".svg" файлов для заданного адреса сайта.
Задача 3: Переадресация запроса
Переадресация запроса на адрес сайта содержащий строку.
Задача 4: Сбор данных
Пользователи подключаются через данный прокси-сервер и делают в браузерах некоторые запросы вида "https://myhost.ru?key=abcd&vin=VF38BLFXE81078232&lang=ru". Задача записать в базу данных событие поиска и передать значение vin-номера. Данный скрипт создает файлы с названием включающем vin-номер. Кроме скрипта необходимо создать утилиту/службу, которая раз в заданный интервал читает каталог "C:\vinsearch\" и записывает данные в базу данных.
Задача 5: Изменить текст в ответе
В данном примере меняем текст "Иванов" на "Петров".
Задача 6: Заменить ресурс веб-портала на локальный ресурс
Заменим картинку веб-портала на картинку расположенною на локальном диске.
Задача 7: Изменение свойств HTML-объектов
Например, есть картинка с заданными размерами в HTML и нужно эти размеры изменить.
Задача 9: Заставить страницу открываться в текущем окне
Пример: существует JavaScript, который открывает ссылку в новом окне. Нужно сделать чтобы ссылка открывалась в текущем окне.
Задача 10: Выполнение скриптов для определенных IP
В данном примере меняем текст "Иванов" на "Петров" только для IP
Задача 11: Меняем css-стили портала
Css-файлы веб-портала можно сохранить на локальном диске, отредактировать и настроить скрипт отдавать стили с локального диска, а не с портала.
Задача 12: Запрет PUT-команды и аналогичных
Запрет команды по ее типу: "PUT", "DELETE", etc.
Задача 13: Изменение тела POST-запроса
Изменить тело POST-запроса для заданного портала. При авторизации на данном портале вне зависимости от введенных пользователем данных на веб-портал отправятся данные из скрипта.
Заголовки пакетов можно легко редактировать: удалять, добавлять, изменять.
Этот вид мониторинга может показаться агрессивным, однако имейте ввиду, что ваш провайдер также хранит эти данные в логах и имеет право продавать информацию на сторону.
Допустим, нужно узнать, какие приложения используются на телефоне. Если вы находитесь в одной 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, вам понравилось.
Читайте также: