Как перехватить пакеты от приложения

Обновлено: 02.05.2024

Запустите игру и войдите на сервер.

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

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

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

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

Как же нам добыть эту информацию, используя Wireshark? Для этого нам необходимо использовать фильтр по одному из видов сетевой активности: DHCP или NBNS. Трафик DHCP может помочь идентифицировать хосты практически для любого типа компьютеров, подключенных к вашей сети. Трафик NBNS генерируется в основном компьютерами под управлением Microsoft Windows или хостами Apple под управлением MacOS.

Отфильтровываем трафик DHCP в Wireshark

Выберите один из пакетов, который обозначен как DHCP-запрос («DHCP Request») в информационном столбце. Перейдите в раздел с детальной информацией о пакете и разверните пункт меню «Bootstrap Protocol (Request)», как показано на рисунке 2. Необходимая нам информация находится в подпунктах «Client Identifier» и «Host Name», что проиллюстрировано на рисунке 3. В подробной информации об идентификаторе клиента должен быть указан MAC-адрес, соответствующий IP-адресу «172.16.1.207», ну а сведения об имени хоста должны, как следует из названия, откроют нам имя хоста.

Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса


Рисунок 2: Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса

Находим MAC-адрес и имя хоста в запросе DHCP

Мы можем легко сопоставить MAC-адрес и IP-адрес для любого пакета с источником «172.16.1.207», как это показано на рисунке 4.

Сопоставление MAC-адреса с IP-адресом для любого пакета

Информация о хосте из трафика 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-адресом и MAC-адресом, используя трафик NBNS

В разделе с детальной информацией о пакете вы также можете найти имя хоста, соответствующее IP-адресу, как показано на рисунке 6.

Детальная информация о пакете для трафика NBNS, где вы можете найти имя хоста, соответствующее IP-адресу

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса

Строка User-Agent открывает, что хост находится под управлением операционной системы Windows 7 x64 и использует веб-браузер Google Chrome

Обратите внимание на рисунке 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.

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Android-устройства

Строка User-Agent для хоста Android, использующего веб-браузер Google Chrome

Строка User-Agent на рисунке 10 указывает нам на операционную систему Android относительно старой версии 7.1.2, выпущенную в апреле 2017 года. Ну а фраза «LM-X210APM» относится к номеру модели для этого Android-устройства. Быстрый поиск в Google позволяет нам идентифицировать, что данная модель является смартфоном LG Phoenix 4.

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Apple-устройства

Как можно увидеть на рисунке 12, найденный фрагмент строки User-Agent звучит так: «(iPhone; CPU iPhone OS 12_1_3 like Mac OS X)». Это указывает на то, что устройством Apple является смартфоном iPhone, и он работает под управлением iOS версии 12.1.3.

Строка User-Agent для iPhone, использующего веб-браузер Safari

Учетная запись пользователя Windows из трафика Kerberos
Для хостов Windows в среде Active Directory (AD) мы можем найти имена учетных записей пользователей в трафике Kerberos.

Поиск значения «CNameString» и применение к нему опции «Apply as Column»

Эта операция позволит вам создать новый столбец, озаглавленный «CNameString». Отсортируйте вывод информации по этому столбцу и прокрутите вниз до последних пакетов. Здесь, как показано на рисунке 14, в трафике между контроллером домена с IP-адресом «172.16.8.8» и клиентом Windows с IP-адресом «172.16.8.201» вы должны найти имя учетной записи пользователя «theresa.johnson».

Поиск имени учетной записи пользователя Windows

Значения CNameString для имен хостов всегда заканчиваются символом «$» (знаком доллара), в то время как имена учетных записей пользователей — нет. Поэтому, чтобы отфильтровать имена пользователей и исключить результаты CNameString со знаком доллара, используйте следующее выражение в Wireshark: «kerberos.CNameString and !(kerberos.CNameString contains $)».

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

Протокол TCP: что нужно знать специалисту по анализу сетевого трафика!
По нашему опыту, когда дело доходит до низкоуровневого анализа TCP девять из десяти ИТ специалистов в компаниях среднего и крупного бизнеса чувствуют себя неуверенно. Не могут точно сказать, что такое ретрансмиссии, размер окна и т.д. Большинство материалов в интернете по этой теме больше походят на научные работы. В этой статье мы попытаемся донести с практической точки зрения, что же полезного прячет в себе протокол TCP для того, кто занимается анализом сетевого трафика.

В каких случаях нам нужен анализ TCP пакетов?
Как показывает практика, современные системы анализа сетевого трафика имеют большую базу протоколов и готовых шаблонов для программного обеспечения. Это позволяет без труда разбивать транзакции на логические части. К сожалению, далеко не для всех задач бизнеса удаётся найти готовые продукты и в каждой компании обязательно найдётся парочка «самописных» или кастомизированных приложений. Как же анализировать трафик от таких приложений?

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

По своей сути TCP является протоколом транспортного уровня. Он позволяет осуществить соединение одного сокета (IP-адрес + порт) хоста источника с сокетом хоста назначения. Заголовок IP будет содержать информацию, связанную с IP-адресами, а заголовок TCP — информацию о порте.

Заголовок TCP
Заголовки TCP перемещаются по сети для установления, поддержки и завершения TCP-соединений, а также передачи данных.

Заголовок TCP

Трехстороннее рукопожатие TCP

(Пакет №1). Клиент отправляет пакет с установленным флагом SYN и случайным числом («R1»), включенным в поле порядкового номера (sequence number).

(Пакет №2). При получении пакета №1 сервер в ответ отправляет пакет с установленным флагом SYN, а также с установленным флагом ACK. Поле порядкового номера будет содержать новое случайное число («R2»), а поле номера подтверждения будет содержать значение порядкового номера клиента, увеличенного на единицу (то есть «R1 + 1»). Таким образом, он будет соответствовать следующему порядковому номеру, который сервер ожидает получить от клиента.

  1. Загрузка данных.
  1. Завершение соединения.

Завершение TCP-соединения

  • 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 мож­но разоб­рать каж­дый перех­вачен­ный пакет на час­ти, прос­мотреть его заголов­ки и содер­жимое. У при­ложе­ния очень удоб­ный механизм навига­ции по пакетам, вклю­чая раз­личные алго­рит­мы их поис­ка и филь­тра­ции, есть мощ­ный механизм сбо­ра ста­тис­тики. Сох­ранен­ные дан­ные мож­но экспор­тировать в раз­ные фор­маты, кро­ме того, сущес­тву­ет воз­можность авто­мати­зиро­вать работу Wireshark с помощью скрип­тов на Lua и под­клю­чать допол­нитель­ные (даже раз­работан­ные самос­тоятель­но) модули для раз­бора и ана­лиза тра­фика.

По­мимо Ethernet, сниф­фер уме­ет перех­ватывать тра­фик бес­про­вод­ных сетей (стан­дарты 802.11 и про­токол Bluetooth). Тул­за поз­воля­ет ана­лизи­ровать тра­фик IP-телефо­нии и вос­ста­нав­ливать TCP-потоки, под­держи­вает­ся ана­лиз тун­нелиро­ван­ного тра­фика. Wireshark отлично справ­ляет­ся с задачей декоди­рова­ния про­токо­лов, но, что­бы понять резуль­таты это­го декоди­рова­ния, надо, безус­ловно, хорошо раз­бирать­ся в их струк­туре.

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

В целом Wireshark — не прос­то популяр­ный, но очень доб­ротный про­дукт, поз­воля­ющий отсле­дить содер­жимое гуля­ющих по сети пакетов, ско­рость их переда­чи, най­ти «проб­лемные мес­та» в сетевой инфраструк­туре. Но в отли­чие от ком­мерчес­ких при­ложе­ний здесь нет удоб­ных инс­тру­мен­тов визу­али­зации. Кро­ме того, с помощью Wireshark не так уж и прос­то, нап­ример, выловить из тра­фика логины и пароли, а это одна из типич­ных задач при тес­тирова­нии на про­ник­новение.

CommView

Сре­ди сущес­тву­ющих ныне сниф­феров CommView — один из самых ста­рых и зас­лужен­ных ветера­нов, об этом про­дук­те «Хакер» пи­сал еще в 2001 году. Про­ект жив и по сей день, активно раз­вива­ется и обновля­ется: пос­ледняя на текущий момент вер­сия датиро­вана 2020 годом. Нес­мотря на то что про­дукт плат­ный, про­изво­дитель пред­лага­ет ска­чать три­ал, который поз­воля­ет пос­мотреть работу при­ложе­ния на прак­тике — проб­ная вер­сия сниф­фера перех­ватыва­ет тра­фик в течение пяти минут, пос­ле чего про­сит денег.

CommView — заслуженный «ветеран» в мире снифферов

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-запроса для заданного портала. При авторизации на данном портале вне зависимости от введенных пользователем данных на веб-портал отправятся данные из скрипта.

Заголовки пакетов можно легко редактировать: удалять, добавлять, изменять.

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

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, вам понравилось.

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