Лучшие инструменты пен-тестера: сниферы и работа с пакетами

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

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

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

  • Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
  • Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
  • Пакеты можно отсеивать по множеству параметров с помощью фильтров;
  • Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
  • Поддержка захвата трафика VoIP-звонков;
  • Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
  • Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
  • Отображение статистики нагрузки на сеть;
  • Просмотр содержимого пакетов для всех сетевых уровней;
  • Отображение времени отправки и получения пакетов.

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

Как пользоваться Wireshark

Я предполагаю, что программа у вас уже установлена, но если нет, то вы можете ее установить из официальных репозиториев. Для этого наберите команду в Ubuntu:

sudo apt install wireshark

После установки вы сможете найти программу в главном меню дистрибутива. Запускать Wireshark нужно с правами суперпользователя, потому что иначе она не сможет анализировать сетевые пакеты. Это можно сделать из главного меню или через терминал с помощью команды для KDE:

А для Gnome / Unity:

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

Анализ сетевого трафика

Для начала анализа выберите сетевой интерфейс, например eth0, и нажмите кнопку Start.

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

  • Верхняя часть - это меню и панели с различными кнопками;
  • Список пакетов - дальше отображается поток сетевых пакетов, которые вы будете анализировать;
  • Содержимое пакета - чуть ниже расположено содержимое выбранного пакета, оно разбито по категориям в зависимости от транспортного уровня;
  • Реальное представление - в самом низу отображается содержимое пакета в реальном виде, а также в виде HEX.

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

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

Для более удобного просмотра можно открыть пакет в новом окне, выполнив двойной клик по записи:

Фильтры Wireshark

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

  • ip.dst - целевой IP-адрес;
  • ip.src - IP-адрес отправителя;
  • ip.addr - IP отправителя или получателя;
  • ip.proto - протокол;
  • tcp.dstport - порт назначения;
  • tcp.srcport - порт отправителя;
  • ip.ttl - фильтр по ttl, определяет сетевое расстояние;
  • http.request_uri - запрашиваемый адрес сайта.

Для указания отношения между полем и значением в фильтре можно использовать такие операторы:

  • == - равно;
  • != - не равно;
  • < - меньше;
  • > - больше;
  • <= - меньше или равно;
  • >= - больше или равно;
  • matches - регулярное выражение;
  • contains - содержит.

Для объединения нескольких выражений можно применять:

  • && - оба выражения должны быть верными для пакета;
  • || - может быть верным одно из выражений.

Теперь рассмотрим подробнее на примерах несколько фильтров и попытаемся понять все знаки отношений.

Сначала отфильтруем все пакеты, отправленные на 194.67.215.. Наберите строку в поле фильтра и нажмите Apply . Для удобства фильтры Wireshark можно сохранять с помощью кнопки Save :

ip.dst == 194.67.215.125

А чтобы получить не только отправленные пакеты, но и полученные в ответ от этого узла, можно объединить два условия:

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

Также мы можем отобрать переданные большие файлы:

http.content_length > 5000

Отфильтровав Content-Type, мы можем выбрать все картинки, которые были загружены; выполним анализ трафика Wireshark, пакеты, которого содержат слово image:

http.content_type contains image

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

Например, я хочу вывести в виде колонки ttl (время жизни) пакета. Для этого откройте информацию о пакете, найдите это поле в разделе IP. Затем вызовите контекстное меню и выберите опцию Apply As Column :

Таким же образом можно создать фильтр на основе любого нужного поля. Выберите его и вызовите контекстное меню, затем нажмите Apply as filter или Prepare as filter , затем выбираем Selected, чтобы вывести только выбранные значения, или Not selected , чтобы их убрать:

Указанное поле и его значение будет применено или во втором случае подставлено в поле фильтра:

Таким способом вы можете добавить в фильтр поле любого пакета или колонку. Там тоже есть эта опция в контекстном меню. Для фильтрации протоколов вы можете использовать и более простые условия. Например, выполним анализ трафика Wireshark для протоколов HTTP и DNS:

Еще одна интересная возможность программы - использование Wireshark для отслеживания определённого сеанса между компьютером пользователя и сервером. Для этого откройте контекстное меню для пакета и выберите Follow TCP stream .

Затем откроется окно, в котором вы найдете все данные, переданные между сервером и клиентом:

Диагностика проблем Wireshark

Возможно, вам интересно, как пользоваться Wireshark 2.0 для обнаружения проблем в сети. Для этого в левом нижнем углу окна есть круглая кнопка, при нажатии на неё открывается окно Expet Tools . В нём Wireshark собирает все сообщения об ошибках и неполадках в сети:

Окно разделено на такие вкладки, как Errors, Warnings, Notices, Chats. Программа умеет фильтровать и находить множество проблем с сетью, и тут вы можете их очень быстро увидеть. Здесь тоже поддерживаются фильтры Wireshark.

Анализ трафика Wireshark

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

Для этого сначала нужно остановить захват трафика с помощью красного квадрата на панели. Затем откройте меню File -> Export Objects -> HTTP :

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

CommView предоставляет возможность вести статистику по всем IP-соединениям, декодировать IP-пакеты до низкого уровня и анализировать их. Встроенная система фильтров по нескольким параметрам позволяет настроить слежение исключительно за необходимыми пакетами, что позволяет сделать их анализ более эффективным. Программа может распознавать пакеты более чем семи десятков самых распространенных протоколов (в том числе DDNS, DHCP, DIAG, DNS, FTP, HTTP, HTTPS, ICMP, ICQ, IMAP, IPsec, IPv4, IPv6, IPX, LDAP, MS SQL, NCP, NetBIOS, NFS, NLSP, POP3, PPP, PPPoE, SMB, SMTP, SOCKS, SPX, SSH, TCP, TELNET, UDP, WAP и др.), а также сохранять их в файлы для последующего анализа. Множество других инструментов, таких как определение изготовителя сетевого адаптера по MAC-адресу, реконструкция HTML и удаленный перехват пакетов с помощью дополнительной утилиты CommView Remote Agent также могут быть полезны в определенных случаях.

Работа с программой

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

CommView поддерживает практически любой тип адаптеров Ethernet - 10, 100 и 1000 Мбит/с, а также аналоговые модемы, xDSL, Wi-Fi и др. Анализируя трафик адаптера Ethernet, CommView может перехватывать не только входящие и исходящие, но и транзитные пакеты, адресованные любому из компьютеров локального сегмента сети. Стоит отметить, что если стоит задача мониторинга всего трафика сегмента локальной сети, то требуется, чтобы компьютеры в ней были подключены через хаб, а не через свитч. Некоторые современные модели свитчей имеют функцию port mirroring, что позволяет их также сконфигурировать для мониторинга сети с помощью CommView. Подробнее об этом можно прочитать . Выбрав нужное соединение, можно приступать к захвату пакетов. Кнопки запуска и остановки захвата находятся около строки выбора интерфейса. Для работы с контроллером удаленного доступа, VPN и PPPoE при инсталляции программы необходимо установить соответствующий драйвер.

Главное окно программы разделено на несколько вкладок, отвечающих за тот или иной участок работы. Первая из них, «Текущие IP-соединения» , отображает подробную информацию о действующих IP-соединениях компьютера. Здесь можно увидеть локальный и удаленный IP-адрес, количество переданных и принятых пакетов, направление передачи, число установленных IP-сессий, порты, имя хоста (если в настройках программы не отключена функция распознавания DNS), и имя процесса, принимающего или передающего пакета данной сессии. Последняя информация недоступна для транзитных пакетов, а также на компьютерах, работающих под управлением Windows 9x/ME.

Вкладка «Текущие IP-соединения»

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

Чтобы создать псевдоним для IP-адреса, нужно выбрать в контекстном меню последовательно пункты «Создать псевдоним» и «используя локальный IP» или «используя удаленный IP». В появившемся окне поле IP-адреса будет уже заполнено, и останется только ввести подходящее имя. Если новая запись IP-имени создается щелчком правой кнопки мыши по пакету, поле имени автоматически заполняется именем хоста (если оно доступно) и его можно редактировать. Точно так же происходит работа с MAC-псевдонимами.

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

Вторая вкладка, «Пакеты» , отображает все перехваченные на выбранном сетевом интерфейсе пакеты и подробную информацию о них.

Вкладка «Пакеты»

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

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

В нижнем окне отображается декодированная детальная информация о выбранном пакете.

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

Контекстное меню позволяет скопировать в буфер обмена MAC-, IP-адреса и целые пакеты, присваивать псевдонимы, применять быстрый фильтр для выбора требуемых пакетов, а также воспользоваться инструментами «Реконструкция TCP-сессии» и «Генератор пакетов».

Инструмент «Реконструкция TCP-сессии» позволяет просмотреть процесс обмена между двумя хостами по TCP. Для того чтобы содержимое сессии выглядело более понятно, нужно выбрать соответствующую «логику отображения». Эта функция наиболее полезна для восстановления текстовой информации, например, HTML или ASCII.

Полученные данные можно экспортировать в виде текстового, RTF- или двоичного файла.

Вкладка «Log-файлы» . Здесь можно настроить параметры сохранения перехваченных пакетов в файл. CommView сохраняет log-файлы в собственном формате NCF; для их просмотра используется встроенная утилита, запустить которую можно из меню «Файл».

Имеется возможность включения автосохранения перехваченных пакетов по мере их поступления, ведения протоколов сессий HTTP в форматах TXT и HTML, сохранения, удаления, объединения и разделения log-файлов. Следует помнить, что пакет не сохраняется сразу по его прибытии, поэтому при просмотре log-файла в реальном времени в нем, скорее всего, не будет самых последних пакетов. Для того чтобы программа немедленно переслала буфер в файл, нужно нажать кнопку «Закончить захват».

Во вкладке «Правила» можно задать условия перехвата или игнорирования пакетов.

Для облегчения выбора и анализа требуемых пакетов, можно использовать правила фильтрации. Это также поможет значительно сократить количество системных ресурсов, используемых CommView.

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

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

Вкладка «Предупреждения» позволяет создавать, изменять, удалять правила предупреждений, а также просматривать текущие события, соответствующие этим правилам

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

CommView позволяет задать следующие типы отслеживаемых событий:

  • «Обнаружение пакета», соответствующего указанной формуле. Синтаксис формул подробно описан в руководстве пользователя;
  • «Байты в секунду». Это предупреждение сработает при превышении указанного уровня загрузки сети;
  • «Пакеты в секунду». Срабатывает при превышении заданного уровня частоты передачи пакетов;
  • «Бродкасты в секунду». То же, только для широковещательных пакетов;
  • «Мультикасты в секунду» - то же для многоадресных пакетов.
  • «Неизвестный MAC-адрес». Это предупреждение можно использовать для обнаружения подключений нового или несанкционированного оборудования в сеть, задав предварительно список известных адресов с помощью опции «Настройка»;
  • предупреждение «Неизвестный IP-адрес» сработает при перехвате пакетов с неизвестными IP-адресами отправителя либо получателя. Если предварительно задать список известных адресов, то это предупреждение можно использовать для обнаружения несанкционированных подключений через корпоративный брандмауэр.

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

Окно статистики в режиме «Общее»

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

Доступность, стоимость, системные требования

Текущая версия программы - CommView 5.1. С web-сайта Tamosoft можно , которая будет функционировать в течение 30 дней.

Разработчик предлагает покупателям два варианта лицензий:

  • Home License (домашняя лицензия), стоимостью 2000 рублей, дает право пользоваться программой дома на некоммерческой основе, при этом количество хостов, доступных для наблюдения в вашей домашней сети, ограничивается пятью. В рамках данного типа лицензии не позволяется работать удаленно с помощью Remote Agent.
  • Enterprise License (корпоративная, стоимость - 10000 рублей) предоставляет право на коммерческое и некоммерческое использование программы одним лицом, которое лично пользуется программой на одной или на нескольких машинах. Программа также может быть установлена на одной рабочей станции и использоваться несколькими людьми, но не одновременно.

Приложение работает в операционных системах Windows 98/Me/NT/2000/XP/2003. Для работы необходим сетевой адаптер Ethernet, Wireless Ethernet, Token Ring с поддержкой стандарта NDIS 3.0 или стандартный контроллер удаленного доступа.

Плюсы:

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

Минусы:

  • слишком высокая стоимость;
  • отсутствие пресетов для правил перехвата и предупреждений;
  • не очень удобный механизм выбора пакета во вкладке «Пакеты».

Заключение

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

Оригинал: 8 best packet sniffers and network analyzers
Автор: Jon Watson
Дата публикации: 22 ноября 2017 года
Перевод: А. Кривошей
Дата перевода: декабрь 2017 г.

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

Есть множество утилит, которые собирают сетевой трафик, и большинство из них используют pcap (в Unix-подобных системах) или libcap (в Windows) в качестве ядра. Другой вид утилит помогает анализировать эти данные, так как даже небольшой объем траффика может генерировать тысячи пакетов, в которых трудно ориентироваться. Почти все эти утилиты мало отличаются друг от друга в сборе данных, основные отличия заключаются в том, как они анализируют данные.

Анализ сетевого трафика требует понимания того, как работает сеть. Нет никакого инструмента, который бы волшебным образом заменил знания аналитика об основах работы сети, такие как "3-х этапное рукопожатие" TCP, которое используется для инициирования соединения между двумя устройствами. Аналитики также должны иметь некоторое представление о типах сетевого трафика в нормально функционирующей сети, таких как ARP и DHCP. Это знание важно, потому что аналитические инструменты просто покажут вам то, о чем вы их попросите. Вам решать, что нужно просить. Если вы не знаете, как обычно выглядит ваша сеть, может быть сложно понять, что вы нашли то, что нужно, в массе собранных вами пакетов.

Лучшие снифферы пакетов и анализаторы сети

Промышленные инструменты

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

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

Это очень большой набор инструментов управления IT. В этой статье более уместна утилита Deep Packet Inspection and Analysis которая является его составной частью. Сбор сетевого трафика довольно прост. С использованием таких инструментов, как WireShark, базовый анализ также не является проблемой. Но не всегда ситуация полностью понятна. В очень загруженной сети может быть трудно определить даже очень простые вещи, например:

Какое приложение в сети создает этот трафик?
- если приложение известно (скажем, веб-браузер), где его пользователи проводят большую часть своего времени?
- какие соединения самые длинные и перегружают сеть?

Большинство сетевых устройств, чтобы убедиться, что пакет идет туда, куда нужно, используют метаданные каждого пакета. Содержимое пакета неизвестно сетевому устройству. Другое дело - глубокая инспекция пакетов; это означает, что проверяется фактическое содержимое пакета. Таким образом можно обнаружить критическую сетевую информацию, которую нельзя почерпнуть из метаданных. Инструменты, подобные тем, которые предоставляются SolarWinds, могут выдавать более значимые данные, чем просто поток трафика.

Другие технологии управления сетями с большим объемом данных включают NetFlow и sFlow. У каждой есть свои сильные и слабые стороны,

Вы можете узнать больше о NetFlow и sFlow.

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

Основы

Основным инструментом для сбора сетевого трафика является

Это приложение с открытым исходным кодом, которое устанавливается практически во всех Unix-подобных операционных системах. Tcpdump - отличная утилита для сбора данных, которая имеет очень сложный язык фильтрации. Важно знать, как фильтровать данные при их сборе, чтобы в итоге получить нормальный набор данных для анализа. Захват всех данных с сетевого устройства даже в умеренно загруженной сети может породить слишком много данных, которые будет очень трудно проанализировать.

В некоторых редких случаях достаточно будет выводить захваченные tcpdump данные прямо на экран, чтобы найти то, что вам нужно. Например, при написании этой статьи я собрал трафик и заметил, что моя машина отправляет трафик на IP-адрес, который я не знаю. Оказывается, моя машина отправляла данные на IP-адрес Google 172.217.11.142. Поскольку у меня не было никаких продуктов Google, и не был открыт Gmail, я не знал, почему это происходит. Я проверил свою систему и нашел следующее:

[ ~ ]$ ps -ef | grep google user 1985 1881 0 10:16 ? 00:00:00 /opt/google/chrome/chrome --type=service

Оказывыается, что даже когда Chrome не работает, он остается запущенным как служба. Я не заметил бы этого без анализа пакетов. Я перехватил еще несколько пакетов данных, но на этот раз дал tcpdump задачу записать данные в файл, который затем открыл в Wireshark (подробнее об этом позже). Вот эти записи:

Tcpdump - любимый инструмент системных администраторов, потому что это утилита командной строки. Для запуска tcpdump не требуется графический интерфейс. Для производственных серверов графический интерфес скорее вреден, так как потребляет системные ресурсы, поэтому предпочтительны программы командной строки. Как и многие современные утилиты, tcpdump имеет очень богатый и сложный язык, который требует некоторого времени для его освоения. Несколько самых базовых команд включают в себя выбор сетевого интерфейса для сбора данных и запись этих данных в файл, чтобы его можно было экспортировать для анализа в другом месте. Для этого используются переключатели -i и -w.

# tcpdump -i eth0 -w tcpdump_packets tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes ^C51 packets captured

Эта команда создает файл с захваченными данными:

File tcpdump_packets tcpdump_packets: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)

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

3. Windump

Большинство полезных утилит с открытым исходным кодом в конечном итоге клонируют в другие операционные системы. Когда это происходит, говорят, что приложение было перенесено. Windump - это порт tcpdump и ведет себя очень похожим образом.

Самое существенное различие между Windump и tcpdump заключается в том, что Windump нуждается в библиотеке Winpcap, установленной до запуска Windump. Несмотря на то, что Windump и Winpcap предоставляются одним и тем же майнтайнером, их нужно скачивать отдельно.

Winpcap - это библиотека, которая должна быть предварительно установлена. Но Windump - это exe-файл, который не нуждается в установке, поэтому его можно просто запускать. Это нужно иметь в виду, если вы используете сеть Windows. Вам не обязательно устанавливать Windump на каждой машине, поскольку вы можете просто копировать его по мере необходимости, но вам понадобится Winpcap для поддержки Windup.

Как и в случае с tcpdump, Windump может выводить сетевые данные на экран для анализа, фильтровать таким же образом, а также записывать данные в файл pcap для последующего анализа.

4. Wireshark

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

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

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

Одной из самых полезных возможностей Wireshark является возможность следовать за потоком. Лучше всего представить поток как цепочку. На скриншоте ниже мы можем видеть множество захваченных данных, но меня больше всего интересовал IP-адрес Google. Я могу щелкнуть правой кнопкой мыши и следовать потоку TCP, чтобы увидеть всю цепочку.

Если захват трафика производился на другом компьютере, вы можете импортировать файл PCAP с помощью диалога Wireshark File -> Open. Для импортированных файлов доступны те же фильтры и инструменты, что и для захваченных сетевых данных.

5. tshark

Tshark - это очень полезное звено между tcpdump и Wireshark. Tcpdump превосходит их при сборе данных и может хирургически извлекать только те данные, которые вам нужны, однако его возможности анализа данных очень ограничены. Wireshark отлично справляется как с захватом, так и с анализом, но имеет тяжелый пользовательский интерфейс и не может использоваться на серверах без графического интерфейса. Попробуйте tshark, он работает в командной строке.

Tshark использует те же правила фильтрации, что и Wireshark, что не должно удивлять, так как они по сути являются одним и тем же продуктом. Приведенная ниже команда говорит tshark только о том, что необходимо захватить IP-адрес пункта назначения, а также некоторые другие интересующие нас поля из HTTP-части пакета.

# tshark -i eth0 -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/phoenix.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico

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

Сначала захват:

# tshark -i eth0 -w tshark_packets Capturing on "eth0" 102 ^C

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

# tshark -r tshark_packets -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /contact 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/ 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/styles/styles.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/images/title.png

Это очень интересный инструмент, который скорее попадает в категорию инструментов сетевого криминалистического анализа, а не просто снифферов. Сфера криминалистики, как правило, занимается расследованиями и сбором доказательств, и Network Miner выполняет эту работу просто отлично. Также, как wireshark может следовать потоку TCP, чтобы восстановить всю цепочку передачи паков, Network Miner может следовать потоку для того, чтобы восстановить файлы, которые были переданы по сети.

Network Miner может быть стратегически размещен в сети, чтобы иметь возможность наблюдать и собирать трафик, который вас интересует, в режиме реального времени. Он не будет генерировать свой собственный трафик в сети, поэтому будет работать скрытно.

Network Miner также может работать в автономном режиме. Вы можете использовать tcpdump, чтобы собрать пакеты в интересующей вас точке сети, а затем импортировать файлы PCAP в Network Miner. Далее можно будет попробовать восстановить какие-либо файлы или сертификаты, найденные в записанном файле.

Network Miner сделан для Windows, но с помощью Mono он может быть запущен в любой ОС, которая поддерживает платформу Mono, например Linux и MacOS.

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

7. Fiddler (HTTP)

Технически не является утилитой для захвата сетевых пакетов, но он так невероятно полезен, что попал в этот список. В отличие от других перечисленных здесь инструментов, которые предназначены для захвата трафика в сети из любого источника, Fiddler скорее служит инструментом отладки. Он захватывает HTTP трафик. Хотя многие браузеры уже имеют эту возможность в своих средствах разработчика, Fiddler не ограничивается трафиком браузера. Fiddler может захватить любой HTTP-трафик на компьютере, в том числе и не из веб-приложений.

Многие настольные приложения используют HTTP для подключения к веб-службам, и помимо Fiddler, единственным способом захвата такого трафика для анализа является использование таких инструментов, как tcpdump или Wireshark. Однако они работают на уровне пакетов, поэтому для анализа необходимо реконструировать этии пакеты в потоки HTTP. Это может потребовать много работы для выполнения простых исследований и здесь на помощь приходит Fiddler. Fiddler поможет обнаружить куки, сертификаты, и прочие полезные данные, отправляемые приложениями.

Fiddler является бесплатным и, так же, как Network Miner, он может быть запущен в Mono практически на любой операционной системе.

8. Capsa

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

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

Capsa доступна только для Windows 2008/Vista/7/8 и 10.

Заключение

Несложно понять, как с помощью описанных нами инструментов системный админимтратор может создать инфраструктуру мониторинга сети. Tcpdump или Windump могут быть установлены на всех серверах. Планировщик, такой как cron или планировщик Windows, в нужный момент запускает сеанса сбора пакетов и записывает собранные данные в файл pcap. Далее системный администратор может передать эти пакеты центральной машине и анализировать их с помощью wireshark. Если сеть слишком велика для этого, имеются инструменты корпоративного уровня, такие как SolarWinds, чтобы превратить все сетевые пакеты в управляемый набор данных.

Почитайте другие статьи о перехвате и анализе сетевого трафика :

  • Dan Nanni, Утилиты с интерфейсом командной строки для мониторинга сетевого трафика в Linux
  • Paul Cobbaut, Администрирование систем Linux. Перехват сетевого трафика
  • Paul Ferrill, 5 инструментов для мониторинга сети в Linux
  • Pankaj Tanwar, Захват пакетов при помощи библиотеки libpcap
  • Riccardo Capecchi, Использование фильтров в Wireshark
  • Nathan Willis, Анализ сети с помощью Wireshark
  • Prashant Phatak,

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

Сниффер: что такое sniffer с точки зрения английского языка и компьютерной техники?

На самом деле определить сущность такого программного или программно-аппаратного комплекса вовсе несложно, если просто перевести термин.

Это название происходит от английского слова sniff (нюхать). Отсюда и значение русскоязычного термина «сниффер». Что такое sniffer в нашем понимании? «Нюхач», способный отслеживать использование сетевого трафика, а, проще говоря, шпион, который может вмешиваться в работу локальных или интернет-ориентированных сетей, извлекая нужную ему информацию на основе доступа через протоколы передачи данных TCP/IP.

Анализатор трафика: как это работает?

Оговоримся сразу: сниффер, будь он программным или условно-программным компонентом, способен анализировать и перехватывать трафик (передаваемые и принимаемые данные) исключительно через сетевые карты (Ethernet). Что получается?

Сетевой интерфейс не всегда оказывается защищенным файрволлом (опять же - программным или «железным»), а потому перехват передаваемых или принимаемых данных становится всего лишь делом техники.

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

Благие намерения и злоумышленные цели?

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

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

Виды снифферов

Но и по видам их можно разделить на несколько основных:

  • аппаратные;
  • программные;
  • аппаратно-программные;
  • онлайн-апплеты.

Поведенческое определение присутствия сниффера в сети

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

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

Онлайн-ресурсы

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

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

Как защититься от перехвата данных?

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

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

Отсюда законный вопрос: а стоит и устанавливать такое ПО? Быть может, его взлом со стороны хакеров нанесет еще больший вред, или оно само заблокирует то, что должно работать?

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

Вместо послесловия

Вот и все, что касается понятия «сниффер». Что такое sniffer, думается, уже многие сообразили. Напоследок вопрос остается в другом: насколько правильно такие вещи будет использовать рядовой пользователь? А то ведь среди юных юзеров иногда можно заметить склонность к компьютерному хулиганству. Они-то думают, что взломать чужой «комп» - это что-то вроде интересного соревнования или самоутверждения. К сожалению, никто из них даже не задумывается о последствиях, а ведь определить злоумышленника, использующего тот же онлайн-сниффер, очень просто по его внешнему IP, например, на сайте WhoIs. В качестве местоположения, правда, будет указана локация провайдера, тем не менее, страна и город определятся точно. Ну а потом дело за малым: либо звонок провайдеру с целью блокировки терминала, с которого производился несанкционированный доступ, либо подсудное дело. Выводы делайте сами.

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