Анализ пакетов wireshark. Анализ сети с помощью Wireshark. Анализатор трафика: как это работает

Или Elcomsoft Wireless Security Auditor для Windows.

Ограничения WinPcap и Wi-Fi трафик в Wireshark

Ограничения по захвату пакетов Wi-Fi в Windows связаны с библиотекой WinPcap, а не с самой программой Wireshark. Ведь в Wireshark есть поддержка - специализированных и достаточно дорогих Wi-Fi адаптеров, чьи драйвера поддерживают отслеживание сетевого трафика в в среде Windows, который часто называют захватом сетевого трафика в «неразборчивом» (promiscuous) режиме в сетях Wi-Fi.

Видеоинструкция по использованию Acrylic WiFi с Wireshark в ОС Windows

Мы подготовили видео с демонстрацией процесса, которое поможет, если у вас остались вопросы или если вы хотите увидеть, как происходит захват беспроводного трафика с помощью любой Wi-Fi карты в Wireshark для Windows.

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

Иногда при использовании интернета возникают ситуации, при которых происходит утечка трафика или непредвиденный расход системных ресурсов. Чтобы быстро провести анализ и обнаружить источник проблемы, используют специальные сетевые инструменты. Об одном из них, WireShark, пойдёт речь в статье.

Общая информация

Перед тем, как пользоваться WireShark, нужно ознакомиться с областью её применения, функционалом и возможностями. Вкратце: программа позволяет перехватывать пакеты в режиме реального времени в проводных и беспроводных сетевых подключениях. Применяется в протоколах Ethernet, IEEE 802.11, PPP и аналогичных. Можно использовать и перехват трафика звонков VoIP.

Программа распространяется под лицензией GNU GPL, что означает - бесплатно и с открытым исходным кодом. Можно запустить её на многих дистрибутивах Linux, MacOS, и есть также версия для операционной системы Windows.

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

Во-первых, сначала стоит установить её в систему. Так как одним из наиболее часто используемых Linux дистрибутивов является Ubuntu, то и все примеры будут показаны именно в нем.

Для установки достаточно набрать в консоли команду:

sudo apt-get install wireshark

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

Внешний вид

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

Блок Capture содержит список доступных для захвата сетевых интерфейсов. При выборе, например, eth0 и нажатии кнопки Start запустится процесс перехвата.

Окно с перехватываемыми данными также разделено логически на несколько частей. Сверху находится панель управления с различными элементами. Следом за ним идёт список пакетов. Он представлен в виде таблицы. Здесь можно увидеть порядковый номер пакета, время его перехвата, адрес отправления и получения. Также можно изъять данные об используемых протоколах, длине и других полезных сведений.

Ниже списка расположено окно с содержимым технических данных выбранного пакета. А ещё ниже имеется отображение в шестнадцатеричном виде.

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

Применение фильтров

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

Для них есть специальное поле в окне программы — Filter. Чтобы сконфигурировать фильтр более точно, имеется кнопка Expression.

Но для большинства случаев хватит и стандартного набора фильтров:

  • ip.dst — ip адрес назначения пакета;
  • ip.src — адрес отправителя;
  • ip.addr — просто любой ip;
  • ip.proto — протокол.

Использование фильтров в WireShark — инструкция

Чтобы попробовать, как работает программа с фильтрами, нужно в ввести определённую команду. Например, такой набор — ip.dst == 172.217.23.131 - покажет все летящие пакеты на сайт "Гугл". Чтобы просмотреть весь трафик — и входящий и исходящий, - можно объединить две формулы — ip.dst == 172.217.23.131 || ip.src == 172.217.23.131. Таким образом, получилось использовать в одной строке сразу два условия.

Можно использовать и другие условия, например ip.ttl < 10. Данная команда выведет все пакеты с длительностью жизни меньше 10. Чтобы выбрать данные по их размеру, можно применить такой подход — http.content_length > 5000.

Дополнительные возможности

Для удобства в WireShark есть способ быстро выбрать в качестве анализируемого поля параметры пакета. Например, в поле с техническими данными можно щёлкнуть правой кнопкой на нужном объекте и выбрать Apply as Column. Что означает его перевод в область поля в качестве колонки.

Аналогично можно выбрать любой параметр и как фильтр. Для этого в контекстном меню есть пункт Apply as Filter.

Отдельный сеанс

Можно пользоваться WireShark как монитором между двумя узлами сети, например, пользователем и сервером. Для этого нужно выбрать интересующий пакет, вызвать контекстное меню и нажать Follow TCP Stream. В новом окне отобразится весь лог обмена между двумя узлами.

Диагностика

WireShark обладает отдельным инструментом для анализа проблем сети. Он называется Expert Tools. Найти его можно в левом нижнем углу, в виде круглой иконки. По нажатию на ней откроется новое окно с несколькими вкладками — Errors, Warnings и другие. С их помощью можно проанализировать, в каких узлах происходят сбои, не доходят пакеты, и обнаружить прочие проблемы с сетью.

Голосовой трафик

Как уже было сказано, WireShark умеет перехватывать и голосовой трафик. Для этого отведено целое меню Telephony. Это можно использовать для нахождения проблем в VoIP и их оперативного устранения.

Пункт VoIP Calls в меню Telephony позволит просмотреть совершенные звонки и прослушать их.

Экспорт объектов

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

В заключение

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

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

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

Стоит отметить, что в некоторых странах использование сниффера, каковым и является WireShark, может быть противозаконным.


В этом уроке описаны технологии сетевого хакинга, основанные на перехвате сетевых пакетов. Хакеры используют такие технологии для прослушивания сетевого трафика с целью хищения ценной информации, для организации перехвата данных с целью атаки «человек посредине», для перехвата TCP-соединений, позволяющих, скажем, подменять данные, и выполнения других, не менее интересных действий. К сожалению, большая часть этих атак на практике реализована только для сетей Unix, для которых хакеры могут использовать как специальные утилиты, так и системные средства Unix. Сети Windows, по всей видимости, обойдены вниманием хакеров, и мы вынуждены ограничиться при описании инструментов перехвата данных программами-сниферами, предназначенными для тривиального прослушивания сетевых пакетов. Тем не менее, не следует пренебрегать хотя бы теоретическим описанием таких атак, особенно антихакерам, поскольку знание применяемых технологий хакинга поможет предотвратить многие неприятности.

Сетевой снифинг

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

Для демонстрации технологии снифинга мы применим весьма популярную программу-снифер SpyNet , которую можно найти на многих Web-сайтах. Официальный сайт программы SpyNet находится по адресу http://members.xoom.com/layrentiu2/ , на котором можно загрузить демо-версию программы.

Программа SpyNet состоит из двух компонентов - CaptureNet и PipeNet . Программа CaptureNet позволяет перехватывать пакеты, передаваемые по сети Ethernet на сетевом уровне, т.е. в виде кадров Ethernet. Программа PipeNet позволяет собирать кадры Ethernet в пакеты уровня приложений, восстанавливая, например, сообщения электронной почты, сообщения протокола HTTP (обмен информацией с Web-сервером) и выполнять другие функции.

К сожалению, в демо-версии SpyNet возможности PipeNet ограничены демонстрационным примером сборки пакета HTTP, так что мы не сможем продемонстрировать работу SpyNet в полном объеме. Однако мы продемонстрируем возможности сетевого снифинга SpyNet на примере нашей экспериментальной сети, передав текстовый файл с хоста Sword-2000 на хост Alex-З с помощью обычного проводника Windows. Одновременно на компьютере А1ех-1 мы запустим программу CaptureNet , которая перехватит переданные пакеты и позволит прочитать содержимое переданного файла в кадрах Ethernet. На Рис. 1 представлен текст секретного сообщения в файле secret.txt ; мы постараемся найти этот текст в перехваченных кадрах Ethernet.

Рис. 1. Текст секретного сообщения в окне Notepad

Для перехвата кадров Ethernet выполните такие действия.

На компьютере Alex-З запустите программу CaptureNet . В отобразившемся рабочем окне программы выберите команду меню Capture * Start (Захват * Запуск) и запустите процесс перехвата сетевых кадров.

Средствами проводника Windows скопируйте файл security.txt с компьютера Sword-2000 на А1ех-3 .

После передачи файла secret.txt выберите команду меню Capture * Stop (Захват * Стоп) и остановите процесс перехвата.

Перехваченные кадры Ethernet отобразятся в правой части рабочего окна программы CaptureNet (Рис. 2), причем каждая строка в верхнем списке представляет кадр Ethernet, а под списком отображается содержимое выбранного кадра.

Рис. 2. Кадр Ethernet содержит текст секретного сообщения

Просмотрев список перехваченных кадров, мы без труда найдем тот из них, который содержит переданный нами текст This is a very big secret (Это очень большой секрет).

Подчеркнем, что это - самый простой пример, когда записывался весь перехваченный сетевой трафик. Программа CaptureNet позволяет перехватывать пакеты, пересылаемые по определенным протоколам и на определенные порты хостов, выбирать сообщения с определенным содержимым и накапливать перехваченные данные в файле. Техника выполнения таких действий несложна, и ее можно освоить по справочной системе программы SpyNet .

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

Методы перехвата сетевого трафика

Прослушиванце сети с помощью программ сетевых анализаторов, подобных приведенной выше CaptureNet , является первым, самым простым способом перехвата данных. Кроме SpyNet для снифинга сетей используется множество инструментов, изначально разрабатываемых для целей анализа сетевой активности, диагностирования сетей, отбора трафика по указанным критериям и других задач сетевого администрирования. В качестве примера такой программы можно назвать tcpdump (http://www.tcpdump.org ), которая позволяет записывать сетевой трафик в специальный журнал для последующего анализа.

Для защиты от прослушивания сети применяются специальные программы, например, AntiSniff (http://www.securitysoftwaretech.com/antisniff ), которые способны выявлять в сети компьютеры, занятые прослушиванием сетевого трафика. Программы-антисниферы для решения своих задач используют особый признак наличия в сети прослушивающих устройств - сетевая плата компьютера-снифера должна находиться в специальном режиме прослушивания. Находясь в режиме прослушивания, сетевые компьютеры особенным образом реагируют на IР-дейтаграммы, посылаемые в адрес тестируемого хоста. Например, прослушивающие хосты, как правило, обрабатывают весь поступающий трафик, не ограничиваясь только посланными на адрес хоста дейтаграммами. Имеются и другие признаки, указывающие на подозрительное поведение хоста, которые способна распознать программа AntiSniff .

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

Ложные запросы ARP

Чтобы перехватить и замкнуть на себя процесс сетевого взаимодействия между двумя хостами А и В злоумышленник может подменить IР-адреса взаимодействующих хостов своим IP-адресом, направив хостам А и В фальсифицированные сообщения ARP (Address Resolution Protocol - Протокол разрешения адресов). С протоколом ARP можно познакомиться в Приложении D, где описана процедура разрешения (преобразования) IP-адреса хоста в адрес машины (МАС-адрес), зашитый в сетевую плату хоста. Посмотрим, как хакер может воспользоваться протоколом ARP для выполнения перехвата сетевого взаимодействия между хостами А и В.

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

Злоумышленник определяет МАС-адреса хостов А и В, например, с помощью команды nbtstat из пакета W2RK .

Злоумышленник отправляет на выявленные МАС-адреса хостов А и В сообщения, представляющие собой фальсифицированные ARP-ответы на запросы разрешения IP-адресов хостов в МАС-адреса компьютеров. Хосту А сообщается, что IР-адресу хоста В соответствует МАС-адрес компьютера злоумышленника; хосту В сообщается, что IP-адресу хоста А также соответствует МАС-адрес компьютера злоумышленника.

Хосты А и В заносят полученные МАС-адреса в свои кэши ARP и далее используют их для отправки сообщений друг другу. Поскольку IР-адресам А и В соответствует МАС-адрес компьютера злоумышленника, хосты А и В, ничего не подозревая, общаются через посредника, способного делать с их посланиями что угодно.

Для защиты от таких атак сетевые администраторы должны поддерживать базу данных с таблицей соответствия МАС-адресов и IP-адресов своих сетевых компьютеров. Далее, с помощью специального программного обеспечения, например, утилиты arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz ) можно периодически обследовать сеть и выявлять несоответствия.

В сетях UNIX такого рода атаку ложными запросами ARP можно реализовать с помощью системных утилит отслеживания и управления сетевым трафиком, например, arpredirect . К сожалению, в сетях Windows 2000/XP такие надежные утилиты, по-видимому, не реализованы. Например, на сайте NTsecurity (http://www.ntsecurity.nu ) можно загрузить утилиту GrabitAII , представленную как средство для перенаправления трафика между сетевыми хостами. Однако элементарная проверка работоспособности утилиты GrabitAII показывает, что до полного успеха в реализации ее функций еще далеко.

Ложная маршрутизация

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

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

Для защиты от такой атаки следует отключить (например, с помощью брандмауэра) на хосте А обработку сообщений ICMP Redirect, а выявить IP-адрес компьютера злоумышленника может команда tracert (в Unix это команда tracerout). Эти утилиты способны найти появившийся в локальной сети дополнительный, непредусмотренный при инсталляции, маршрут, если конечно администратор сети проявит бдительность.

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

Практическую реализацию всех описанных в Главе 4 криптографических методов защиты обмена информацией предоставляют сети VPN (Virtual Private Network - Виртуальные частные сети). Краткий обзор принципов и методов криптографической защиты можно найти в Приложении Е, а в приводится подробное описание средств криптографической защиты, предоставляемых приложением PGP Desktop Security (http://www.pgp.com ).

Перехват TCP-соединения

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

Для выполнения атак перехвата TCP-соединения создано несколько эффективных утилит, однако все они реализованы для платформы Unix, и на сайтах Web эти утилиты представлены только в виде исходных кодов. Таким образом, нам, как убежденным практикам в благородном деле хакинга, от атак методом перехвата TCP-соединения проку не много. (Любители разбираться в чужом программном коде могут обратиться к сайту http://www.cri.cz/~kra/index.html , где можно загрузить исходный код известной утилиты перехвата TCP-соединения Hunt от Павла Крауза (Pavel Krauz)).

Несмотря на отсутствие практических инструментов, мы не можем обойти стороной такую интересную тему, как перехват TCP-соединений, и остановимся на некоторых аспектах таких атак. Некоторые сведения о структуре TCP-пакета и порядке установления TCP-соединений приведены в Приложении D этой книги, здесь же основное внимание мы уделим такому вопросу - что же именно позволяет хакерам выполнять атаки перехвата TCP-соединений? Рассмотрим эту тему подробнее, опираясь, в основном, на обсуждение в и .

Протокол TCP (Transmission Control Protocol - Протокол управления передачей) является одним из базовых протоколов транспортного уровня OSI, позволяющим устанавливать логические соединения по виртуальному каналу связи. По этому каналу передаются и принимаются пакеты с регистрацией их последовательности, осуществляется управление потоком пакетов, организовывается повторная передача искаженных пакетов, а в конце сеанса канал связи разрывается. Протокол TCP является единственным базовым протоколом из семейства TCP/IP, имеющим продвинутую систему идентификации сообщений и соединения.

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

URG - флаг срочности;

АСК - флаг подтверждения;

PSH - флаг переноса;

RST - флаг переустановки соединения;

SYN - флаг синхронизации;

FIN - флаг завершения соединения.

Рассмотрим порядок создания TCP-соединения.

1. Если хосту А необходимо создать TCP-соединение с хостом В, то хост А посылает хосту В следующее сообщение:

А -> В: SYN, ISSa

Это означает, что в передаваемом хостом А сообщении установлен флаг SYN (Synchronize sequence number - Номер последовательности синхронизации), а в поле порядкового номера установлено начальное 32-битное значение ISSa (Initial Sequence Number - Начальный номер последовательности).

2. В ответ на полученный от хоста А запрос хост В отвечает сообщением, в котором установлен бит SYN и установлен бит АСК. В поле порядкового номера хост В устанавливает свое начальное значение счетчика - ISSb; поле номера подтверждения будет при этом содержать значение ISSa, полученное в первом пакете от хоста А, увеличенное на единицу. Таким образом, хост В отвечает таким сообщением:

В -> A: SYN, АСК, ISSb, ACK(ISSa+1)

3. Наконец, хост А посылает сообщение хосту В, в котором: установлен бит АСК ; поле порядкового номера содержит значение ISSa + 1 ; поле номера подтверждения содержит значение ISSb + 1 . После этого TCP-соединение между хостами А и В считается установленным:

А -> В: АСК, ISSa+1, ACK(ISSb+1)

4. Теперь хост А может посылать пакеты с данными на хост В по только что созданному виртуальному TCP-каналу:

А -> В: АСК, ISSa+1, ACK(ISSb+1); DATA

Здесь DATA обозначает данные.

Из рассмотренного выше алгоритма создания TCP-соединения видно, что единственными идентификаторами TCP-абонентов и TCP-соединения являются два 32-битных параметра порядкового номера и номера подтверждения - ISSa и ISSb . Следовательно, если хакеру удастся узнать текущие значения полей ISSa и ISSb , то ему ничто не помешает сформировать фальсифицированный TCP-пакет. Это означает, что хакеру достаточно подобрать текущие значения параметров ISSa и ISSb пакета TCP для данного TCP-соединения, послать пакет с любого хоста Интернета от имени клиента данного TCP-подключения, и данный пакет будет воспринят как верный!

Опасность такой подмены TCP-пакетов важна и потому, что высокоуровневые протоколы FTP и TELNET реализованы на базе протокола TCP, и идентификация клиентов FTP и TELNET-пакетов целиком основана на протоколе TCP.

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

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

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

Математическое предсказание начального значения параметров TCP-соединения экстраполяцией предыдущих значений ISSa и ISSb .

Использование уязвимостей по идентификации абонентов TCP-соединения на rsh-серверах Unix.

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

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

Заключение

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

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

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

Wireshark

Netcat

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

Scapy

Сайт:
www.secdev.org/projects/scapy

Must-have для любого хакера, представляющий собой мощнейшую тулзу для
интерактивной манипуляции пакетами. Принять и декодировать пакеты самых
различных протоколов, ответить на запрос, инжектировать модифицированный и
собственноручно созданный пакет - все легко! С ее помощью можно выполнять целый
ряд классических задач, вроде сканирования, tracorute, атак и определения
инфраструктуры сети. В одном флаконе мы получаем замену таких популярных утилит,
как: hping, nmap, arpspoof, arp-sk, arping, tcpdump, tetheral, p0f и т.д. В то
же самое время Scapy позволяет выполнить любое, даже самое специфическое
задание, которое никогда не сможет сделать уже созданное другим разработчиком
средство. Вместо того чтобы писать целую гору строк на Си, чтобы, например,
сгенерировать неправильный пакет и сделать фаззинг какого-то демона, достаточно
накидать пару строчек кода с использованием Scapy ! У программы нет
графического интерфейса, а интерактивность достигается за счет интерпретатора
Python. Чуть освоишься, и тебе уже ничего не будет стоить создать некорректные
пакеты, инжектировать нужные фреймы 802.11, совмещать различные подходы в атаках
(скажем, ARP cache poisoning и VLAN hopping) и т.д. Разработчики сами настаивают
на том, чтобы возможности Scapy использовались в других проектах. Подключив ее
как модуль, легко создать утилиту для различного рода исследования локалки,
поиска уязвимостей, Wi-Fi инжекции, автоматического выполнения специфических
задач и т.д.

packeth

Сайт:
Платформа: *nix, есть порт под Windows

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

Оригинал: Weekend Project: Analyze Your Network with Wireshark
Автор: Nathan Willis
Дата публикации: 29 октября 2010 г.
Перевод: В. Семененко
Дата перевода: июль 2011 г.

Введение

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

Wireshark написан на библиотеках GTK+ и имеет графический интерфейс (GUI). Но помимо GUI, есть консольная реализация программы по имени TShark , обладающая тем же функционалом, что и ее графический вариант. Так как программа очень популярна в качестве административного инструмента для анализа сетей, она имеется в репозиториях практически любого дистрибутива Linux. Есть версии программы под Windows и Mac OS X. Если по каким-либо причинам вы не смогли найти ее в своих репозиториях Linux, всегда можно скачать готовые сборки под различные дистрибутивы с официального сайта. Или же скачать, собрать и установить программу из исходников.

Сразу стоит обратить внимание, что запуск Wireshark необходимо производить с правами root , так как для перехвата трафика программе нужны привилегии суперпользователя для перехода в так называемый неразборчивый режим ("promiscuous mode "). Ядром Wireshark является библиотека libpcap , с помощью которой и производится перехват данных. Программа имеет встроенную поддержку очень большого количества сетевых устройств. Проверить , будет ли ваша сетевая карта работать под этой программой, можно на странице wiki проекта Wireshark . Но практически все современные Ethernet и Wifi карты не имеют каких-либо проблем с совместимостью в этой программе.

Перехват трафика

Запуск новой сессии перехвата производится в окне программы из меню "Capture ". Чтобы увидеть весь список сетевых интерфейсов, которые смогла обнаружить Wireshark , перейдите по пути в меню "Capture > Interfaces ". Появится диалоговое окно, в котором, помимо физических устройств, будет присутствовать псевдо-устройство "any ", которое перехватывает данные со всех других устройств этого списка.
Перед началом можно задать некоторые опции, с которыми будет запускаться перехват. Перейдя по "Capture > Options ", достаточно выбрать:

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

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

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

Для анализа любого полученного пакета достаточного выбрать его в окне логов. Однако, делать это целесообразно после остановки перехвата данных. Подробная деталировка интересующего пакета будет представлена в отдельном древовидном окне, в котором все его составляющие будут рассортированы по сетевым уровням. К примеру, если у вас есть проблемы с Ethernet, вам нужно анализировать Ethernet-фреймы; если же это протокол HTTP, то вам нужно "погружаться" в уровень протокола http.

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

Анализ данных

Система фильтров является основным способом преобразования полученных данных в нужный вам формат. Для того, чтобы выбрать нужный фильтр, щелкните на кнопке "Filter " в окне программы. Появится окно с опциями на выбор: только TCP; только UDP; все IP-адреса, кроме локальных; все, кроме DNS и ARP; и многие другие. При выборе любого фильтра из списка в окне синтаксиса Wireshark будет отображена полная команда, представляющая собой фильтр в его "развернутом" виде. Это полезно для изучения синтаксиса Wireshark при написании собственных фильтров.

Например, фильтр "Не получать данные по протоколу HTTP и SMTP с адреса 192.168.0.1 " будет выглядеть следующим образом:
not (tcp.port == 80) and not (tcp.port == 25) and ip.addr == 192.168.0.1
Щелкните кнопку "Применить " ("Apply ") и Wireshark отфильтрует в главном окне перехваченные им данные. Конечно, вы можете написать и затем сохранить свой собственный фильтр, нажав кнопку "Расширения " ("Expression "); Wireshark позволяет вручную выбрать логические операторы и известные поля, которые вы можете использовать при составлении своих собственных фильтров.

Меню "Анализ " ("Analyze ") содержит набор более сложных заранее предустановленных опций фильтрации.

1 ."Enable Protocols " предоставляет вам возможность включить или отключить протоколы;
2 ."Specified Decodes " позволяет декодировать определенные протоколы, что может быть полезным при диагностике конкретно выбранного приложения;
3 ."Follow TCP Stream " поможет выбрать отдельное соединение по TCP-протоколу и проследить его состояние от начала и до конца; подобные опции имеются для UDP и SSL-соединений;
4 ."Expert Infos " извлекает сообщения об ошибках и флаги предупреждения (такие, как потерянный или не в очереди сегмент) для быстрого обнаружения проблемы.

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

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

Начало анализа

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

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

Обучающие материалы по этой программе на сайте проекта Wireshark являются незаменимым подспорьем. Wiki имеет несколько страниц, посвященных основным проблемам сети , а также ссылки на другие источники с подобной информацией. Представлена информация по другим программам сетевого анализа и анализа безопасности, таким как Nagios , NMap и tcpdump . Большинство исследований проблем в сети требуют понимания сути стеков протокола TCP/IP, поэтому одна или две хорошие книги по этой тематике потребуются наверняка.

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

Экстра возможности: визуализация, альтернативные перехваты

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

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

Wireshark может экспортировать захваченные данные в файл формата CSV, который в дальнейшем вы можете открыть в любом другом приложении, например, в обыкновенной электронной таблице, наподобие Gnumeric или OpenOffice , или в таком статистическом пакете, как или gnuplot . Хорошие приложения для анализа вы можете найти на forensicswiki.org . Список этих приложений постоянно меняется. К примеру, популярный движок анализа Freebase Gridworks был преобразован в проект Google Refine , который может визуализировать сетевой трафик значительно более удобным способом.

И последнее, но не менее важное. Хотя Wireshark почти всегда позиционируется как сетевой инструмент для анализа, правда заключается в том, что он может анализировать и другие устройства, такие как USB -трафик и даже Unix-сокеты между приложениями.

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