Начинающему qa: полезные функции снифферов на примере charles proxy
Содержание:
- Благие намерения и злоумышленные цели?
- Первичная настройка
- Анализ поисковых запросов сайта
- Обнюхивать сеть с помощью Wireshark
- Известные снифферы и их классификация
- Обычная атака
- Определение
- Пассивный и активный нюхающий
- Как работает сетевой сниффинг
- Как предотвратить атаки сетевых перехватчиков
- Лучшие снифферы пакетов и анализаторы сети
- Analysing the Packets
- Описание атаки ARP-spoofing
- Wireshark portable
- Что такое сетевой анализ?
- Снифферинг – что это такое?
- Пишем простой сниффер под Windows
- Применение
- Фильтрация
- Основы
Благие намерения и злоумышленные цели?
Снифферы можно использовать и во вред, и во благо. Не говоря о негативном влиянии, стоит отметить, что такие программно-аппаратные комплексы достаточно часто используются системными администраторами, которые пытаются отследить действия пользователей не только в сети, но и их поведение в интернете в плане посещаемых ресурсов, активированных загрузок на компьютеры или отправки с них.
Методика, по которой работает сетевой анализатор, достаточно проста. Сниффер определяет исходящий и входящий траффик машины. При этом речь не идет о внутреннем или внешнем IP. Самым главным критерием является так называемый MAC-address, уникальный для любого устройства, подключенного к глобальной паутине. Именно по нему происходит идентификация каждой машины в сети.
Первичная настройка
При тестировании мобильного приложения
Charles Proxy необходимо запустить на компьютере, который находится в той же локальной подсети, что и мобильное устройство с тестируемым приложением.
Как правило, соединение настраивается по Wi-Fi. В настройках Wi-Fi мобильного устройства в качестве proxy-сервера надо указать IP-адрес компьютера и стандартный порт инструмента 8888 (пароль остается пустым).
IP-адрес компьютера можно узнать через командную строку (ipconfig) или в самом Charles Proxy (Help -> Local IP Address).
Этот же адрес есть в инструкции по подключению, доступной в Help -> SSL Proxying -> Install Charles Root Certificate on mobile device remote browser.
После сохранения настроек Charles Proxy сможет читать HTTP-трафик мобильного устройства. Но чтобы смотреть расшифрованный трафик HTTPS, нужны дополнительные манипуляции — требуется установить SSL-сертификат Charles Proxy в браузере на мобильном устройстве.
Скачать сертификат можно по адресу: chls.pro/ssl (адрес, по которому скачивается сертификат, также можно найти в инструкции Help -> SSL Proxying -> Install Charles Root Certificate on mobile device remote browser). Далее в iOS его необходимо сделать доверенным (в Настройки -> Основные -> Профили).
В Android установленные сертификаты верифицируются в Settings -> Trusted Credentials на вкладке User.
Главное отличие в настройках для этой ОС в том, что с Android 6.0 и выше в Androidmanifest надо добавить специальную конфигурацию, позволяющую просматривать защищенный трафик. На продакшене эта конфигурация убирается из соображений безопасности.
При тестировании приложения на ПК
В этом случае дополнительные сертификаты нужно установить на сам ПК. Для скачивания и установки нужна ссылка из Help -> SSL Proxying -> Install Charles Root Certificate.
Сертификат устанавливается в доверенные корневые центры.
Анализ поисковых запросов сайта
Приведённый выше отчёт по частотности использования поисковых запросов, может быть использован оптимизаторами сайта при составлении его семантического ядра и подготовке контента т.н. «посадочных страниц». Статистика поисковых запросов — обобщённая сгруппированная информация по «обращениям» пользователей к поисковой системе по ключевым запросам (фразам).
В большинстве случаев, наш сервис показывает уже сгруппированную информацию, содержащую не только подборку самых популярных слов (фраз), но и словосочетания + синонимы. Собранная в данном разделе статистика показывает по каким «ключевым словам» (поисковым запросам) пользователи переходят на сайт snif-f.ru.
Поисковый запрос – это слово или словосочетание, которое пользователь вводит в форму поиска на сайте поисковой системы, с учётом автоподбора и автоматического исправления в поиске ошибочного набора.
Обнюхивать сеть с помощью Wireshark
На рисунке ниже показаны шаги, которые вы будете выполнять, чтобы выполнить это упражнение без путаницы
Загрузите Wireshark по этой ссылке https://www.wireshark.org/download.html
- Открыть Wireshark
- Вы получите следующий экран
Выберите сетевой интерфейс, который вы хотите прослушать
Обратите внимание, что для этой демонстрации мы используем беспроводное сетевое соединение. Если вы находитесь в локальной сети, вам следует выбрать интерфейс локальной сети.
Нажмите на кнопку запуска, как показано выше
Откройте веб-браузер и введите https://www.techpanda.org/
- Адрес электронной почты для входа — , а пароль — Password2010.
- Нажмите на кнопку отправить
- Успешный вход в систему должен дать вам следующую панель
Вернитесь в Wireshark и остановите живой захват
Фильтрация результатов протокола HTTP только с использованием текстового поля фильтра
Найдите столбец Info и найдите записи с HTTP-глаголом POST и щелкните по нему.
Непосредственно под записями журнала находится панель со сводкой полученных данных. Посмотрите на резюме, в котором говорится о текстовых данных на основе строки: application / x-www-form-urlencoded
Вы должны иметь возможность просматривать значения в виде открытого текста всех переменных POST, отправленных на сервер по протоколу HTTP.
Известные снифферы и их классификация
(Обзор продукта: см. Ниже)
Анализаторы LAN, широко известные как «снифферы» (названные в честь самого старого и наиболее распространенного продукта), существуют с конца 1980-х годов. Поэтому в области анализа ЛВС общий термин «использование сниффера» часто используется без ссылки на одноименный продукт, а просто на любой продукт этого типа.
Общее различие проводится между:
Local Analyzer Remote Analyzer / Distributed Analyzer — Local Analyzer — это классические программы для ПК. Удаленные анализаторы — это агенты, расположенные в удаленных сегментах ЛВС, которые управляются с центральной станции, что уже давно стало нормой в управлении сетью. Затем говорят о распределенном анализе
В сетях, которые сильно сегментированы коммутацией / маршрутизацией, этот тип анализа в конечном итоге незаменим.
Аппаратный анализатор Программный анализатор — До середины 1990-х все еще уделялось большое внимание анализаторам оборудования, сегодня программные анализаторы, работающие на базе ПК, в значительной степени зарекомендовали себя. Использование аппаратных анализаторов по-прежнему необходимо в высокопроизводительных сетях; Однако их высокая стоимость, умеренная скорость разработки по сравнению с программными анализаторами и риск, связанный с капиталом в случае ошибок, заставили клиентов использовать оборудование только там, где это действительно абсолютно необходимо
В результате почти никто из производителей аппаратных анализаторов не проявляет активности на рынке.
Коммерческий анализатор Некоммерческий анализатор (с «открытым исходным кодом») — до конца 1990-х годов практически существовали только проприетарные анализаторы. Это постепенно изменилось с появлением Wireshark (ранее Ethereal) с 1998 года.
История развития
До конца 1990-х годов пользователи практически полностью зависели от коммерческих продуктов. Их недостаток был не столько в том, что они стоили денег, сколько в том, что производители обходили рынок и не признавали важные потребности или осознавали их слишком поздно. В результате пользователи прибегли к самопомощи (см. Wireshark). Результат — кризис для многих коммерческих производителей.
Приблизительно с 2002 года распространение анализатора GPL Wireshark (бывшего Ethereal) значительно увеличилось. Основные причины заключаются в том, что это программное обеспечение можно получить бесплатно через Интернет, его мощность, постоянное обновление и его практическая значимость. В конце 1990-х годов около десяти крупных коммерческих производителей анализаторов LAN все еще были активны на мировом рынке (не считая более мелких); количество производителей, которых стоит упомянуть, сейчас упало до пяти.
Большинство коммерческих производителей больше не могут противостоять чрезвычайно большому сообществу программистов, которое удалось привлечь Wireshark. Кроме того, в разработке сейчас участвуют крупные компании, использующие собственные протоколы LAN. Поскольку Wireshark является открытой платформой, Siemens, например, помогает анализировать собственные протоколы управления машинами или медицинские технологии.
Правовая ситуация в Германии
Запись сетевого трафика невежественными лицами подпадает под слежку за данными в соответствии с разделом 202a Уголовного кодекса Германии ( StGB ).
Обзор продукта
Важные продукты анализа LAN в алфавитном порядке:
Бесплатные товары:
- Каин и Авель
- Ettercap
- NETCORtools (на основе TCP-трассировки)
- NetworkMiner
- Tcpdump
- Wireshark (ранее известный как Ethereal)
Собственные продукты:
- каплон (консистек)
- Clearsight Analyzer (Clearsight Networks)
- EtherPeek, OmniPeek, GigaPeek (Саввиус)
- LANdecoder32 (Triticom)
- Капса (Colasoft)
- Монитор сети Microsoft
- NetSpector (INAT)
- NetVCR (Никсун)
- NetworkActiv PIAFCTM
- Наблюдатель (Виави)
- OptiView (Fluke Networks)
- Sniffer (NetScout, после захвата Network General)
- TraceCommander (сети Synapse)
- webSensor и webProbe (Moniforce)
- Cubro Netrecorder (Кубро)
Обычная атака
Для начала нам нужно скачать программу. Некоторые браузеры могут ругаться, если вы попытаетесь скачать приложение с официального сайта – sniff.su. Но можете попробовать. Если вам лень проходить данную защиту, то вы можете скачать приложение с GitHub.
Скачиваем архив с версией или «v». Далее устанавливать ничего не нужно и достаточно просто разархивировать содержимое.
- В зависимости от того как вы подключены к сети, в левом верхнем углу будет отображаться соответствующий значок – нажимаем по нему;
- Нужно выбрать свой работающий сетевой модуль. Я выбрал с тем, у которого уже присвоен локальны IP, то есть мой IP адрес;
- На пустой области нажимаем правой кнопочкой и далее запускаем «Smarty Scan»;
- Далее вы увидите список IP адресов, а также MAC и дополнительную информацию об устройствах в сети. Достаточно выбрать одну из целей атаки, нажать по ней и далее из списка выбрать «Add as Target», чтобы программа закрепила устройство. После этого нажимаем на кнопку запуска в правом верхнем углу окна;
- Заходим в раздел «MiTM mode» и нажимаем на значок радиации;
- Процесс запуска запущен, теперь, чтобы посмотреть логины и пароли – перейдите в третью вкладку;
- На второй вкладке вы увидите все переданные данные;
Как видите тут можно только увидеть и засечь перехваченные ключи и имена пользователей, а также те сайты, которые посетила цель.
Определение
Сниффер – это анализатор трафика. В свою очередь, трафик – это вся информация, которая проходит через компьютерные сети.
Этот анализатор смотрит, какая информация передается. Для этого ее необходимо перехватить. Фактически, это незаконная вещь, ведь таким образом люди часто получают доступ к чужим данным.
Это можно сравнить с ограблением поезда – классический сюжет большинства вестернов.
Вы передаете какую-то информацию другому пользователю. Ее везет «поезд», то есть сетевой канал.
Придурки из банды кровавого Джо перехватывают состав и грабят его до нитки. В нашем случае информация идет дальше, то есть злоумышленники не крадут ее в прямом смысле этого слова.
Но, допустим, что эта информация представляет собой пароли, личные записи, фотографии и тому подобное.
Злоумышленники могут просто переписать и сфотографировать все это. Таким образом они получат доступ к секретным данным, которые вы хотели бы скрыть.
Да, у вас будет вся эта информация, она к вам дойдет.
Но вы будете знать, что все то же самое знают и совершенно посторонние люди. А ведь в XXI веке больше всего ценится именно информация!
Рис. 1. Ограбление поезда
В нашем случае используется именно такой принцип. Определенные люди останавливают трафик, считывают с него данные и отсылают их дальше.
Правда, в случае со снифферами все не всегда так страшно. Они используются не только для того, чтобы получать несанкционированный доступ к данным, а еще и для анализа самого трафика. Это важная часть работ сисадминов и просто админов различных сервисов и ресурсов. О применении стоит поговорить более подробно. Но перед этим мы затронем то, как работают эти самые снифферы.
вернуться к меню
Это интересно: Что такое компьютерные вирусы, трояны и черви, в чем их разница?
Пассивный и активный нюхающий
Прежде чем мы рассмотрим пассивный и активный сниффинг, давайте рассмотрим два основных устройства, используемых для сетевых компьютеров; концентраторы и коммутаторы.
Концентратор работает, отправляя широковещательные сообщения на все выходные порты, кроме того, который отправил широковещание . Компьютер получателя отвечает на широковещательное сообщение, если IP-адрес совпадает. Это означает, что при использовании концентратора все компьютеры в сети могут видеть широковещательное сообщение. Он работает на физическом уровне (уровень 1) модели OSI.
Диаграмма ниже иллюстрирует работу концентратора.
Переключатель работает по-другому; он сопоставляет IP / MAC-адреса с физическими портами на нем . Широковещательные сообщения отправляются на физические порты, которые соответствуют конфигурации IP / MAC-адреса компьютера получателя. Это означает, что широковещательные сообщения видны только на компьютере получателя. Коммутаторы работают на канальном уровне (уровень 2) и сетевом уровне (уровень 3).
На приведенной ниже схеме показано, как работает коммутатор.
Пассивный анализатор перехватывает пакеты, передаваемые по сети, которая использует концентратор . Это называется пассивным анализом, потому что его трудно обнаружить. Это также легко выполнить, так как концентратор отправляет широковещательные сообщения на все компьютеры в сети.
Активный сниффинг перехватывает пакеты, передаваемые по сети, использующей коммутатор . Существует два основных метода, используемых для обнаружения связанных сетей: отравление ARP и затопление MAC.
Как работает сетевой сниффинг
Анализатор пакетов, подключенный к любой сети, перехватывает все данные, передаваемые по этой сети.
В локальной сети (LAN) компьютеры обычно обмениваются данными напрямую с другими компьютерами или устройствами в сети. Всё, что связано с этой сетью, подвергается воздействию всего этого трафика. Компьютеры запрограммированы на игнорирование всего сетевого трафика, не предназначенного для этого.
Программное обеспечение для прослушивания сети открывает доступ ко всему трафику, открывая сетевую карту компьютера (NIC) для прослушивания этого трафика. Программное обеспечение считывает эти данные и выполняет их анализ или извлечение данных.
После получения сетевых данных программное обеспечение выполняет следующие действия:
- Содержимое или отдельные пакеты (разделы сетевых данных) записываются.
- Некоторое программное обеспечение записывает только раздел заголовка пакетов данных для экономии места.
- Захваченные данные сети декодируются и форматируются, чтобы пользователь мог просматривать информацию.
- Анализаторы пакетов анализируют ошибки в сетевом взаимодействии, устраняют неполадки сетевых подключений и восстанавливают цельность потоков данных, предназначенных для других компьютеров.
- Некоторое программное обеспечение для поиска в сети извлекает конфиденциальную информацию, такую как пароли, PIN-коды и личную информацию.
Как предотвратить атаки сетевых перехватчиков
Если вы обеспокоены тем, что программное обеспечение для слежения за сетью отслеживает сетевой трафик, исходящий от вашего компьютера, есть способы защитить себя.
Существуют этические причины, по которым кому-то может понадобиться использовать сетевой сниффер, например, когда сетевой администратор отслеживает поток сетевого трафика.
Когда сетевые администраторы обеспокоены злонамеренным использованием этих инструментов в своей сети, они используют анти-снифф-сканирование для защиты от атак сниффера. Это означает, что корпоративные сети обычно безопасны.
Тем не менее, легко получить и использовать сетевой сниффер со злыми намерениями, что делает его незаконное использование в вашем домашнем интернете поводом для беспокойства. Для кого-то может быть легко подключить такое программное обеспечение даже к корпоративной компьютерной сети.
Если вы хотите защитить себя от того, кто шпионит за вашим интернет-трафиком, используйте VPN, который шифрует ваш интернет-трафик.
Лучшие снифферы пакетов и анализаторы сети
Промышленные инструменты
Начнем с вершины и далее спустимся к основам. Если вы имеете дело с сетью уровня предприятия, вам понадобится большая пушка. Хотя в основе почти все использует tcpdump (подробнее об этом позже), инструменты уровня предприятия могут решать определенные сложные проблемы, такие как корреляция трафика со множества серверов, предоставление интеллектуальных запросов для выявления проблем, предупреждение об исключениях и создание хороших графиков, чего всегда требует начальство.
Инструменты уровня предприятия, как правило, заточены на потоковую работу с сетевым трафиком, а не на оценку содержимого пакетов
Под этим я подразумеваю, что основное внимание большинства системных администраторов на предприятии заключается в том, чтобы сеть не имела узких мест в производительности. Когда такие узкие места возникают, цель обычно заключается в том, чтобы определить, вызвана ли проблема сетью или приложением в сети
С другой стороны, эти инструменты обычно могут обрабатывать такой большой трафик, что они могут помочь предсказать момент, когда сегмент сети будет полностью загружен, что является критическим моментом управления пропускной способностью сети.
1. SolarWinds
— это очень большой набор инструментов управления IT. В этой статье более уместна утилита Deep Packet Inspection and Analysis которая является его составной частью. Сбор сетевого трафика довольно прост. С использованием таких инструментов, как WireShark, базовый анализ также не является проблемой. Но не всегда ситуация полностью понятна. В очень загруженной сети может быть трудно определить даже очень простые вещи, например:
— какое приложение в сети создает этот трафик?
— если приложение известно (скажем, веб-браузер), где его пользователи проводят большую часть своего времени?
— какие соединения самые длинные и перегружают сеть?
Большинство сетевых устройств, чтобы убедиться, что пакет идет туда, куда нужно, используют метаданные каждого пакета. Содержимое пакета неизвестно сетевому устройству. Другое дело — глубокая инспекция пакетов; это означает, что проверяется фактическое содержимое пакета. Таким образом можно обнаружить критическую сетевую информацию, которую нельзя почерпнуть из метаданных. Инструменты, подобные тем, которые предоставляются SolarWinds, могут выдавать более значимые данные, чем просто поток трафика.
Другие технологии управления сетями с большим объемом данных включают NetFlow и sFlow. У каждой есть свои сильные и слабые стороны,
вы можете узнать больше о NetFlow и sFlow.
Анализ сетей в целом является передовой темой, которая базируется как на основе полученных знаний, так и на основе практического опыта работы. Можно обучить человека детальным знаниям о сетевых пакетах, но если этот человек не обладает знаниями о самой сети, и не имеет опыта выявления аномалий, он не слишком преуспеет. Инструменты, описанные в этой статье, должны использоваться опытными сетевыми администраторами, которые знают, что они хотят, но не уверены в том, какая утилита лучше. Они также могут использоваться менее опытными системными администраторами, чтобы получить повседневный опыт работы с сетями.
Analysing the Packets
The IP datagram encapsulates the TCP and UDP packets. This further contains the data sent by the application layer protocols such as DNS, HTTP, FTP, SMTP, SIP, etc. Thus a TCP packet is received inside the IP datagram, like this:
Copy Code
+-----------+------------+--------------------+ | IP header | TCP header | Data | +-----------+------------+--------------------+
So the first thing that we need to do is to parse the IP header. The stripped version of the IP header class is shown below, the comments describe the things as they happen.
C#
Copy Code
public classIPHeader { private byte byVersionAndHeaderLength; private byte byDifferentiatedServices; private ushort usTotalLength; private ushort usIdentification; private ushort usFlagsAndOffset; private byte byTTL; private byte byProtocol; private short sChecksum; private uint uiSourceIPAddress; private uint uiDestinationIPAddress; private byte byHeaderLength; private byte[] byIPData = new byte; public IPHeader(byte[] byBuffer, int nReceived) { try { MemoryStream memoryStream = newMemoryStream(byBuffer, , nReceived); BinaryReader binaryReader = newBinaryReader(memoryStream); byVersionAndHeaderLength = binaryReader.ReadByte(); byDifferentiatedServices = binaryReader.ReadByte(); usTotalLength = (ushort) IPAddress.NetworkToHostOrder(binaryReader.ReadInt16()); usIdentification = (ushort)IPAddress.NetworkToHostOrder(binaryReader.ReadInt16()); usFlagsAndOffset = (ushort)IPAddress.NetworkToHostOrder(binaryReader.ReadInt16()); byTTL = binaryReader.ReadByte(); byProtocol = binaryReader.ReadByte(); sChecksum = IPAddress.NetworkToHostOrder(binaryReader.ReadInt16()); uiSourceIPAddress = (uint)(binaryReader.ReadInt32()); uiDestinationIPAddress = (uint)(binaryReader.ReadInt32()); byHeaderLength = byVersionAndHeaderLength; byHeaderLength <<= 4; byHeaderLength >>= 4; byHeaderLength *= 4; Array.Copy(byBuffer, byHeaderLength, byIPData, , usTotalLength - byHeaderLength); } catch (Exception ex) { MessageBox.Show(ex.Message, "MJsniff", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
Firstly, the class contains the data members corresponding to the fields of the IP header. Kindly see RFC 791 for a detailed explanation of the IP header and its fields. The constructor of the class takes the bytes received and creates a on the received bytes and then creates a to read the data from the byte-by-byte. Also note that the data received from the network is in big-endian form so we use the to correct the byte ordering. This has to be done for all non-byte data members.
The TCP, UDP headers are also parsed in an identical fashion, the only difference is that they are read from the point where the IP header ends. As an example of parsing the application layer protocols, the attached project can detect DNS packets as well.
Описание атаки ARP-spoofing
Два компьютера(узла) M и N в локальной сети Ethernet обмениваются сообщениями. Злоумышленник X, находящийся в этой же сети, хочет перехватывать сообщения между этими узлами. До применения атаки ARP-spoofing на сетевом интерфейсе узла M ARP-таблица содержит IP и MAC адрес узла N. Также на сетевом интерфейсе узла N ARP-таблица содержит IP и MAC узла M.
Во время атаки ARP-spoofing узел X (злоумышленник) отсылает два ARP ответа (без запроса) – узлу M и узлу N. ARP-ответ узлу M содержит IP-адрес N и MAC-адрес X. ARP-ответ узлу N содержит IP адрес M и MAC-адрес X.
Так как компьютеры M и N поддерживают самопроизвольный ARP, то, после получения ARP-ответа, они изменяют свои ARP таблицы, и теперь ARP-таблица M содержит MAC адрес X, привязанный к IP-адресу N, а ARP-таблица N содержит MAC адрес X, привязанный к IP-адресу M.
Тем самым атака ARP-spoofing выполнена, и теперь все пакеты(кадры) между M и N проходят через X. К примеру, если M хочет передать пакет компьютеру N, то M смотрит в свою ARP-таблицу, находит запись с IP-адресом узла N, выбирает оттуда MAC-адрес (а там уже MAC-адрес узла X) и передает пакет. Пакет поступает на интерфейс X, анализируется им, после чего перенаправляется узлу N.
Wireshark portable
Распространенная среди пользователей программа wireshark – это программа для анализа трафика компьютерных сетей Ethernet и других возможных программ, которая имеет огромное количество возможностей, связанных с фильтрацией определенной информации и ее сортировкой. Данная программа дает возможность наблюдать за полным трафиком сетевых протоколов, который проходит по сети во время пользования. Wireshark визуализируется доступным графическим интерфейсом, для формирования которого используется кроссплатформенная библиотека GTK+. В дальнейшем планируется перейти на новую платформу Qt, которая будет более комфортнее для пользователей. Так же в архиве с программой вы найдете портативную версию Wireshark portable. Wireshark – это уникальная программа, которая может распознать структуру совершенно любой сетевой информации. Таким образом суть снифферов, а в частности предложенном сниффере wireshark состоит в том, что они могут обеспечить доступ к любой интересующей информации в пределах сети. Большой находкой как для частных лиц, так и для лиц, занимающихся коммерческой деятельностью будет освоение этих программ, работа с которыми не доставит больших хлопот. Бесплатно скачать их вы можете на нашем сайте в разделе «Скачать».
Сниффинг wi-fi перехватывает трафик следующими вариантами, выбор остается за пользователем:
- Отслеживанием сетевого интерфейса;
- Подключается в разрыв сетевых каналов;
- Аппаратным или программным ответвлением трафика;
- Анализирует электромагнитные излучения и тем самым осуществляет прослушивание трафика;
- Атакует сеть или канал и перенаправление трафика на сниффер.
Что такое сетевой анализ?
Компьютеры обмениваются сообщениями по сети, используя IP-адреса. Как только сообщение отправлено по сети, компьютер-получатель с соответствующим IP-адресом отвечает своим MAC-адресом.
Обнаружение сетевого трафика — это процесс перехвата пакетов данных, передаваемых по сети. Это может быть сделано с помощью специализированного программного обеспечения или оборудования. Нюхать можно привыкнуть;
- Захват конфиденциальных данных, таких как учетные данные для входа
- Подслушивать сообщения чата
- Файлы захвата были переданы по сети
Ниже приведены протоколы, которые уязвимы для сниффинга.
- Telnet
- Rlogin
- HTTP
- SMTP
- NNTP
- POP
- FTP
- IMAP
Вышеуказанные протоколы уязвимы, если данные для входа отправляются в виде простого текста
Снифферинг – что это такое?
Анализатор проходящего трафика сети, или «сниффер» (от английского слова to sniff – «нюхать») – компьютерная программа для перенаправления (перехвата) пакетных данных с возможностью их декодирования и анализа. Снифферинг (перехват данных) особенно популярен в людных местах (в ресторанах, на вокзалах, в торговых центрах и просто на улице). Везде, где есть общедоступная сеть вайфай, ничего не подозревающий пользователь интернета может стать жертвой злоумышленника
С виду мошенник может быть таким же беззаботным посетителем кафе, внимание которого приковано к экрану личного ноутбука
В то же время, на устройстве преступника активировано приложение-сниффер, включена точка доступа wifi с именем, созвучным названию заведения или публичного места (к примеру, macdonalds). Когда ничего не подозревающий пользователь подключается к одной из доступных общественных сетей, он запросто может стать потенциальной жертвой злоумышленника. Весь проходящий трафик перехватывается сниффером, и анализируются на предмет имён и паролей пользователя платёжных систем, номеров кредитных карт, паролей подтверждения оплаты, и так далее. Фактически перехватывается весь ваш трафик, но при условии, что вы подключились именно к псевдо-сети мошенника.
Перехват трафика может осуществляться не только через wifi, известны следующие способы:
- «Прослушивание» сети, подключившись к сетевому интерфейсу (свободному порту хаба или коммутатора). Данный метод будет эффективен лишь при использовании в сегменте сети обычных хабов (концентраторов) вместо коммутаторов (свитчей). Дело в том, что хаб – это обычный разветвитель, через каждый порт которого проходят все пакеты, а коммутаторы – интеллектуальные устройства, где поток данных может быть разделён на различные каналы, поэтому общую картину передаваемых данных в них, при подключению к одному порту, не получить;
- Подключение сниффера в разрыв сетевого канала;
- Ответвление (программное или аппаратное) сетевого трафика с направлением его копии на сниффер (Network tap);
- Анализ побочных электромагнитных излучений и восстановление прослушиваемого трафика;
- Атака на канальном (MAC-spoofing) или сетевом уровне (IP-spoofing), приводящую к незаметному перенаправлению трафика жертвы или всего трафика сегмента на сниффер с последующим возвращением трафика в надлежащий адрес.
Пишем простой сниффер под Windows
Введение
Цель: написать программу, которая будет захватывать сетевой трафик (Ethernet, WiFi), передающийся по протоколу IP. Средства: Visual Studio 2005 или выше. Подход, который здесь описан, не принадлежит лично автору и успешно применяется во многих коммерческих, а также категорически бесплатных программах (привет, GPL). Сей труд предназначен прежде всего для новичков в сетевом программровании, которые, однако, имеют хотя бы базовые знания в области сокетов вообще, и windows-сокетов в частности. Здесь я часто буду писать общеизвестные вещи, потому что предметная область специфическая, если что-то пропустить — в голове будет каша.
Применение
Разумеется, в первую очередь, данное понятие имеет то применение, о котором шла речь выше, то есть хаккерские атаки и незаконное получение пользовательских данных.
Но кроме этого, снифферы используют и в других сферах, а конкретно, в работе системных администраторов.
В частности, такие приспособления или программы помогают выполнить такие задачи:
- Обнаружение ненормального трафика. Он может быть паразитным, вирусным или просто закольцованным. Все это вредит обычному прохождению информации через канал. Самое меньшее, что могут сделать такие явления, так это загрузить и, соответственно, замедлить трафик, что уже не очень хорошо.
- Выявление несанкционированного программного обеспечения, в том числе и вирусного. Интересно, что и сами снифферы в какой-то мере являются таким ПО. В любом случае они являются отличным средством выявления и избавления от троянов, фледуров, других сканеров и тому подобных вещей.
- Локализация или, другими словами, выявление места неисправности. Таким же образом выявляются и ошибки конфигурации.
Рис. 3. Такие приспособления помогают чинить компьютерные сети
Как видим, рассматриваемые нами приспособления или программы способны очень сильно облегчить работу системных администраторов и других людей, которые пользуются сетями. А это все мы.
Теперь переходим к самому интересному – обзору программ-снифферов.
Выше мы разобрались, что они могут быть выполнены в виде физических приспособлений, но в большинстве случаев используются специальные программные коды.
Их изучением и займемся.
Фильтрация
В Charles Proxy очень много вариантов фильтрации запросов.
Начнем с вкладки Structure. Самое примитивное — скопировать хост и вставить в поле Filter. Так мы увидим только запросы с этого хоста. Примерно того же результата можно добиться, если в контекстном меню хоста выбрать Focus. Остальные запросы будут собраны в Other Hosts. Если при этом перейти на закладку Sequence и отметить настройку Focused, то в списке окажется информация только о тех запросах, которые были выбраны на вкладке Structure.
На вкладке Sequence есть аналогичный фильтр.
Charles Proxy умеет работать с регулярными выражениями. Для этого на вкладке Sequence выбираем Settings и отмечаем пункт Filter uses regex. И вписываем в поле поиска элементарную регулярку.
Например, вот так
можно выбрать все запросы, в которых в начале имени хоста находится четыре буквы, а потом идет точка.
Там же можно включить Autoscroll списка запросов или указать максимальное количество строк.
В Charles Proxy можно фильтровать не только отображение, но и запись запросов. Для этого надо зайти в Proxy -> Record settings и задать условия на одной из вкладок — Include или Exclude — так мы включаем или выключаем запись запросов данного хоста.
Похожего результата можно добиться, используя блок-листы. Включить хост в блок лист можно из контекстного меню (команда Block list) или через добавление в Tools -> Block list, где следует отметить Enable Block list.
Блокируемый запрос можно прервать двумя способами (подходящий надо выбрать в настройках):
-
сбросить соединение;
-
вернуть ошибку 403.
От выбранного способа блокировки зависит, какой ответ мы получим.
Можно провести эксперимент. Включим наш тестовый стенд в Block list, выбрав простой сброс соединения. С помощью контекстного меню запроса повторим его (команда Repeat) и получим такой ответ:
Статус запроса — Failed, а в описании ошибки указано, что Connection dropped.
Основы
tcpdump
Основным инструментом для сбора сетевого трафика является
В некоторых редких случаях достаточно будет выводить захваченные tcpdump данные прямо на экран, чтобы найти то, что вам нужно. Например, при написании этой статьи я собрал трафик и заметил, что моя машина отправляет трафик на IP-адрес, который я не знаю. Оказывается, моя машина отправляла данные на IP-адрес Google 172.217.11.142. Поскольку у меня не было никаких продуктов Google, и не был открыт Gmail, я не знал, почему это происходит. Я проверил свою систему и нашел следующее:
Оказывыается, что даже когда Chrome не работает, он остается запущенным как служба. Я не заметил бы этого без анализа пакетов. Я перехватил еще несколько пакетов данных, но на этот раз дал tcpdump задачу записать данные в файл, который затем открыл в Wireshark (подробнее об этом позже). Вот эти записи:
Эта команда создает файл с захваченными данными:
Стандартом для таких файлов является формат pcap. Он не является текстом, поэтому его можно анализировать только с помощью программ, которые понимают данный формат.
Windump
Самое существенное различие между Windump и tcpdump заключается в том, что Windump нуждается в библиотеке Winpcap, установленной до запуска Windump. Несмотря на то, что Windump и Winpcap предоставляются одним и тем же майнтайнером, их нужно скачивать отдельно.
Как и в случае с tcpdump, Windump может выводить сетевые данные на экран для анализа, фильтровать таким же образом, а также записывать данные в файл pcap для последующего анализа.
Wireshark
Wireshark является следующим самым известным инструментом в наборе системного администратора. Он позволяет не только захватывать данные, но также предоставляет некоторые расширенные инструменты анализа. Кроме того, Wireshark является программой с открытым исходным кодом и перенесен практически на все существующие серверные операционные системы. Под названием Etheral, Wireshark теперь работает везде, в том числе в качестве автономного переносимого приложения.
Если вы анализируете трафик на сервере с графическим интерфейсом, Wireshark может сделать все за вас. Он может собрать данные, а затем анализировать их все здесь же. Однако на серверах графический интерфейс встречается редко, поэтому вы можете собирать сетевые данные удаленно, а затем изучать полученный файл pcap в Wireshark на своем компьютере.
При первом запуске Wireshark позволяет либо загрузить существующий файл pcap, либо запустить захват трафика. В последнем случае вы можете дополнительно задать фильтры для уменьшения количества собираемых данных. Если вы не укажете фильтр, Wireshark будет просто собирать все сетевые данные с выбранного интерфейса.
Одной из самых полезных возможностей Wireshark является возможность следовать за потоком. Лучше всего представить поток как цепочку. На скриншоте ниже мы можем видеть множество захваченных данных, но меня больше всего интересовал IP-адрес Google. Я могу щелкнуть правой кнопкой мыши и следовать потоку TCP, чтобы увидеть всю цепочку.
tshark
Tshark использует те же правила фильтрации, что и Wireshark, что не должно удивлять, так как они по сути являются одним и тем же продуктом. Приведенная ниже команда говорит tshark только о том, что необходимо захватить IP-адрес пункта назначения, а также некоторые другие интересующие нас поля из HTTP-части пакета.