-Цитатник

Без заголовка - (0)

Медово-лимонная курица со спаржевой фасолью Нежнейшее куриное филе, обжаренная спаржевая фасол...

Без заголовка - (2)

Торт с творожным заварным кремом Торт с творожным заварным кремом Любители тортов хотя и г...

Без заголовка - (0)

Куриные рулетики в беконе Ингредиенты:  Куриные грудки или очищенное филе &mda...

Без заголовка - (0)

Шоколадный тарт с грушами Ингредиенты:  Песочное шоколадное тесто (данного коли...

Без заголовка - (0)

Витамин E для волос: уникальные рецепты Рецепт №1. Маска для регулярного ухода за волосам...

 -Рубрики

 -Приложения

  • Перейти к приложению Открытки ОткрыткиПерерожденный каталог открыток на все случаи жизни
  • Перейти к приложению Календарь биоритмов Календарь биоритмовЭтот бесплатный калькулятор биоритмов Вы можете разместить у себя в блоге или на своей домашней странице. Это позволит Вам или вашим друзьям не терять время в Сети в поисках программы биоритмов, а сра
  • Перейти к приложению Нумерология рождения Нумерология рожденияОнлайновый нумерологический расчет психоматрицы, позволяет узнать характер на основе даты рождения по методике Пифагора
  • Перейти к приложению Сохранение видео с любого сервиса Сохранение видео с любого сервисаСохрани видео с любого видео хостинга!
  • Программа телепередачУдобная программа телепередач на неделю, предоставленная Akado телегид.

 -Фотоальбом

Посмотреть все фотографии серии Лето
Лето
19:37 22.07.2016
Фотографий: 9
Посмотреть все фотографии серии Кадры любимых фильмов
Кадры любимых фильмов
23:16 08.11.2013
Фотографий: 10

 -Кнопки рейтинга «Яндекс.блоги»

 -Поиск по дневнику

Поиск сообщений в SkyKitten

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 31.08.2013
Записей: 5022
Комментариев: 134
Написано: 5273

Серия сообщений "Снифферы":
Часть 1 - Что такое снифферы
Часть 2 - Что такое Сниффинг / Sniffing
Часть 3 - Анализаторы сетевых пакетов
Часть 4 - Принцип работы сниффера. Перехват трафика и пакетов в сети.

Выбрана рубрика Снифферы.


Вложенные рубрики: WireShark(0)

Другие рубрики в этом дневнике: Яхты и катера(5), Юмор(138), Электронная почта(2), Церковные праздники(233), Учение Порфирия Иванова(23), уроки фотографии(0), Ультрабуки(20), тесты,гороскопы и гадания(86), тайны и загадки(868), Способы подключения к интернету(20), Создание сайтов(2), Сети(2), Сервисы онлайн-дневников(13), Решение компьютерных проблем(16), Религия славян до Крещения Руси(3), Программы для создания разделов на диске(10), Программы для общения в интернете(3), Приколы и киноляпы(31), Премьеры(6), Праздники(393), Православные традиции(63), Политические приколы(24), Полезности(7), Ноутбуки(38), нетбуки(14), Музыка(139), Музеи мира(8), Мудры(16), Молитвы(75), Михайловский театр(24), Мариинский театр(50), Любимые фильмы(277), Любимые актеры(242), Лошади(31), Линейка Windows NT(514), Кремлевский балет(9), Красота (57), Кошки(150), Компьютерное железо(126), История древнего мира(68), Здоровье (177), Замена экрана приветствия(0), Замена экрана загрузки(1), Житие святых(22), животные(17), Волхование(4), Война на Донбассе(605), Вкуснятина(532), Ведовство(4), Браузеры(6), Большой балет(42), Армии мира(16), Автомобили(0), Office 2003(32), IP-телефония(2), DirectX(5), Apple(72)

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

Дневник

Понедельник, 20 Июля 2015 г. 15:31 + в цитатник

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

Сниффер может анализировать только то, что проходит через его сетевую карту. Внутри одного сегмента сети Ethernet все пакеты рассылаются всем машинам, из-за этого возможно перехватывать чужую информацию. Использование коммутаторов (switch, switch-hub) и их грамотная конфигурация уже является защитой от прослушивания. Между сегментами информация передаётся через коммутаторы. Коммутация пакетов — форма передачи, при которой данные, разбитые на отдельные пакеты, могут пересылаться из исходного пункта в пункт назначения разными маршрутами. Так что если кто-то в другом сегменте посылает внутри него какие-либо пакеты, то в ваш сегмент коммутатор эти данные не отправит.

Читать далее...

Метки:  

Что такое Сниффинг / Sniffing

Дневник

Понедельник, 20 Июля 2015 г. 15:36 + в цитатник

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

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

Проблема сниффинга в Интернете решаемая. Самое главное, нужно передавать приватные данные в зашифрованном виде (протоколы SSH и SSL). Для понимания процесса посмотрим на сниффинг в локальной сети.

Перехватить пакет в Ethernet-сети очень просто. В Ethernet-сети любой отправленный пакет предназначается каждому компьютеру. Компьютер смотрит поле адреса получателя и сравнивает его со своим адресом. Если адреса совпадают, пакет будет принят, иначе - отброшен. Это в сети с концентраторами. Концентратор сети - это устройство, которое просто повторяет принятый от машины пакет на все свои порты. Если компьютер определит, что пакет предназначен для него, он его примет. Если пакет не предназначен для него, он будет отброшен. Но если перевести сетевой плату в специальный режим (promiscuous mode), то она будет принимать все полученные пакеты, независимо от того, кому они предназначались.

Самая большая угроза сниффинга состоит в перехвате паролей часто используемых протоколов - Telnet, FTP, POP3, HTTP, которые передают информацию о пароле в сети в открытом виде. С помощью сниффинга можно перехватывать даже передаваемые по сети файлы, прикрепленные к какому-нибудь письму.

Популярный сниффер пакетов для Linux - программа Ethereal. Программа обладает удобным графическим интерфейсом, позволяет просматривать как список всех перехваченных пакетов, так и отдельно содержимое каждого пакета. Имеется версия Ethereal и для Windows.

Сниффер можно не устанавливать на каждой машине сети. Достаточно установить его на одной взломанной машине или на своей машине - если машина находится в локальной сети.

Если нужна текстовая версия программы, то удобнее использовать текстовый сниффер - например, Ettercap или tcpdump


Метки:  

Анализаторы сетевых пакетов

Дневник

Среда, 26 Октября 2016 г. 13:59 + в цитатник

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

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

В дальнейшем в рамках данной статьи мы будем рассматривать только программные снифферы, предназначенные для сетей Ethernet. Сниффер — это программа, которая работает на уровне сетевого адаптера NIC (Network Interface Card) (канальный уровень) и скрытым образом перехватывает весь трафик. Поскольку снифферы работают на канальном уровне модели OSI, они не должны играть по правилам протоколов более высокого уровня. Снифферы обходят механизмы фильтрации (адреса, порты и т.д.), которые драйверы Ethernet и стек TCP/IP используют для интерпретации данных. Пакетные снифферы захватывают из провода все, что по нему приходит. Снифферы могут сохранять кадры в двоичном формате и позже расшифровывать их, чтобы раскрыть информацию более высокого уровня, спрятанную внутри (рис. 1).

 

Рис. 1. Схема работы сниффера

Рис. 1. Схема работы сниффера

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

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

В начало В начало

Ограничения использования снифферов

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

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

 

Рис. 2. При использовании концентраторов сниффер способен перехватывать все пакеты сетевого сегмента

Рис. 2. При использовании концентраторов сниффер способен перехватывать все пакеты сетевого сегмента

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

 

Рис. 3. При использовании коммутаторов сниффер способен перехватывать только входящие и исходящие пакеты одного узла сети

Рис. 3. При использовании коммутаторов сниффер способен перехватывать только входящие и исходящие пакеты одного узла сети

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

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

Другая причина, по которой снифферы перестали быть настолько опасными, как раньше, заключается в том, что в настоящее время наиболее важные данные передаются в зашифрованном виде. Открытые, незашифрованные службы быстро исчезают из Интернета. К примеру, при посещении web-сайтов все чаще используется протокол SSL (Secure Sockets Layer); вместо открытого FTP используется SFTP (Secure FTP), а для других служб, которые не применяют шифрование по умолчанию, все чаще используются виртуальные частные сети (VPN).

Итак, те, кто беспокоится о возможности злонамеренного применения пакетных снифферов, должны иметь в виду следующее. Во-первых, чтобы представлять серьезную угрозу для вашей сети, снифферы должны находиться внутри самой сети. Во-вторых, сегодняшние стандарты шифрования чрезвычайно затрудняют процесс перехвата конфиденциальной информации. Поэтому в настоящее время пакетные снифферы постепенно утрачивают свою актуальность в качестве инструментов хакеров, но в то же время остаются действенным и мощным средством для диагностирования сетей. Более того, снифферы могут с успехом использоваться не только для диагностики и локализации сетевых проблем, но и для аудита сетевой безопасности. В частности, применение пакетных анализаторов позволяет обнаружить несанкционированный трафик, обнаружить и идентифицировать несанкционированное программное обеспечение, идентифицировать неиспользуемые протоколы для удаления их из сети, осуществлять генерацию трафика для испытания на вторжение (penetration test) с целью проверки системы защиты, работать с системами обнаружения вторжений (Intrusion Detection System, IDS).

В начало В начало

Обзор программных пакетных снифферов

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

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

Практически все пакетные снифферы позволяют производить анализ декодированных пакетов (именно поэтому пакетные снифферы также называют пакетными анализаторами, или протокольными анализаторами). Сниффер распределяет перехваченные пакеты по уровням и протоколам. Некоторые анализаторы пакетов способны распознавать протокол и отображать перехваченную информацию. Этот тип информации обычно отображается во второй области окна сниффера. К примеру, любой сниффер способен распознавать протокол TCP, а продвинутые снифферы умеют определять, каким приложением порожден данный трафик. Большинство анализаторов протоколов распознают свыше 500 различных протоколов и умеют описывать и декодировать их по именам. Чем больше информации в состоянии декодировать и представить на экране сниффер, тем меньше придется декодировать вручную.

Одна из проблем, с которой могут сталкиваться анализаторы пакетов, — невозможность корректной идентификации протокола, использующего порт, отличный от порта по умолчанию. К примеру, с целью повышения безопасности некоторые известные приложения могут настраиваться на применение портов, отличных от портов по умолчанию. Так, вместо традиционного порта 80, зарезервированного для web-сервера, данный сервер можно принудительно перенастроить на порт 8088 или на любой другой. Некоторые анализаторы пакетов в подобной ситуации не способны корректно определить протокол и отображают лишь информацию о протоколе нижнего уровня (TCP или UDP).

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

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

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

Ethereal 0.10.14

Пакетный сниффер Ethereal 0.10.14 (www.ethereal.com) является, пожалуй, одним из лучших и поистине легендарных некоммерческих (а значит, бесплатных) пакетных анализаторов. Этот сниффер изначально был создан под Linux-платформы и основывался на базе утилиты Libpcap. Впоследствии появилась Windows-версия сниффера Ethereal, которая основывалась на базе утилиты WinPcap (Windows-версия Libpcap).

Утилита WinPcap (www.winpcap.org) представляет собой стандартный инструмент, посредством которого Windows-приложения могут непосредственно получать доступ к сетевому адаптеру (NIC-уровню) и перехватывать сетевые пакеты. Кроме того, драйвер WinPcap имеет дополнительные функциональные возможности, заключающиеся в фильтрации пакетов, сборе сетевой статистики и поддержке возможности удаленного перехвата пакетов.

В состав утилиты WinPcap входит драйвер, обеспечивающий взаимодействие с NIC-уровнем, и библиотека, отвечающая за взаимодействие с интерфейсом API.

Сниффер Ethereal 0.10.14 поставляется в комплекте с утилитой WinPcap 3.1, однако с сайта www.winpcap.org можно скачать версию WinPcap 3.2 alpha 1.

Несмотря на то что графический интерфейс утилиты Ethereal 0.10.14 достаточно понятен, к программе прилагается очень подробный учебник (более 200 страниц).

Ethereal 0.10.14 — один из немногих снифферов, который поддерживает как графический интерфейс, так и запуск из командной строки, что удобно при составлении сценариев или активизации функций перехвата пакетов в случае возникновения в сети определенных событий.

Функциональные возможности пакета Ethereal 0.10.14 очень обширны и выходят далеко за рамки обычных возможностей других пакетных снифферов.

В пакете Ethereal 0.10.14 встречаются практически все функции, которые только могут быть у анализатора пакетов. Программа может декодировать 752 протокола и поддерживает работу в Wi-Fi-сетях.

Графический интерфейс пакета Ethereal 0.10.14 вполне традиционен и содержит три области: отображения перехваченных пакетов, отображения статистической информации о конкретном выбранном пакете, содержимого конкретного пакета (рис. 4).

 

Рис. 4. Главное окно программы Ethereal 0.10.14

Рис. 4. Главное окно программы Ethereal 0.10.14

Графический интерфейс программы Ethereal облегчает создание пакетных фильтров как для файлов перехваченных пакетов (фильтры отображения), так и для «живого» перехвата (фильтры перехвата). После изучения синтаксиса фильтров программы Ethereal можно создавать фильтры самостоятельно, присваивать им имена и сохранять их для последующего использования (рис. 5). Программа Ethereal обладает довольно удобным интерфейсом для создания фильтров. Достаточно нажать на кнопку Add Expression, чтобы создать фильтры в диалоговом окне Filter Expression.

 

Рис. 5. Создание фильтра в программе

Рис. 5. Создание фильтра в программе Ethereal 0.10.14

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

Применение фильтров в анализаторе Ethereal позволяет легко выделить из общего потока перехваченной информации именно те или даже тот единственный кадр, который требуется. Рассмотрим, к примеру, как найти при помощи фильтра пакет с паролем при подключении пользователя к Интернету через dial-up-соединение.

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

Далее необходимо настроить фильтр, позволяющий найти нужный пакет. Поскольку процесс аутентификации пользователя проходит по протоколу PPP PAP, необходимо создать фильтр на выделение этого протокола. Для этого в строке выражения достаточно указать «pap» и присвоить имя новому фильтру (например, DialUp_Password) (рис. 6).

 

Рис. 6. Настройка фильтра для получения пакета с паролем

Рис. 6. Настройка фильтра для получения пакета с паролем

После применения фильтра из всей совокупности пакетов останутся только два: пакет-запрос на аутентификацию (Authenticate-Request) и пакет подтверждения аутентификации (Authenticate-ACK). Понятно, что пароль (как правило, он передается провайдеру в незашифрованном виде) содержится в первом пакете, в чем несложно убедиться, просмотрев содержимое самого пакета (рис. 7).

 

Рис. 7. Содержимое пакета

Рис. 7. Содержимое пакета

Еще один пример эффективного использования программы Ethereal 0.10.14 в мирных целях — это точная настройка размера TCP-окна. Чтобы оптимальным образом настроить размер TCP-окна, необходимо запустить сниффер в процессе скачивания файла по сети и затем, настроив соответствующим образом фильтр, просмотреть количество запросов на повторную передачу пакетов, количество пакетов-подтверждений и ошибочных пакетов. Манипулируя с размером TCP-окна, можно добиться максимально возможной скорости передачи, снизив количество подтверждений при хорошем качестве связи или уменьшив число запросов на повторную передачу, — при не очень хорошем качестве связи.

Помимо прекрасных возможностей по созданию разного рода фильтров, программа Ethereal позволяет выполнять всесторонний анализ трафика, представляя его в графической форме или в форме статистического отчета. К примеру, можно выполнить анализ TCP-трафика по пропускной способности, по времени передачи туда и обратно и по номерам пакетов. Результаты анализа представляются в виде графиков. Так, анализ, использующий порядковые номера пакетов и время, позволяет получить представление о том, какой объем данных был послан в различные моменты времени, поскольку порядковые номера пакетов увеличиваются на размер пакета данных.

В целом можно сказать, что пакетный анализатор Ethereal 0.10.14 является очень мощным инструментальным средством диагностики сетей. Конечно, для детального освоения пакета потребуется немало времени. Однако если все-таки удастся преодолеть этот барьер и освоить пакет Ethereal, то необходимость освоения других аналогичных продуктов попросту отпадет.

Analyzer v.2.2

Утилита Analyzer v.2.2 компании NetGroup — еще один небольшой по объему пакетный анализатор, распространяемый на бесплатной основе. К достоинствам данной утилиты можно отнести то, что она не требует инсталляции на компьютер. Единственное, что необходимо, — наличие установленной утилиты WinPcap, которая используется сниффером Analyzer v.2.2. Кроме того, пакетный анализатор Analyzer v.2.2. очень прост в обращении и может быть рекомендован для начинающих пользователей. Недостатки этого анализатора вытекают из его достоинств — простота в обращении не позволяет производить глубокий анализ пакетов и создавать фильтры по любой характеристике пакета.

Утилита Analyzer v.2.2 поддерживает выбор интерфейса: сетевой адаптер или аналоговый модем. Работа в беспроводных сетях не предусмотрена.

Графический интерфейс пакетного анализатора Analyzer v.2.2 содержит три традиционных окна (рис. 8). В первом окне отображаются перехваченные пакеты с информацией о времени получения пакета, MAC-адресах отправителя и получателя, IP-адресах отправителя и получателя, протоколе передачи, портах источника и получателя пакетов, размер TCP-окна, номер последовательности пакета и номер подтверждения этого пакета. Во втором окне выводится декодированная информация об отдельных полях пакета, а третье окно отображает содержимое самого пакета.

 

Рис. 8. Главное окно пакетного анализатора Analyzer v.2.2

Рис. 8. Главное окно пакетного анализатора Analyzer v.2.2

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

Для сравнения возможностей пакетов Analyzer v.2.2 и Ethereal 0.10.14 мы провели захват одного и того же трафика и проанализировали его сначала с помощью программы Ethereal 0.10.14, а затем — Analyzer v.2.2. Как и ожидалось, информация, выдаваемая об отдельном пакете анализатором Ethereal 0.10.14, более подробная, чем та, что выдает анализатор Analyzer v.2.2.

Поэтому еще раз подчеркнем, что программа Analyzer v.2.2 представляет интерес только для начинающих пользователей и в качестве средства ознакомления с принципами функционирования сетей и структурами пакетов различных протоколов.

CommView 5.0

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

Данный пакетный анализатор предназначен для мониторинга локальной сети и соединения с Интернетом. Он способен захватывать пакеты, проходящие через сетевой адаптер или модем, декодировать их и представлять достаточно подробную информацию в удобном для восприятия виде. В отличие от большинства снифферов, программа CommView 5.0 не требует предварительной установки на ПК WinPcap.

Сниффер CommView 5.0 поддерживает операционные системы Windows 98/Me/NT/2000/XP/2003 и Windows XP 64-bit Edition. Перечень поддерживаемых протоколов довольно обширен, и в этом плане можно рассчитывать на предоставление достаточно подробной информации о перехваченных пакетах.

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

Графический интерфейс программы CommView 5.0 традиционен — три окна, в первом из которых отображаются захваченные пакеты, во втором — декодированная информация об отдельном пакете, а в третьем — содержимое самого пакета (рис. 9).

 

Рис. 9. Главное окно пакетного анализатора CommView 5.0

Рис. 9. Главное окно пакетного анализатора CommView 5.0

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

Окно с декодированной информацией об отдельном пакете значительно более информативно и по детализации предоставляемой информации не уступает анализатору Ethereal (во всяком случае это касается протокола TCP).

К достоинствам анализатора CommView 5.0 можно отнести возможность просмотра подробной статистической информации о сеансе перехвата, которая представляется в отдельном окне в удобном графическом виде (рис. 10), а также составление отчета в отдельном файле.

Еще одним отличием анализатора CommView 5.0 является возможность настройки сигнала тревоги по предопределенным событиям. В частности, можно задать правила, при выполнении которых будет послано оповещение по электронной почте.

 

Рис. 10. Статистическая информация о сеансе перехвата в программе CommView 5.0

Рис. 10. Статистическая информация о сеансе перехвата в программе CommView 5.0

Кроме того, сниффер CommView 5.0 позволяет заменять IP- и MAC-адреса сетевого адаптера на имена пользователей, что упрощает мониторинг сети. С целью диагностики сети данный сниффер имеет встроенный генератор трафика с возможностью настройки размера передаваемого пакета и скорости генерации пакетов.

И наконец, последняя особенность сниффера CommView 5.0 — возможность создания удаленного агента, что позволяет производить удаленный мониторинг сети. Для реализации данной функции на удаленном ПК необходимо инсталлировать программу Remote Agent, а используя консоль CommView 5.0, можно устанавливать соединение с компьютером, на котором инсталлирована утилита Remote Agent.

Iris Network Traffic Analyzer4.07

Пакетный анализатор Iris 4.07 (www.eeye.com) от компании eEye digital Security представляет собой мощное инструментальное средство для диагностики локальных сетей и каналов связи с Интернетом. Программа Iris 4.07 распространяется на коммерческой основе, однако на сайте производителя доступна ее ознакомительная версия.

Несмотря на заявленную в документации поддержку только операционных систем Windows 95/98/NT/2000, реально этот список можно расширить, и, скорее всего, данная программа способна работать с любой операционной системой семейства Windows.

Графический интерфейс программы (рис. 11) интуитивно понятен, прост и традиционен для пакетных снифферов. Имеется три окна, в первом из которых отображаются перехваченные пакеты с достаточно подробной информацией о каждом пакете, включающей MAC- и IP-адреса источника и отправителя пакетов, тип пакета, протокол, порт отправления и назначения, размер пакета, а также порядковые номера SEQ и ACK. Подробная декодированная информация о каждом отдельном пакете доступна во втором окне, а содержимое каждого пакета — в третьем окне. Нужно отметить, что по степени детализации предоставляемой информации данный пакет не уступает анализатору Ethereal.

 

Рис. 11. Главное окно пакетного анализатора Iris 4.07

Рис. 11. Главное окно пакетного анализатора Iris 4.07

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

Пакетный анализатор Iris 4.07 позволяет очень гибко и в то же время просто настраивать фильтры для захвата пакетов. Так, используя диалоговое окно (рис. 12) Edit filter settings, можно создавать фильтры по MAC-адресам источника и получателя, по IP-адресам источника и получателя, по портам, протоколам, а также по вхождению в содержимое пакета определенного слова. Кроме того, можно настраивать фильтры на размер пакета и на фрагмент пакета в HEX-формате.

 

Рис. 12. Настройка пакетного фильтра

Рис. 12. Настройка пакетного фильтра в анализаторе Iris 4.07

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

Другим отличием программы Iris 4.07 является возможность отображения в графической форме статистической информации во время запуска режима захвата пакетов. Так, имеется возможность отображать график скорости передачи пакетов (рис. 13), диаграмму распределения размеров пакетов (рис. 14) и многое другое.

 

Рис. 13. График скорости передачи пакетов

Рис. 13. График скорости передачи пакетов
в анализаторе Iris 4.07

Рис. 14. Диаграмма распределения размеров пакетов в анализаторе Iris 4.07

Рис. 14. Диаграмма распределения размеров пакетов в анализаторе Iris 4.07

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

Еще одной особенностью программы Iris 4.07 является наличие встроенного модуля, позволяющего фиксировать все попытки соединения с компьютером, что обеспечивает отслеживание попыток несанкционированного проникновения в сеть.

КомпьютерПресс 4'2006


Метки:  

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

Дневник

Среда, 26 Октября 2016 г. 14:02 + в цитатник

Принцип работы сниффера. Перехват трафика и пакетов в сети. Часть 3.






 

 

 


 

 

 

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

 

теория

Для начала немного разберемся с терминологией.

Слово sniffer (дословно с английского это можно перевести как "нюхач" или "вынюхиватель") в самом общем смысле суть некое прослушивающее устройство, внедренное в сеть для перехвата передаваемых по ней данных. В более узком смысле сниффер - это ПО, взаимодействующее с (часто говорят "садящееся" пошел от является зарегистрированной торговой марки компании Network Associates, ссылающейся на продукт "Sniffer(r) Network Analyzer", однако впоследствии слово постигла та же участь, что и PC, xerox, kleenex - сниффер становится понятием нарицательным, обозначающим весь класс подобных продуктов.

В некоторой литературе и документации, а также в электронных словарях типа Lingvo, термин sniffer (network sniffer) отождествляется с такими понятиями, как "анализатор сетевого трафика", "анализатор пакетов", "анализатор протоколов", "сетевой анализатор". Однако позволю себе немного не согласиться с таким подходом.

СнифферыВсе-таки логичней было бы утверждать, что сниффинг - это совокупность мер по перехвату траффика. В рамках же конкретного продукта могут быть реализованы следующие вещи: захват пакетов (packet capturing). На этом этапе мы получаем некий сырой (mashine readable) дамп данных, обычно разделенный на куски по границам кадров (пакетов). И уж что мы с ним собираемся делать - наши проблемы. Но обычно, раз уж мы зачем-то запустили работать сниффер - нам интересно получить некий результат в human readable формате, для чего используется декодирование пакетов (decoding) или анализ протоколов;

Собственно, это процесс "разгребания" нашего дампа. Вот, к примеру, был у нас такой сырой материал.

Как вы могли заметить, состоит это дело из трех колонок: смещение каждой линии, данные в шестнадцатеричном формате и их ASCII-эквивалент. Этот пакет содержит 14-байтовый заголовок Ethernet, 20-байтовый IP-заголовок, 20-байтовый TCP-заголовок, заголовок HTTP, оканчивающийся двумя подряд CRLF (0D 0A 0D 0A), а дальше собственно данные прикладного уровня, в нашем случае - веб-трафик.

Иногда для получения нужных сведений достаточно и такого представления, но все-таки удобнее, чтобы пакет был декодирован и проанализирован на всех уровнях стека протоколов. Ведь правда, приятнее получить такую картинку?

ETHER: Destination address: 0000BA5EBA11
ETHER: Source address: 00A0C9B05EBD
ETHER: Frame Length: 1514 (0x05EA)
ETHER: Ethernet Type: 0x0800 (IP)
IP: Version = 4 (0x4)
IP: Header Length = 20 (0x14)
IP: Service Type = 0 (0x0)
IP: Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = Normal Throughput
IP:.....0.. = Normal Reliability
IP: Total Length = 1500 (0x5DC)
IP: Identification = 7652 (0x1DE4)
IP: Flags Summary = 2 (0x2)
IP:.......0 = Last fragment in datagram
IP:......1. = Cannot fragment datagram
IP: Fragment Offset = 0 (0x0) bytes
IP: Time to Live = 127 (0x7F)
IP: Protocol = TCP — Transmission Control
IP: Checksum = 0xC26D
IP: Source Address = 10.0.0.2
IP: Destination Address = 10.0.1.201
TCP: Source Port = Hypertext Transfer Protocol
TCP: Destination Port = 0x0775
TCP: Sequence Number = 97517760 (0x5D000C0)
TCP: Acknowledgement Number = 78544373 (0x4AE7DF5)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x10:.A....
TCP:..0..... = No urgent data
TCP:...1.... = Acknowledgement field significant
TCP:....0... = No Push function
TCP:.....0.. = No Reset
TCP:......0. = No Synchronize
TCP:.......0 = No Fin
TCP: Window = 28793 (0x7079)
TCP: Checksum = 0x8F27
TCP: Urgent Pointer = 0 (0x0)
HTTP: Response (to client using port 1909)
HTTP: Protocol Version = HTTP/1.1
HTTP: Status Code = OK
HTTP: Reason = OK
....

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

виды снифферов и сниффинга

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

Итак, по "месторасположению" (если тут применим этот термин) сниффер может работать:

• на маршрутизаторе (шлюзе)

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

• на оконечном узле сети

Применительно к Ethernet мы будем иметь два основных возможных варианта прослушки. Классический, некоммутируемый Ethernet предполагает, что каждый сетевой интерфейс в принципе "слышит" весть траффик своего сегмента. Однако в нормальном режиме работы сетевой карты, прочитав первые 48 бит заголовка фрейма, станция сравнивает свой МАС-адрес с адресом получателя, указанном в фрейме. Если адрес чужой, станция "стыдливо закрывает уши", то бишь перестает читать чужой фрейм. Таким образом в нормальном режиме вы можете перехватывать и анализировать только свой траффик. Для перехвата пакетов всех станций сегмента требуется перевести вашу сетевую карту в режим под названием promiscuous mode, чтобы она "бесстыдно" продолжала читать не предназначенные ей пакеты. Практически все реализации снифферов позволяют переход карты в promiscuous mode.

Примечание: использование коммутируемого Ethernet создает ситуацию, когда даже переход карты в promiscuous mode делает прослушивание не предназначенного вашей станции трафика практически невозможным. Однако существует технология организации такого прослушивания путем так называемого ARP-спуфинга. Суть в следующем: коммутатор создает так называемый "broadcast domain", и хост с установленным сниффером с помощью подделки ARP-сообщений может притвориться, например, пограничным маршрутизатором (рассылая постоянно АRP-сообщения, где сетевому адресу маршрутизатора соответствует MAC-адрес прослушивающей станции). Таким образом трафик соседей насильственно завернется в сторону "шпиена".

В остальном же снифферы могут отличаются друг от друга главным образом функциональными возможностями, как то:

• поддерживаемые физические интерфейсы и протоколы канального уровня;

• качество декодирования и количество "узнаваемых" протоколов;

• пользовательский интерфейс и удобство отображения;

• дополнительные фичи: статистика, просмотр в реальном времени, генерирование или модификация пакетов и другое...

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

зачем нам нужен сниффер?

Традиционно идея сниффинга жила как бы в двух ипостасях: легальное и нелегальное применение. Что характерно, слово "сниффер" чаще применяется в нелегальной сфере, а "сетевой анализатор" - в легальной. Начнем, пожалуй, с легального применения;)

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

Например: ICQ, Europe Online. Под подозрительными технологиями/ПО следует понимать ситуации, когда вы предполагаете наличие в программе закладки или иной недокументированной функциональности. Например, ходили слухи, что клиентская часть знаменитого cDc Back Orifice также является троянской лошадкой и посылает некие сведения хозяевам - авторам ПО. Установка BO Client "на прослушивание" показала, что слухи не соответствуют действительности.

Не менее полезен сниффер для отладки вашего собственного ПО. Никогда не забуду момент, когда прокси-сервер не желал устанавливать соединение, если GET-запрос оканчивался на \n\n вместо требуемого \r\n\r\n. Только исследование пакетов, отправляемых "законопослушным" браузером и сравнение их с пакетами, отправляемыми моим "выскочкой"-скриптом, указало мне на досадную ошибку. Очень и очень часто в повседневной админской практике мне приходится сталкиваться и с анализом на уровне TCP/UDP.

- обучение. Можно довестись до полуобморочного состояния, зазубривая форматы заголовков пакетов различных протоколов и методы взаимодействия (скажем, 3-way TCP handshake, DNS, прикладные методы плана traceroute), но эти знания будут мертвыми, пока вы не попытаетесь "потрогать это руками" - написав однажды программу либо... заглянув в сниффер! Попробуйте после прочтения документации на неизвестный или плохо понятный вам протокол, смоделировать взаимодействие, перехватить пакеты и проанализировать их - уверяю вас, все станет чрезвычайно понятно и более того, это знание более реально и надолго отложится в голове. В случае же с закрытыми технологиями, сниффер может оказаться чуть ли не единственным средством для их изучения.

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

Теперь поговорим о нелегальной стороне сниффинга. Ну, во-первых, это банальное

- подслушивание. Грамотно установив сниффер вы можете шпионить за ближними своими и удаленными - врагами, приятелями, супругами;) Вас могут заинтересовать такие вопросы: для чего человек использует сеть, какие веб-ресурсы он посещает, какие данные передает, с кем и о чем общается? Да простят меня органы государственной безопасности, но пресловутый СОРМ, правомерность которого в виде тотального протоколирования трафика суть баааальшой вопрос, я отношу пока именно в этот раздел, хотя он мог бы оказаться и в последнем абзаце "легального сниффинга";)

- более меркантильное подслушивание. Однако значительная часть "хакерского" сообщества не разменивает свои таланты на слежку за неверными супругами и прочую бытовуху. Чаще всего злоумышленника интересует некий материал, с помощью которого можно продвинуться в нелегком деле вламывания в чужие системы и сети. Как вы могли догадаться, речь идет, главным образом, о перехвате имен пользователей и паролей, проходящих по сети в незашифрованном (plain text) виде. В частности, это касается паролей к telnet, POP, IMAP, NNTP, IRC, к веб-приложениям, не использующим шифрование, SNMP v1 community-strings и т.п.

реализации

Теперь, более-менее разобравшись с теоретической частью, вернемся на грешную землю - поговорим о конкретных реализациях снифферов под различные платформы. На самом деле такого софта очень много, разбежка в функциональных возможностях и ценнике (особенно в последнем) - колоссальная. Составитель "Sniffing (network wiretap, sniffer) FAQ" Robert Graham рекомендует попробовать следующие продукты:

Windows

Network Associates Sniffer (for Windows)
http://www.nai.com/mktg/survey.asp?type=d&code=2483 

WinNT Server
Microsoft'овский WinNT Server поставляется со встроенной программой под названием "Network Monitor". Зайдите в панель управления сетью, выберите "Services", нажмите "Add..." и выберите "Network Monitor Tools and Agent". После установки программа будет доступна в старт-меню в разделе "Administrative Tools".

BlackICE Pro
http://www.networkice.com/ 

На самом деле BlackICE является системой обнаружения вторжений (IDS, Intrusion Detection System), но одна из функций ее - писать сырые дампы пакетов в форме, приемлемой для расшифровки анализаторами протоколов. Одно но: программа просматривает только трафик, проходящий через локальные интерфейсы хоста, на котором работает, то бишь является non-promiscuous. Скачать прогу можно на сайте

CiAll
http://members.tripod.com/~radhikau/ciall/ciall.htm 

Эта программа, наоборот, может только анализировать пакеты, записанные сниффером вроде BlackICE Pro.

EtherPeek
http://www.aggroup.com/ 

Intellimax LanExplorer
http://www.intellimax.com/ 

Triticom LANdecoder32
http://www.triticom.com/TRITICOM/LANdecoder32 

SpyNet/PeepNet
http://members.xoom.com/Laurentiu2 

Analyzer
http://netgroup-serv.polito.it/analyzer/ 

Бесплатный анализатор протоколов.

Естественно, этот список далеко не полный, вы можете залезть на любую поисковую систему или в коллекцию софта для даунлоада и найти что-нибудь подходящее слева на боковом меню. Более того, в обзоре не упомянут самый, на мой взгляд, выдающийся продукт такого рода для Win32 - NetXRay, нынче переименованный в Sniffer Basic. О нем мы поговорим чуть попозже.

Macintosh

EtherPeek
http://www.aggroup.com/ 
Изначально этот сниффер существовал только в Мас-варианте, и только недавно он был портирован под Окошки.

UNIX
Решения для UNIX в основном базируются на использовании libpcap и/или BPF (Berkeley Packet Filters).

tcpdump
ftp://ftp.ee.lbl.gov/ 
Старейшая и популярнейшая программа. Ее описание мы сочли целесообразным привести в газете в расширенном объеме (см. ниже).

sniffit
http://reptile.rug.ac.be/~coder/sniffit/sniffit.html 

snort
Базирующийся на libpcap сниффер с расширенными возможностями фильтрации.

http://www.clark.net/~roesch/security.html 

trinux
http://www.trinux.org/ 
Маленький дистрибутив Linux, содержащий tcpdump и sniffit, а также кучу других полезных утилит, связанных с сетевой безопасностью. Все хозяйство умещается на одной загружаемой дискетке.

karpski
http://niteowl.userfriendly.net/linux/RPM/karpski.html 
GUI'шный снифер для Linux.

SuperSniffer v1.3
http://www.mobis.com/~ajax/projects/ 
Навороченный сниффер, компилирующийся под большинством ОС (используется GNU autoconf).

esniff
http://www.phrack.com/search.phtml?view&article=p45-5 
Маленький сниффер под старые версии SunOS, оптимизированный под воровство логинов и паролей пользователей. И зачем он такой нужен...

exdump
http://exscan.netpedia.net/exdump.html 

Опять же, список далек от совершенства, можете поискать что-нибудь еще. Друго дело, что в *NIX-сообществе особо не принято "распыляться" - есть проверенные временем, постоянно совершенствующиеся продукты-лидеры, и большинство предпочитает именно их, даже не пытаясь искать альтернативу. Абсолютные лидеры тут - tcpdump и sniffit.

Tcpdump & WinDump

(by Ghost//Necrosoft)

Как было сказано выше, TcpDump - наиболее часто используемый сниффер под *nix системы. Вы можете найти его в любом из последних дистрибутивов той операционки, которую вы используете. Описывать tcpdump лучше всего, просто перечислив все его опции командной строки - таким образом вы получаете перечисление его возможностей и прямое руководство к действию - "в одном флаконе".

WinDump - порт TcpDump с *nix систем, выполняет те же самые функции и имеет такой же синтаксис, что и TcpDump, но имеет пару дополнительных опций командной строки, о которых будет рассказано ниже.

Небольшая аннотация к использованию TcpDump под различными системами. Под SunOS с использованием устройств nit или bpf: для запуска tcpdump вы должны иметь доступ на чтение к /dev/nit или /dev/bpf*. Под Solaris с dlpi вы должны иметь доступ к псевдосетевым адаптерам, таким как /dev/le. Под HP-UX с dlpi: вы должны быть root'ом или на tcpdump должен быть установлен uid на root. Под IRIX с snoop и Linux: требования, аналогичные HP-UX. Под Ultrix и Digital UNIX: только суперюзеру доступны promiscuous-mode операции, используя pfconfig(8) можно получить право на запуск tcpdump. Под BSD: вы должны иметь доступ к /dev/bpf*. Под Win32: вы должны установить NDIS packet capture driver.

 

скачать снифферыА теперь подробно разберем опции командной строки.

TcpDump [ -adeflnNOpqStvx ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ expression ]. Специфические опции Windump [-D] [ -B size ].

-a разрешает конвертировать сетевые и широковещательные адреса в имена.

-c выход после обработки count пакетов.

-d выводит содержимое пакета в удобочитаемом виде.

-dd выводит содержимое пакета как фрагмент Си-программы.

-ddd выводит содержимое пакета в десятичном виде.

-e выводит заголовки канального уровня в каждой новой строке.

-f выводит адреса удаленных и локального хостов без преобразования в имена.

-F использовать file с описанием параметров фильтрации (дополнительные выражения в командной строке игнорируются).

-i использовать интерфейс interface для трассировки. Если не определен, tcpdump находит активный сетевой интерфейс с наименьшим номером (исключая loopback). В Windows interface — имя сетевого адаптера или его номер (можно узнать, запустив WinDump —D).

-l использует буферизированный вывод на stdout. Полезным может оказаться конструкция вида "tcpdump -l | tee dat'' or "tcpdump -l > dat & tail -f dat''.

-n не преобразовывать адреса (т.e. адрес хоста, номер порта и т.д.) в имена.

-N не печатать доменное имя в имени хоста. Т.е. если использован данный флаг, tcpdump напечатает "nic'' вместо "nic.ddn.mil''.

-O не запускать оптимизатор пакетов. Эта опция полезна, если вы сами разгребаете пакеты.

-p не переводить сетевой интерфейс в "promiscuous mode".

-q сокращенный вывод. Выводит информацию в сокращенном виде.

-r читает пакеты из файла file (которые созданы при помощи опции -w). Если вы хотите использовать в качестве ввода консоль, то file это "-''.

-s выдает snaplen байт каждого пакета (в SunOS'овсоком NIT минимальное количество 96). 68 байт достаточно для протоколов IP, ICMP, TCP и UDP, однако обрезает информацию с более высоких уровней, скажем, DNS и NFS пакетов.

-T принудительная интерпретация пакетов по типу type соответствующих маске "expression". На данный момент известны следующие типы: rpc (Remote Procedure Call), rtp(Real-Time Applications protocol), rtcp (Real-Time Applications control protocol), vat (Visual Audio Tool), и wb (distributed White Board).

-S выводит абсолютный номер TCP-пакета.

-t не выводит время в каждой строке.

-tt выводит неформатированное время в каждой строке.

-v детальный вывод. К примеру, время жизни пакетов и тип сервиса.

-vv более детальный вывод. К примеру, вывод дополнительных полей NFS reply packets.

-w записывает raw-пакеты в file, которые вы сможете в дальнейшем расшифровать с использованием опции —r. Если вы хотите использовать в качестве вывода консоль, то fileэто "-''.

-x выводит каждый пакет в шестнадцатеричном виде (без заголовка). На вывод будет отправлено snaplen байт.

Дополнительные опции WinDump:

-B устанавливает размер буфера драйвера size в килобайтах. По умолчанию размер буфера 1 мегабайт. Если в процессе работы некоторые пакеты не отображаются, попробуйте увеличить размер буфера. Если у вас РРР-соединение или 10 Мбит Ethernet, то размер буфера можно уменьшить вдвое или втрое.

-D выводит список сетевых устройств, которые присутствуют в вашей системе. Список имеет вид: number — номер сетевого устройства в системе, name — его имя, а за ними следует описание устройства. В последствии вы сможете использовать эти данные для того, чтобы работать со всеми имеющимися сетевыми интерфейсами вашей системы, которые доступны в данный момент. А выбрать устройство можно будет при помощи опции —I — "WinDump —i name" или "WinDump —i number".

expression — собственно, выражение, которое задает критерий фильтрации пакетов. Если поле expression отсутствует, то выводятся все пакеты. В противном случае выводятся только те пакеты, которые соответствуют маске expression.

expression может состоять из одного или более примитивов. Примитивы часто состоят из id (имя или номер) определителя. Существует три ключевых типа определителей:

type — определитель, задающий общую политику. Возможные типы — host, net и port. Т.е. "host foo", "net 128.3", "port 20". Если type не указан, то по умолчанию используетсяhost.

dir — определитель, указывающий направление передачи пакетов. Возможные варианты src, dst, src or dst и src and dst. Т.е "src foo", "dst net 128.3", "src or dst port ftp-data". Если dir не указан, то по умолчанию используется src or dst. Для "null" соединений (это ppp или slip) используется inbound и outbound определитель для указания желаемого направления.

proto — определитель позволяет фильтровать пакеты по конкретному протоколу. Возможные протоколы: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp и udp. Т.е. "ether src foo", "arp net 128.3", "tcp port 21". Если определитель отсутствует, то никакие пакеты не фильтруются. ("fddi" фактически является алиасом для "ether", т.к. в большинстве случаев FDDI-пакеты содержат Ethernet-адрес отправителя и получателя и часто содержат Ethernet-типы пакетов. FDDI-заголовки также содержат другие поля, которых нет в списке фильтров.)

В дополнение к вышесказанному, некоторые специальные примитивы не имеют шаблонов, это: gateway, broadcast, less, greater и арифметические выражения. Об этом чуть далее.

Множество составных выражений фильтров используют слова and, or и not для объединения примитивов. К примеру "host foo and not port ftp and not port ftp-data". Для упрощения ввода некоторые определители могут быть опущены. К примеру, "tcp dst port ftp or ftp-data or domain" — то же самое, что и "tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain".

Допускаются следующие выражения:

dst host host верно, если поле IP destination пакета — host, может быть адрес или имя хоста.

src host host верно, если поле IP source пакета — host.

host host верно, если source или destination пакета — host. Также могут употребляться префиксы: ip, arp, или rarp как: ip host host что эквивалентно ether proto \ip and hosthost. Если host — имя с несколькими IP-адресами, каждый адрес проверяется на соответствие.

ether dst ehost Верно, если Ethernet-адрес получателя — ehost. Ehost — любое из имен /etc/ethers или номер (см. ethers(3N).

ether src ehost верно, если Ethernet-адрес отправителя — ehost.

ether host ehost верно, если Ethernet-адреса получателя или отправителя — ehost.

gateway host верно, если host — gateway. Т.е. Ethernet-адрес отправителя или получателя — host, но ни IP отправителя, ни IP получателя не являются host. Host может быть именем, а также может находиться в /etc/hosts и /etc/ethers. (Что равносильно ether host ehost and not host host, который может использоваться с любым именем или номером для host / ehost.)

dst net net верно, если IP получателя имеет адрес — net. Net — любая запись из /etc/networks или адрес сети.

src net net верно, если IP отправителя имеет адрес — net.

net net Верно, если IP получателя или отправителя имеют адрес сети — net.

net net mask mask Верно, если IP-адрес совпадает с net c соответствующей netmask. Может быть определен совместно с src или dst.

net net/len верно, если IP равно net, a маска подсети — len в битовом виде (CIDR-формат). Может быть определен совместно с src или dst.

dst port port верно, если пакет ip/tcp или ip/udp и имеет порт получателя — port. port может быть числом или присутствовать в /etc/services (см tcp(4P) и udp(4P)). Если имя используется для двух или более портов, то проверяются оба номера порта и протоколы. Если используются недопустимые номер порта или имя, то проверяются только номера портов (т.е. dst port 513 выводит трафик tcp/login и udp/who, и port domain выводит tcp/domain и udp/domain).

src port port верно, если порт отправителя — port.

port port верно, если порт отправителя или получателя — port. Некоторые выражения можно комбинировать, к примеру: tcp src port port — только tcp-пакеты у которых порт —port.

less length верно, если длина пакета меньше или равна length, что равносильно len <= length.

greater length верно, если длина пакета больше или равна length, что равносильно len >= length.

ip proto protocol верно, если пакет является IP пакетом с протоколом protocol. Protocol может иметь номер или одно из имен icmp, igrp, udp, nd, или tcp.

ether broadcast верно, если пакет — широковещательный Ethernet-пакет. Выражение ether является необязательным.

ip broadcast верно, если пакет — широковещательный IP-пакет.

ether multicast верно, если пакет — Еthernet multicast-пакет. Выражение ether является необязательным. Это сокращенная запись для "ether[0] & 1!= 0".

ip multicast верно, если пакет — IP-multicast пакет.

ether proto protocol верно, если пакет типа Ethernet. Protocol может быть число или имя: ip, arp, или rarp.

decnet src host верно, если DECNET-адрес получателя — host, который может быть адресом типа "10.123'', или DECNET-имя хоста. (DECNET имя хоста поддерживается только в Ultrix системах).

decnet dst host Верно, если DECNET-адрес получателя — host.

decnet host host Верно, если DECNET-адрес получателя или отправителя — host.

proto [ expr: size ]

Proto один из следующих протоколов ether, fddi, ip, arp, rarp, tcp, udp, или icmp, и показывает уровень протокола для данной операции. Смещение в байтах для данного уровня протокола берется из expr. Size — необязательное, показывает интерeсующее количество байт по данному смещению, может быть 1,2 или 4, по умолчанию 1.

Примеры использования tcpdump

Выдача всех вохдящих и исходящих пакетов от sundown: tcpdump host sundown

Выдача трафика между helios и одним из двух hot или ace: tcpdump host helios and \(hot or ace \)

Выдача всех пракетов между ace и другими хостами, исключая helios: tcpdump ip host ace and not helios

Выдача трафика между локальной машиной и машиной, находящейся в Berkeley: tcpdump net ucb-ether

Выдача ftp трафика через шлюз snup: tcpdump 'gateway snup and (port ftp or ftp-data)'

Выдача трафика не принадлежащего машинам в локальной сети (если ваша машина — шлюз в другую сеть, tcpdump не сможет выдать трафик вашей локальной сети). tcpdump ip and not net localnet

Выдача старовых и стоп пакетов (SYN и FIN пакеты), которые не принадлежат локальной сети. tcpdump 'tcp[13] & 3!= 0 and not src and dst net localnet'

Выдача IP пакетов длиной более 576 байт, переданных через шлюз snup: tcpdump 'gateway snup and ip[2:2] > 576'

Выдача IP broadcast или multicast пакетов, которые не посылаются через Ethernet broadcast или multicast: tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

Выдача всех ICMP пакетов, которые не являются эхо запросами/ответами (т.е, не ping пакеты): tcpdump 'icmp[0]!= 8 and icmp[0]!= 0"

NetXRay

by Alice D. Saemon

Та, которую люблю...

Long long time ago... NetXRay был первым сниффером, попавшим в поле моего зрения. Тогда, в 1997 году эта английская программа произвела фурор в кругах windows-ориентированных сетевиков. Прошли годы, но старенькая версия NetXRay (3.0.1) все еще в строю, в ежедневной работе на моей рабочей станции. На сегодняшний день продукт переименован в Sniffer Basic, добавлены некоторые новые возможности, но, с большего, основная функциональность осталась неизменной со времен 3.0.1. Это первая причина, почему в газете будет описан именно NetXRay 3.0.1. Вторая причина... (озираясь на анти-пиратскую полицию) - продукт очень дорогой (1643 фунтов, которые стерлингов), и trial'ные ограничения очень серьезные. Итак, приступим.

Пакет состоит из набора разных функций и действительно может называться скорее сетевым анализатором, нежели сниффером. Все возможности (модули) сгруппированы в меню "Tools", там же находятся и различные установки. С них и начнем. Вы можете выбрать адаптер, для которого проводится текущее тестирование (probe). Адаптер должен поддерживать стандарт NDIS 3.0/3.1.

Внимание, баг! Если вы "натравливаете" NetXRay на "неправильный" по его мнению адаптер или захватываете пакеты, которые он не может декодировать на канальном-сетевом уровне (например, трафик эксплойтов, посылающих криво фрагментированные пакеты) - на стадии декодирования (анализа протоколов) программа зависает намертво.

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

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

Ну вот, теперь приступаем к функциональным модулям пакета.

вычислить IPcapture (захват пакетов)

Сердце NetXRay, собственно то, что в народном понимании есть сниффер. Поэтому позволю себе описать его наиболее подробно.

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

• по адресам отправителя и получателя. Для облегчения сей задачи существует адресная книга и некоторый набор предустановленных адресов, например "Any".

• по шаблонам. Если нужно изловить пакеты, содержащие некие определенные данные в любом месте пакета, вы можете написать хитронавороченный шаблон. Причем, что особенно приятно, конструировать шаблоны можно в любом удобном для вас представлении: бинарном, шестнадцатеричном, ASCII и EBCDIC.

• по известным программе протоколам. Это:

сетевые: AppleTalk, AppleTalk ARP, APOLLO, DECNET, IP, IP ARP, IPX, LAT, NetBEUI, OSI, SNA, VINES, VINES Loopback, VINES Echo, XNS

выше в стеке IP: транспортные, служебные и маршрутизации - ICMP, IGMP, GGP, EGP, IGP, ISO-TP4, HELLO, IP-VINES, IGRP, OSPF, TCP, UDP; прикладного уровня - FTP, REXEC, RLOGIN, RSH, PRINTER, SMTP, TELNET, DNS(TCP), GOPHER, HTTP, POP, SUNRPC(TCP), NNTP, NETBIOS, X-WINDOW, DNS(UDP), BOOTP, TFTP, SUNRPC(UDP), SNMP, SNMPTRAP, BIFF, WHO, SYSLOG, RIP, GDP, NFS.

выше в стеке IPX: NCP, SAP, NRIP, NBIOS, DIAGNOSTIC, SERIALIZATION, NMPI, NLSP, NSNMP, NSNMPTRAP, SPX.

Как видите, не так уж мало, я бы сказала - для реальной жизни даже избыточно.

Внимание! Протокольный фильтр имеет немного странный интерфейс: предполагается, что если все чекбоксы в границах одного уровня не помечены, захватываются все пакеты протоколов данного уровня и все что выше (ниже, если смотреть на пользовательский интерфейс;). Таким образом, если вы не поставили ни одной "птички" - ловится абсолютно все. Естественно, неизвестные протоколы прикладных уровней в таком случае ловятся тоже, но не декодируются в удобочитабельный вид, что естественно, раз уж они неизвестные:))

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

Настройки фильтра можно записать в так называемый профайл, присвоить ему название и впоследствии выбирать его из списка.

После отработки захвата нужного числа пакетов, при активизации просмотра мы вываливаемся в так называемое "окно результатов", имеющее по умолчанию имена XRay1, XRay2 ну и так далее по количеству текущих буферов. Такое окно вы можете лицезреть на скриншоте: сверху - список пакетов с краткой "аннотацией", посередине - декодированные данные (ну что смог декодировать;) и снизу - сырой пакет. Любопытно, что при нажатии на интересующее поле в декодированной секции подсвечивается соответствующее место в сыром пакете - можно проверить качество работы анализатора протоколов;)

Пользовательский интерфейс "окна результатов" имеет наряду с преимуществами (способность наложить любой из обсуждавшихся выше фильтров на отображаемый буфер, возможность одним мышьим щелчком послать любой пакет или буфер в сеть либо скопировать некоторое количество пакетов в отдельный буфер, очень красивое отображение декодированных данных, даже с некоторой вложенностью для малоинтересных рядовому пользователю полей) также и очевидные недостатки (нельзя удалить пару пакетов из буфера, нет никакой clipboard-операбельности, то бишь результаты нельзя, например, скопировать и сохранить в текстовом формате).

Кроме накапливания пакетов в буфере или файле для последующего декодирования существует также возможность просмотра трафика в режиме реального времени. 

Правда а) визуально это выглядит ужасно б) включается эта опция в таком нелогичном месте, что даже такой старый NetXRay-юзер как я забывает где же эта "птичка". Птичка устанавливается в меню Tools | Options... закладка General, чекбокс Realtime Display, а не в настройках Capture, где ее логично было бы искать;-/

Кроме этого "окно результатов" содержит закладки на статистические данные по проведенной сессии захвата, но мы на них останавливаться не будем.

IP адресpacket generator

Вот уж поистине замечательная штука: можно с нуля "набросать" и отправить в сеть абсолютно любой пакет. Интерфейс состоит из главного окна и так называемого конструктора пакетов, разделенного на две секции - Configure и Decode. 

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

Но в данном случае мы можем не только смотреть на декодированный пакет, но и вносить изменения, щелкая мышью по нужному полю. Правда, изменение значений в любом случае осуществляется только в шестнадцатеричном виде, и поля ввода поражают своим неудобством:(Есть несколько вариантов генерации и отсылки пакетов: послать текущий пакет, послать текущий буфер, написать пакет с нуля или послать отредактированный пакет из того, что насобирали.

Примечание по интерфейсу: если опция "послать текущий пакет" вызывается из "окна результатов" Capture, пакет отправляется сразу без вызова конструктора пакетов, правда, остается в текущем "буфере на отправку", и впоследствии его можно там подкорректировать. 

Если "послать текущий пакет" вызывается из окна Packet Generator'а - автоматически вызывается конструктор пакетов. Будьте внимательны!

В конструкторе пакетов в секции Decode программа будет давать вам некоторые подсказки, в частности, высчитывать новую контрольную сумму при модификации пакета (она бы еще сама вносила соответствующие изменения, ленивое создание;). Однако AI оно тем и отличается от разума человеческого, что думать как следует не умеет. Поэтому когда, например, вы меняете IP-адрес получателя, подумайте, не следует ли заодно поменять его MAC-адрес?;)

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

всякая всячина

Кроме вышеописанного программа содержит массу других полезных и не очень (как кому;) наворотов. О них кратко:

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

• Host Table. Отлавливает различные сведения о видимых снифферу хостах и их деятельности (без полного захвата и анализа пакетов)

• Matrix. Практически то же самое, что и Host Table, но представленное немного в другом формате.

• History. Чертит графики и диаграммы по поведению сети в определенный промежуток времени.

• Protocol Distribution. Как следует из названия, ведет статистику по использованию различных протоколов.

• Statistics. Статистика по утилизации и размерам кадров.

• Alarm log. Журнал учета определенных вами событий.

Ну вот вкратце и все. (ничего себе "вкратце получилось %-()) Скачивайте и тестируйте на здоровье - себе в радость и врагам назло:)

заключение

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

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


http://www1.hut.ru/aneksniff/sniffer3.html
 

 


Метки:  

 Страницы: [1]