Что такое сниффер и как им пользоваться. Сетевой анализатор трафика сниффер

Многие администраторы сетей часто сталкиваются с проблемами, разобраться с которыми поможет анализ сетевого трафика. И здесь мы сталкиваемся с таким понятием, как анализатор трафика. Так что же это такое?

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

Термин «NetFlow » относится к протоколу Cisco , предназначенному для сбора информации о трафике по IP и мониторинга сетевого трафика. NetFlow был принят в качестве стандартного протокола для потоковых технологий.

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

Несколько других поставщиков сетевого оборудования имеют свои собственные протоколы для мониторинга и сбора данных. Например, Juniper , другой весьма уважаемый поставщик сетевых устройств, называет свой протокол «J-Flow «. HP и Fortinet используют термин «s-Flow «. Несмотря на то, что протоколы называются по-разному, все они работают аналогичным образом. В этой статье мы рассмотрим 10 бесплатных анализаторов сетевого трафика и коллекторов NetFlow для Windows .

SolarWinds Real-Time NetFlow Traffic Analyzer

Free NetFlow Traffic Analyzer является одним из наиболее популярных инструментов, доступных для бесплатного скачивания. Он дает возможность сортировать, помечать и отображать данные различными способами. Это позволяет удобно визуализировать и анализировать сетевой трафик. Инструмент отлично подходит для мониторинга сетевого трафика по типам и периодам времени. А также выполнение тестов для определения того, сколько трафика потребляют различные приложения.

Этот бесплатный инструмент ограничен одним интерфейсом мониторинга NetFlow и сохраняет только 60 минут данных. Данный Netflow анализатор является мощным инструментом, который стоит того, чтобы его применить.

Colasoft Capsa Free

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

Другие функции включают в себя анализ безопасности сети. Например, отслеживание DoS/DDoS-атак , активности червей и обнаружение ARP-атак . А также декодирование пакетов и отображение информации, статистические данные о каждом хосте в сети, контроль обмена пакетами и реконструкция потока. Capsa Free поддерживает все 32-битные и 64-битные версии Windows XP .

Минимальные системные требования для установки: 2 Гб оперативной памяти и процессор 2,8 ГГц. У вас также должно быть соединение с интернет по сети Ethernet (совместимой с NDIS 3 или выше ), Fast Ethernet или Gigabit с драйвером со смешанным режимом. Он позволяет пассивно фиксировать все пакеты, передаваемые по Ethernet-кабелю .

Angry IP Scanner

Это анализатор трафика Windows с открытым исходным кодом, быстрый и простой в применении. Он не требует установки и может быть использован на Linux , Windows и Mac OSX . Данный инструмент работает через простое пингование каждого IP-адреса и может определять MAC-адреса , сканировать порты, предоставлять NetBIOS-информацию , определять авторизованного пользователя в системах Windows , обнаруживать веб-серверы и многое другое. Его возможности расширяются с помощью Java-плагинов . Данные сканирования могут быть сохранены в файлы форматов CSV, TXT, XML .

ManageEngine NetFlow Analyzer Professional

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

Бесплатная версия анализатора трафика Linux позволяет неограниченно использовать продукт на протяжении 30 дней, после чего можно производить мониторинг только двух интерфейсов. Системные требования для NetFlow Analyzer ManageEngine зависят от скорости потока. Рекомендуемые требования для минимальной скорости потока от 0 до 3000 потоков в секунду: двухъядерный процессор 2,4 ГГц, 2 Гб оперативной памяти и 250 Гб свободного пространства на жестком диске. По мере увеличения скорости потока, который нужно отслеживать, требования также возрастают.

The Dude

Это приложение представляет собой популярный сетевой монитор, разработанный MikroTik . Он автоматически сканирует все устройства и воссоздает карту сети. The Dude контролирует серверы, работающие на различных устройствах, и предупреждает в случае возникновения проблем. Другие функции включают в себя автоматическое обнаружение и отображение новых устройств, возможность создавать собственные карты, доступ к инструментам для удаленного управления устройствами и многое другое. Он работает на Windows , Linux Wine и MacOS Darwine .

JDSU Network Analyzer Fast Ethernet

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

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

Plixer Scrutinizer

Этот анализатор сетевого трафика позволяет собрать и всесторонне проанализировать сетевой трафик, а также быстро найти и исправить ошибки. С помощью Scrutinizer можно отсортировать данные различными способами, в том числе по временным интервалам, хостам, приложениям, протоколам и т.д. Бесплатная версия позволяет контролировать неограниченное количество интерфейсов и хранить данные по 24 часам активности.

Wireshark

Wireshark — это мощный сетевой анализатор может работать на Linux , Windows , MacOS X , Solaris и других платформах. Wireshark позволяет просматривать захваченные данные с помощью графического интерфейса, или использовать утилиты TTY-mode TShark . Его функции включают в себя сбор и анализ трафика VoIP, отображение в режиме реального времени данных Ethernet , IEEE 802.11 , Bluetooth , USB , Frame Relay , вывод данных в XML , PostScript , CSV , поддержку дешифрования и многое другое.

Системные требования: Windows XP и выше, любой современный 64/32-битный процессор, 400 Mb оперативной памяти и 300 Mb свободного дискового пространства. Wireshark NetFlow Analyzer — это мощный инструмент, который может существенно упростить работу любому администратору сети.

Paessler PRTG

Этот анализатор трафика предоставляет пользователям множество полезных функций: поддержку мониторинга LAN , WAN , VPN , приложений, виртуального сервера, QoS и среды. Также поддерживается мониторинг нескольких сайтов. PRTG использует SNMP , WMI , NetFlow , SFlow , JFlow и анализ пакетов, а также мониторинг времени бесперебойной работы/простоя и поддержку IPv6 .

Бесплатная версия дает возможность использовать неограниченное количество датчиков в течение 30 дней, после чего можно бесплатно использовать только до 100 штук.

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

Принцип работы снифферов

Перехватить трафик через сниффер можно следующими способами:

  • Путем прослушивания в обычном режиме сетевого интерфейса, этот способ дает эффект лишь тогда, когда в определенном поле используются хабы, а не свитчи.
  • Если в место разрыва канала подключить сниффер (sniffers) , то можно перехватить трафик.
  • Адаптер или программа меняют путь трафика и отправляют копию на сниффер.
  • Побочные электромагнитные излучения проанализировать и восстановить трафик для прослушивания.
  • Уровень канала и сети подвергнуть атаке, что перенаправит трафик на сниффер для получения данных, после чего трафик направляется по прежнему маршруту.

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

Обычный снифферы (sniffers) анализирует трафик очень просто, применяя самые доступные автоматизированные средства и способен анализировать лишь очень маленькие объемы.

Примеры наиболее известных снифферов:

  • WinSniffer 1.3 – самый лучший сниффер, обладает множеством разных настраиваемых режимов, способен ловить пароли различных сервисов;
  • CommViev 5.0 ловит и анализирует интернет - трафик, а также локальную сеть. Собирает информационные данные, связанные с модемом и сетевой картой, и подвергает их декодированию. Это дает возможность видеть полный список соединений в сети, статистические сведения по IP. Перехваченная информация сохраняется в отдельный файл, для последующего анализа, к тому же, удобная система фильтрации позволяет игнорировать ненужные пакеты и оставляет только те, которые нужны злоумышленнику;
  • ZxSniffer 4.3 – небольшой по размеру сниффер объемом 333 kb, он помещается на любой современный носитель информации и может быть использован по;
  • SpyNet–достаточно известный и популярный сниффер. В основной функционал входит перехват трафика и декодирование пакетов данных;
  • IRIS- обладает широкими возможностями фильтрации. Способен ловить пакеты с заданными ограничениями.

Классификация снифферов (Sniffers)

Снифферы делят по методу использования на легальные и нелегальные. При этом само понятие снифферы применяется именно по отношению к нелегальному использованию, а легальные называют «Анализатор трафика».

Для того, чтобы получать полную информацию о состоянии сети и понимать, чем заняты сотрудники на рабочих местах используют легальные снифферы (анализаторы трафика). Нельзя переоценить помощь снифферов, когда необходимо «прослушать» порты программ, через которые они могут отсылать конфиденциальную информацию своим хозяевам. Для программистов они помогают проводить отладку и взаимодействие программ. Используя анализаторы трафика можно своевременно обнаружить несанкционированный доступ к данным или проведение DoS-атаки.

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

Анализаторы трафика различаются следующими возможностями:

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

Источник угрозы

Работать снифферы могут на:

  • Маршрутизаторе (router) – может анализироваться весь трафик проходящий через устройство.
  • На оконечном узле сети – все данные передаваемые по сети доступны для всех сетевых карт, но в стандартном режиме работы, сетевые карты, для которых не предназначены данные, просто не замечают их. При этом, если перевести сетевую карту в режим promiscuous mode, то появится возможность получать все данные передаваемые в сети. И конечно снифферы позволяют переключаться в этот режим.

Анализ рисков

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

Антисниффер – программное или аппаратное средство работающее в сети и позволяющее находить снифферы.

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

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

Что такое сниффер?

Прежде всего, рассмотрим определение данного термина. Чтобы вникнуть в суть данного вопроса, необходимо сперва перевести слово «сниффер». Если переводить дословно, то на английском языке sniffer означает «нюхач». Если говорить более простым языком, то это программа или оборудование, которые способны на основе анализа трафика в виде передаваемых и принимаемых данных извлекать всю необходимую информацию, например, зашифрованные пароли, внешние сетевые IP-адреса, или конфиденциальную информацию.Сами снифферы могут быть использованы как во вред, так и во благо.

Снифферы: основные типы

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

— программные;

— аппаратные;

— программно-аппаратные;

— онлайн-компоненты.

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

Как же это работает? Технология перехвата сетевого траффика может быть применена только к сетям, построенным на основе протоколов TCP/IP, а также реализуемому соединению посредством сетевых карт Ethernet. Анализу также могут подвергаться и беспроводные сети. В такой системе изначально все равно присутствует проводное подключение (к раздающему стационарному ПК или ноутбуку, маршрутизатору). В сети передача данных осуществляется не цельным блоком, а при помощи его разделения на стандартные сегменты и пакеты, которые при получении принимающей стороной объединяются в одно целое. Снифферы могут отслеживать различные каналы передачи каждого сегмента. В момент передачи незащищенных пакетов на подключенные устройства, например, свитчи, хабы, маршрутизаторы, компьютеры или мобильные устройства осуществляется извлечение нужной информации, в которой могут содержаться пароли. Взлом пароля становится делом техники, особенно если он не зашифрован должным образом. Даже при использовании современных технологий шифрования пароля, он может передаваться вместе с соответствующим ключом. Если данный ключ открытого типа, то получить пароль будет очень просто. Если ключ зашифрован, то злоумышленник может воспользоваться какой-нибудь программой дешифратором. В конечном итоге это все равно приведет к взлому данных.

Где может использоваться сниффер сети? Область применения

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

Как определить присутствие сниффера?

Давайте пока оставим в стороне такое понятие, как «сниффер». Уже немного понятно, что это такое. Давайте теперь посмотрим, по каким признакам можно самостоятельно определить «прослушку» сниффером. Если в целом с компьютерной системой все в порядке и интернет-подключение, и сетевое оборудование работают без сбоев, то первым признаком вмешательства со стороны является снижение скорости передачи данных по сравнению с заявленной провайдером. В операционных системах семейства Windows рядовой пользователь вряд ли сможет определить скорость при помощи стандартных средств даже при вызове меню состояния кликом на значке подключения. Тут указывается только число полученных и отправленных пакетов. Снижение скорости может быть связано с ограничениями самого ресурса, к которому осуществляется доступ. Лучше всего будет использовать специальные утилиты-анализаторы. Они, стоит отметить, работают по принципу сниффера. Единственный момент, на который необходимо обратить внимание, это то, что программы такого типа после установки могут вызывать ошибки, которые появляются в результате конфликтов с файрволлами (сторонними программами или встроенным брэндмауэром Windows). По этой причине на момент проведения анализа желательно полностью отключить защитные экраны.

Заключение

Мы коротко рассмотрели основные вопросы, которые касаются такого понятия, как «сниффер». Теперь в принципе должно быть понятно, что это такое с точки зрения инструмента защиты или взлома. Остается добавить только несколько слов об онлайн-апплетах. Именно они по большей части могут быть использованы злоумышленниками для получения IP-адреса жертвы и доступа к конфиденциальной информации. Такой онлайн-сниффер также выполняет свою непосредственную функцию, IP-адрес злоумышленника тоже меняется. Чем-то такие апплеты напоминают анонимные прокси-серверы, которые скрывают реальный IP-адрес пользователя. Данные о таких интернет-ресурсах по понятным соображениям не приводятся, так вмешательство в работу чужих компьютерных систем с помощью этих, вроде бы и официально размещенных программных продуктов, является уголовно наказуемым и противозаконным.

В этой статье мы рассмотрим создание простого сниффера под ОС Windows.
Кому интересно, добро пожаловать под кат.

Введение

Цель: написать программу, которая будет захватывать сетевой трафик (Ethernet, WiFi), передающийся по протоколу IP.
Средства: Visual Studio 2005 или выше.
Подход, который здесь описан, не принадлежит лично автору и успешно применяется во многих коммерческих, а также категорически бесплатных программах (привет, GPL).
Сей труд предназначен прежде всего для новичков в сетевом программровании, которые, однако, имеют хотя бы базовые знания в области сокетов вообще, и windows-сокетов в частности. Здесь я часто буду писать общеизвестные вещи, потому что предметная область специфическая, если что-то пропустить - в голове будет каша.

Надеюсь, Вам будет интересно.

Теория (читать не обязательно, но желательно)

В данный момент подавляющее большинство современных информационных сетей базируются на фундаменте стека протоколов TCP/IP. Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol) - собирательное название для сетевых протоколов разных уровней, используемых в сетях. В настоящей статье нас будет интересовать в основном протокол IP - маршрутизируемый сетевой протокол, используемый для негарантированной доставки данных, разделяемых на так называемые пакеты (более верный термин – дейтаграмма) от одного узла сети к другому.
Особый интерес для нас представляют IP-пакеты, предназначенные для передачи информации. Это достаточно высокий уровень сетевой OSI-модели данных, когда можно обстрагироваться от устройства и среды передачи данных, оперируя лишь логическим представлением.
Совершенно логичным является то обстоятельство, что рано или поздно должны были появится инструменты для перехвата, контроля, учета и анализа сетевого трафика. Такие средства обычно называется анализаторами трафика, пакетными анализаторыми или снифферами (от англ. to sniff - нюхать). Это - сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов.

Практика (разговор по существу)

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

Для чего это может понадобиться:

  1. Смотреть текущий поток трафика через сетевое соеднинение (входящий/исходящий/всего).
  2. Перенаправлять трафик для последующего анализа на другой хост.
  3. Теоретически, можно попытаться применить его для взлома WiFi-сети (мы ведь не собираемся этим заниматься?).
В отличие от Wireshark, который базируется на библиотеке libpcap/WinPcap, наш анализатор не будет использовать этот драйвер. Чего уж там, у нас вообще не будет драйвера, и свой NDIS(о ужас!) мы писать не собираемся. Про это можно прочитать в этом топике . Он будет просто пассивным наблюдателем, использующим только библиотеку WinSock. Использование драйвера в данном случае избыточно.

Как так? Очень просто.
Ключевым шагом в превращении простого сетевого приложения в сетевой анализатор является переключение сетевого интерфейса в режим прослушивания (promiscuous mode), что и позволит ему получать пакеты, адресованные другим интерфейсам в сети. Этот режим заставляют сетевую плату принимать все кадры, вне зависимости от того, кому они адресованы в сети.

Начиная с Windows 2000 (NT 5.0) создать программу для прослушивания сегмента сети стало очень просто, т.к. ее сетевой драйвер позволяет перевести сокет в режим приёма всех пакетов.

Включение неразборчивого режима
long flag = 1; SOCKET socket; #define SIO_RCVALL 0x98000001 ioctlsocket(socket, SIO_RCVALL, &RS_Flag);
Наша программа оперирует IP-пакетами, и использует библиотеку Windows Sockets версии 2.2 и «сырые» сокеты (raw sockets). Для того чтобы получить прямой доступ к IP-пакету, сокет нужно создавать следующим образом:
Создание сырого сокета
s = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
Здесь вместо константы SOCK_STREAM (протокол TCP) или SOCK_DGRAM (протокол UDP), мы используем значение SOCK_RAW . Вообще говоря, работа с raw sockets интересна не только с точки зрения захвата трафика. Фактически, мы получаем полный контроль за формированием пакета. Вернее, формируем его вручную, что позволяет, например, послать специфический ICMP-пакет…

Идем дальше. Известно, что IP-пакет состоит из заголовка, служебной информации и, собственно, данных. Советую заглянуть сюда , чтобы освежит знания. Опишем в виде структуры IP-заголовок (спасибо отличной статье на RSDN ):

Описание структуры IP-пакета
typedef struct _IPHeader { unsigned char ver_len; // версия и длина заголовка unsigned char tos; // тип сервиса unsigned short length; // длина всего пакета unsigned short id; // Id unsigned short flgs_offset; // флаги и смещение unsigned char ttl; // время жизни unsigned char protocol; // протокол unsigned short xsum; // контрольная сумма unsigned long src; // IP-адрес отправителя unsigned long dest; // IP-адрес назначения unsigned short *params; // параметры (до 320 бит) unsigned char *data; // данные (до 65535 октетов) }IPHeader;
Главная функция алгоритма прослушивания будет выглядеть следующим образом:
Функция захвата одного пакета
IPHeader* RS_Sniff() { IPHeader *hdr; int count = 0; count = recv(RS_SSocket, (char*)&RS_Buffer, sizeof(RS_Buffer), 0); if (count >= sizeof(IPHeader)) { hdr = (LPIPHeader)malloc(MAX_PACKET_SIZE); memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr); return hdr; } else return 0; }
Здесь все просто: получаем порцию данных с помощью стандартной функции socket-функции recv , а затем копируем их в структуру типа IPHeader .
И, наконец, запускаем бесконечный цикл захвата пакетов:
Захватым все пакеты, которые попадут на наш сетевой интерфейс
while (true) { IPHeader* hdr = RS_Sniff(); // обработка IP-пакета if (hdr) { // печатаем заголовок в консоли } }
Немного оффтопика
Здесь и далее у некоторых важных функций и переменных автор сделал префкис RS_ (от Raw Sockets). Проект делал 3-4 года назад, и была шальная мысль написать полноценную библиотеку для работы с сырыми сокетами. Как это часто бывает, после получения сколь-нибудь значимых(для автора) результатов, энтузиазм угас, и дальше учебного примера дело не полшло.

В принципе, можно пойти дальше, и описать заголовки всех последующих протоколов, находящихся выше. Для этого необходимо анализировать поле protocol в структуре IPHeader . Посмотрите на пример кода (да, там должен быть switch, чёрт возьми!), где происходит раскрашивание заголовка в зависимости от того, какой протокол имеет пакет, инкапсулированный в IP:

/* * Выделение пакета цветом */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) { if (h->xsum) SetConsoleTextColor(0x17); // если пакет не пустой else SetConsoleTextColor(0x07); // пустой пакет if (haddr == h->src) { SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // "родной" пакет на отдачу } else if (haddr == h->dest) { SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "родной" пакет на прием } if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP) { SetConsoleTextColor(0x70); // ICMP-пакет } else if(h->protocol == PROT_IP || h->protocol == 115) { SetConsoleTextColor(0x4F); // IP-in-IP-пакет, L2TP } else if(h->protocol == 53 || h->protocol == 56) { SetConsoleTextColor(0x4C); // TLS, IP with Encryption } if(whost == h->dest || whost == h->src) { SetConsoleTextColor(0x0A); } }

Однако это существенно выходит за рамки этой статьи. Для нашего учебного примера вполне достаточно будет посмотреть ip-адреса хостов, с которых и на которые идет трафик, и посчитать его количество в единицу времени(готовая программа в архиве в конце статьи).

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

Преобразование IP-заголовка в строку
inline char* iph2str(IPHeader *iph) { const int BUF_SIZE = 1024; char *r = (char*)malloc(BUF_SIZE); memset((void*)r, 0, BUF_SIZE); sprintf(r, "ver=%d hlen=%d tos=%d len=%d id=%d flags=0x%X offset=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H(iph->ver_len), BYTE_L(iph->ver_len)*4, iph->tos, ntohs(iph->length), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET(ntohs(iph->flgs_offset)), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest)); return r; }
На основании приведенных выше базовых сведений, получается вот такая небольшая программа (жуткое название ss, сокр. от англ. simple sniffer), реализующая локальное прослушивание IP-трафика. Интерфейс ее приведен ниже на рисунке.

Исходный и бинарный код предоставляю как есть, таким как он был несколько лет назад. Сейчас мне на него страшно смотреть, и все же, он вполне читабельный (конечно же, нельзя быть таким самоуверенным). Для компиляции будет достаточно даже Visual Studio Express 2005.

Что у нас получилось в итоге:

  • Сниффер работает в режиме пользователя, однако требует привилегии администратора.
  • Пакеты не фильтруются, отображаясь как есть (можно добавить настраиваемые фильтры - предлагаю подробно рассмотреть эту тему в следующей статье, если интересно).
  • WiFi-трафик тоже захватывается(все зависит от конкретной модели чипа, у Вас может и не работать, как у меня несколько лет назад), хотя есть AirPcap, которая чудесно это умеет делать, но стоит денег.
  • Весь поток дейтаграмм логируется в файл (см. архив, приложенный в конце статьи).
  • Программа работает в качестве сервера на порту 2000. Можно подключиться с помощью утилиты telnet к хосту и произвести мониторинг потоков трафика. Количество подключений ограничено двадцатью (код не мой, нашел на просторах сети и применял для экспериментов; удалять не стал - жалко)
Спасибо за внимание, проздравляю хабровчан и хабровчанок и всех-всех-всех с наступающим Рождеством!

Любое слежение онлайн основано на применении технологий снифферов (анализаторов сетевых пакетов). Что же такое сниффер?

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


Нюансы применения онлайн слежения через снифферы.

На широковещательном канале компьютерной сети пользователя LAN (Local Area Network), в зависимости от структуры сети (коммутатора switch или концентратора hub), снифферы перехватывают трафик либо всей, либо части сети исходящий с одного ноутбука, компьютера. Однако, применяя различные методы (например, ARP spoofing) можно добиться интернет-трафика и других компьютерных систем, подключенных в сеть.

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

Использование сетевых отводов (Network tap), в некоторых случаях, является более надежным способом слежения онлайн за интернет-трафиком чем мониторинг портов. При этом, вероятность обнаружения неисправных пакетов (потоков) увеличивается, что положительно сказывается при высокой сетевой нагрузке.
Помимо этого, снифферы хорошо отслеживают и беспроводные одно- и многоканальные локальные сети (так называемые Wireless LAN) при использовании нескольких адаптеров.

На LAN сетях сниффер может эффективно перехватывать трафик как односторонний (передача пакета информации по единственному адресу), так и многоадресный. При этом, сетевой адаптер должен иметь promiscuous mode (режим «неразборчивый»).

На беспроводных же сетях, даже когда адаптер находится в «неразборчивом» режиме, пакеты данных, перенаправляющиеся не с настроенной (основной) системы, будут автоматически проигнорированы. Чтобы отслеживать данные информационные пакеты, адаптер должен находится в ином режиме – мониторинга.


Последовательность перехвата информационных пакетов.

1. Перехват заголовков или всего содержимого.

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


2. Декодирование пакетов.

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

Анализаторы различаются по:

  • способности отображения данных (создание временных диаграмм, реконструирование UDP, TCP протоколов данных и пр.);
  • типу применения (для обнаружения ошибок, первопричин либо для слежения онлайн за пользователями).

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


Аппаратные снифферы.


Анализаторы трафика могут быть и аппаратного типа, в виде зонда или дискового массива (более распространенный тип). Данные устройства осуществляют запись информационных пакетов или их частей на дисковый массив. Это позволяет воссоздать любую информацию полученную или переданную пользователем в просторы интернета либо своевременно выявить неисправность интернет-трафика.


Методы применения.

Анализаторы сетевых пакетов применяются для:

  • анализа имеющихся проблем в сети;
  • обнаружения сетевых попыток вторжения;
  • определения злоупотребления трафика пользователями (внутри системы так и снаружи нее);
  • документирования нормативных требований (возможного периметра входа в систему, конечных точек распространения трафика);
  • получения информации о возможностях сетевого вторжения;
  • изолирования эксплуатируемых систем;
  • мониторинга загрузки каналов глобальной сети;
  • использования для отслеживания состояния сети (в том числе деятельность пользователей как в системе, так и за ее пределами);
  • мониторинга перемещаемых данных;
  • отслеживания WAN и безопасности конечных точек состояния;
  • сбора сетевой статистики;
  • фильтрации подозрительного контента, идущего от сетевого трафика;
  • создания первичного источника данных для отслеживания состояния и управления сети;
  • слежения онлайн в качестве шпиона, собирающего конфиденциальную информацию пользователей;
  • отладки серверной, клиентской связи;
  • проверки эффективности внутреннего контроля (контроля доступа, брандмауэров, фильтров спама и пр.).

Снифферы применяются и в правоохранительных органах для отслеживания деятельности подозреваемых злоумышленников. Заметим, что все поставщики услуг интернета, и провайдеры в США и странах Европы соблюдают законы и правила о прослушивании (CALEA).


Популярные снифферы.

Наиболее функциональные системные анализаторы для слежения онлайн:


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