Оригинал: Wireshark for Network analysis
Автор: Riccardo Capecchi
Дата публикации: 22 сентября 2010 г.
Перевод: А.Панин
Дата публикации перевода: 27 ноября 2012 г.
Автор: Riccardo Capecchi
Дата публикации: 22 сентября 2010 г.
Перевод: А.Панин
Дата публикации перевода: 27 ноября 2012 г.
Wireshark
Программа Wireshark (ранее программа была известна под названием Ethereal) стала стандартом де-факто при исследовании сетей и анализе протоколов среди приложений с открытым исходным кодом. Она предоставляет возможность проводить низкоуровневую фильтрацию пакетов и их анализ. Файлы с захваченными данными из сети (trace files) могут быть открыты в Wireshark и рассмотрены вплоть до каждого пакета.
Некоторые примеры использования программы Wireshark:
- Администраторы сетей используют ее для выявления причин неполадок в сетях.
- Специалисты по безопасности сетей используют ее для поиска проблем с безопасностью.
- Разработчики используют ее для отладки реализаций протоколов.
- Пользователи используют ее для изучения принципов работы сетевых протоколов.
Помимо этих примеров, Wireshark может помочь и в других ситуациях.
Установочные пакеты Wireshark доступны в официальном репозитории Ubuntu 10.04 (пакеты доступны также для более поздних версий Ubuntu и других популярных дистрибутивов - прим.пер.), поэтому для установки потребуется всего лишь использовать команду:sudo aptitude install wireshark.
Как только установка завершится, запустите программу из терминала при помощи команды sudo wireshark; да, в этом случае программа будет выполняться с правами пользователя root, что является не самым безопасным решением, но альтернативный вариант запуска без прав суперпользователя требует множества действий по конфигурации системы, с ним вы можете познакомиться по ссылке (работает только в Linux).
После запуска программы вы увидите на экране главное окно программы:
Под заголовком "Interface List" вы должны увидеть список всех сетевых интерфейсов вашей системы, для начала захвата пакетов достаточно просто выбрать интересующий вас интерфейс при помощи клика, после чего вы увидите пакеты, проходящие через интерфейс в новом окне.
Очень частой проблемой при работе со стандартными настройками является то обстоятельство, что пользователю предоставляется огромный объем информации, а интересующую информацию становится очень сложно найти.
Большой объем информации уводит из поля зрения нужную информацию.
По этой причине фильтры так важны, ведь они могут помочь нам с поиском необходимой информации в обширном журнале данных:
- Фильтры захвата: используются для указания на то, какие данные должны записываться в журнал данных. Эти фильтры задаются до начала захвата данных.
- Фильтры отображения: используются для поиска внутри журнала данных. Эти фильтры могут быть изменены в процессе захвата данных.
Так что же использовать: фильтры захвата или фильтры отображения?
Задачи этих фильтров отличаются.
Фильтр захвата используется в первую очередь для сокращения объема захваченных данных с целью предотвращения чрезмерного увеличения в объеме журнала данных.
Фильтр отображения является более мощным (и сложным); он позволяет вам искать именно те данные, которые вам необходимы.
Фильтры захвата
Синтаксис фильтров захвата аналогичен синтаксису фильтров программ на основе библиотек libpcap (Linux) или winpcap (Windows), таких, как известная программа TCPdump. Фильтр захвата должен быть задан до начала захвата пакетов при помощи Wireshark, в этом состоит отличие от фильтров отображения, которые можно редактировать в любое время в течение процесса захвата.
Следующие шаги позволяют настроить фильтр захвата:
- В меню окна выберите пункт "Capture -> options".
-Заполните текстовое поле "Capture filter" или нажмите на кнопку "Capture filter" для указания имени вашего фильтра с целью его повторного использования в последующих захватах данных.
-Нажмите кнопку "Start" для начала захвата данных.
Синтаксис:
Если вам необходим фильтр для какого-либо протокола, следует рассмотреть описание протоколов.
Для задания всех фильтров действителен следующий базовый синтаксис:
Протокол Направление Узел(узлы) Значение Логические_операции Другое_выражение
Примеры:
Захват трафика только с IP-адреса 172.18.5.4:
host 172.18.5.4
Захват трафика, идущего по двум направлениям для диапазона IP-адресов:
net 192.168.0.0/24
или
net 192.168.0.0 mask 255.255.255.0
Захват трафика, идущего по направлению от узлов из диапазона IP-адресов:
src net 192.168.0.0/24
или
src net 192.168.0.0 mask 255.255.255.0
Захват трафика, идущего по направлению к узлам из диапазона IP-адресов:
dst net 192.168.0.0/24
или
dst net 192.168.0.0 mask 255.255.255.0
Захват только трафика от DNS (порт 53):
port 53
Захват трафика, не относящегося к протоколам HTTP и SMTP на вашем сервере (выражения эквивалентны):
host www.example.com and not (port 80 or port 25) host www.example.com and not port 80 and not port 25
Захват трафика, не относящегося к протоколам ARP и DNS:
port not 53 and not arp
Захват трафика для диапазона портов:
(tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)
Захватывать пакеты от узла с IP-адресом 10.4.1.12 или из сети с адресом 10.6.0.0/16, после этого объединять результат со списком пакетов TCP, целевые порты которых находятся в диапазоне от 200 до 10000 и целевые адреса принадлежат сети 10.0.0.0/8.
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
Фильтры отображения
Wireshark использует фильтры отображения главным образом для фильтрации выводимых пользователю данных с использованием различных цветов в соответствии с правилами использования цветов.
Основные положения и синтаксис фильтров отображения описаны в руководстве пользователя.
Примеры:
tcp.port eq 25 or icmp
Показывать только трафик из локальной сети (192.168.x.x) между рабочими станциями и серверами без интернет-трафика:
ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16
Показывать случаи заполнения буфера TCP - в этом случае узел инструктирует удаленный узел о необходимости остановки передачи данных:
tcp.window_size == 0 && tcp.flags.reset != 1
Показывать только HTTP-запросы, в которых символы в конце строки запроса совпадают со строкой "gl=se":
http.request.uri matches "gl=se$"
Примечание: Символ $ является пунктуационным символом PCRE, который обозначает окончание строки, а в данном случае окончание поля http.request.uri. |
Фильтрация по протоколу (т.е. SIP) и фильтрация нежелательных IP-адресов:
ip.src != xxx.xxx.xxx.xxx && ip.dst != xxx.xxx.xxx.xxx && sip
С официальным руководством пользователя можно ознакомиться по ссылке.
Эта статья описывает лишь ту информацию, которая может пригодиться при знакомстве с Wireshark, для получения дополнительной информации следует обратиться к wiki проекта с огромным количеством полезных статей.
Использование фильтров в Wireshark
Оригинал: How to Use Filters with Wireshark
Автор: Riccardo Capecchi
Дата публикации: 19 марта 2012 г.
Перевод: А.Панин
Дата публикации перевода: 28 ноября 2012 г.
Автор: Riccardo Capecchi
Дата публикации: 19 марта 2012 г.
Перевод: А.Панин
Дата публикации перевода: 28 ноября 2012 г.
Некоторые люди считают искусство захвата и интерпретации пакетов, передающихся по сети таким же сакральным знанием, как чтение матрицы из одноименного фильма, но вам не нужно быть новым Нео для того, чтобы иметь возможность исследовать сетевой поток. Мощным союзником в этой миссии является Wireshark - программный инструмент для анализа сетевого трафика (описание программы Wireshark вы найдете в предыдущей статье того же автора).
Wireshark сочетает в себе несколько инструментов. Вы можете использовать эту программу для анализа структуры вашей беспроводной сети и поиска возможных ошибок в ее конфигурации. Она может идентифицировать множество типов инкапсуляции, при этом разделить и показать все поля, из которых состоит сетевой пакет. Она также работает как сниффер пакетов аналогично программе tcpdump.
Учитывая мощные возможности Wireshark, можно подумать, что будет сложно обучиться использовать эту программу. В каком-то смысле это так, но вы можете без лишних усилий разобраться с тем, как использовать часть фильтров из комплекта поставки программы, и сконцентрироваться на исследовании интересующих клиентов и видов трафика. В этой статье я продемонстрирую ряд вариантов использования Wireshark для облегчения ваших поисков.
Когда я говорю "фильтры", я имею в виду Фильтры Пакетов Беркли (Berkeley Packet Filters (BPF)). На самом деле BPF является микроязыком программирования (содержащим мнемоники на ассемблере!), выражения которого компилируются и выполняются в отношении пакетов, обрабатываемых такими программами, как tcpdump и Wireshark. Фильтры просто необходимы в том случае, когда вам хочется отделить небольшую часть пакетов из сотен тысяч пакетов, передающихся по сети с предельной скоростью 100 Мбит/с. Выражения фильтров компилируются, поэтому обработка пакетов происходит с максимально возможной скоростью, что очень важно при осуществлении захвата в реальном времени.
Фильтры в Wireshark достаточно просто использовать. Вам необходимо знать только названия полей для каждого протокола, такие, как http, icmp и ftp. Например, если вы хотите, чтобы были показаны только пакеты ICMP, вы можете просто написать icmp в строке фильтра в главном окне Wireshark. Если вы хотите выделить все пакеты, идущие в обоих направлениях относительно узла с адресом, к примеру, 10.100.1.1, выражение фильтра будет записано в форме ip.dst == 10.100.1.1 || ip.src == 10.100.1.1, что расшифровывается как указание показывать только те пакеты, поле адреса назначения (ip.dst) или (||) поле адреса источника (ip.src) IP-протокола для которых соответствует (==) 10.100.1.1.
Фильтры захвата и отображения
Wireshark поддерживает два типа фильтров. Фильтры захвата, как понятно из названия, используются для захвата части трафика, в то время как фильтры отображения могут применяться к захваченному трафику для показа только части пакетов в зависимости от использованного выражения. В этой статье поговорим об обоих типах фильтров.
Давайте начнем с установки Wireshark. Приложение доступно в виде бинарных пакетов для всех основных дистрибутивов, поэтому вы можете использовать ваш любимый менеджер пакетов: sudo apt-get install wireshark в Debian или Ubuntu, emerge wireshark в Gentoo или yum install wireshark в Red Hat или CentOS.
Давайте начнем с классического примера, демонстрирующего то, почему использование протокола FTP может считаться плохой идеей. Запустите Wireshark при помощи команды в терминале:
sudo wireshark
Вы можете начать захват трафика, перейдя на левую панель окна Wireshark и нажав кнопку "Capture/Interfaces". Выберите интерфейс, который "направлен в сеть" (например, eth1) и нажмите кнопку "Start", при этом Wireshark начнет исследование всех пакетов, передающихся в сети.
Теперь перейдите во второе окно терминала и установите обычную сессию FTP. Введите имя пользователя и пароль, выполните несколько команд FTP, после чего закройте сессию. Вернитесь к окну Wireshark, в котором вы должны увидеть множество пакетов, переданных по сети с момента начала захвата. Нажмите на кнопку "Stop Capture" (или используйте сочетание клавиш Ctrl+E); после этого вы можете исследовать полученный трафик.
Понять "что есть что" в большом объеме захваченного трафика не так просто до того момента, как вы используете фильтр BPF. Хотелось бы сделать так, чтобы были показаны только пакеты, участвующие в работе FTP-соединения, поэтому в поле фильтра следует просто написать "ftp". Незамедлительно после этого будет выделен трафик, относящийся к вашей сессии FTP и в качестве потрясающей демонстрации проблем с безопасностью, вы сможете увидеть ваше имя пользователя и пароль. Вывод будет похож на следующий:
356 101.676753 10.100.1.1 192.168.0.4 FTP 86 Response: 220 (vsFTPd 1.1.3) 360 104.546659 192.168.0.4 10.100.1.1 FTP 77 Request: USER wazi 362 104.594520 10.100.1.1 192.168.0.4 FTP 100 Response: 331 Please specify the password. 366 106.530150 192.168.0.4 10.100.1.1 FTP 77 Request: PASS mytest 371 108.922240 10.100.1.1 192.168.0.4 FTP 88 Response: 530 Login incorrect.
Если результат этого исследования не склонил ваших коллег к отказу от использования FTP и переходу на OpenSSH, они безнадежны.
На этом заканчивается первая часть этой статьи, но если поднятая тема вас заинтересовала, не пропустите вторую часть
Как произвести захват трафика в Windows с помощью Wireshark?
Программа Wireshark использует для захвата сетевого трафика библиотеки libpcap или WinPcap для Windows. Библиотека WinPcap не поддерживает использование беспроводных сетевых карт, поэтому напрямую не позволяет захватывать Wi-Fi трафик с помощью Wireshark и других приложений, таких как Cain & Abel илиElcomsoft Wireless Security Auditor для Windows.
Ограничения WinPcap и Wi-Fi трафик в Wireshark
Ограничения по захвату пакетов Wi-Fi в Windows связаны с библиотекой WinPcap, а не с самой программой Wireshark. Ведь в Wireshark есть поддержка AirPcap — специализированных и достаточно дорогих Wi-Fi адаптеров, чьи драйвера поддерживают отслеживание сетевого трафика в режиме мониторинга в среде Windows, который часто называют захватом сетевого трафика в «неразборчивом» (promiscuous) режиме в сетях Wi-Fi.
Acrylic WiFi содержит собственный драйвер для захвата трафика с использованием технологии NDIS, захватывающий трафик в сети WiFi в режиме мониторинга в ОС Windows и позволяющий осуществлять захват беспроводного трафика с помощью Wireshark в Windows Vista, Windows 7, Windows 8 и Windows 8.1. С помощью этого драйвера можно автоматически обеспечить другим программам для анализа Wi-Fi-трафика возможность захвата данных в беспроводных сетях под Windows.
NDIS-драйвер и интерфейсы WiFi в Wireshark
Для обеспечения этого взаимодействия Acrylic устанавливает на компьютер собственную библиотеку airpcap.dll, эмулирующую библиотеку оригинальной карты AirPcap. Когда Wireshark загружает соответствующую системную библиотеку AirPcap от Acrylic, библиотека возвращает фиктивный список установленных устройств AirPcap, по одной записи для каждой внутренней карты Wi-Fi или внешнего USB-адаптера Wi-Fi.
С помощью этого метода мы можем использовать выбранный нами анализатор сетевого трафика и просматривать Wi-Fi трафик в Wireshark. Дважды щелкнув на сетевом интерфейсе, можно попасть в его настройки и убедиться, что для данного сетевого интерфейса отображается заголовок Radiotap, включающий информацию об уровне сигнала для захваченных пакетов.
Нажав на кнопку «Настройки беспроводной сети» (“Wireless settings”), можно выбрать дополнительные параметры, такие как канал Wi-Fi для мониторинга и включить проверку FCS. FCS — это проверочная последовательность кадров (Frame Check Sequence), позволяющая определить целостность пакетов Wi-Fi и отбросить некорректно переданные пакеты.
Захват Wi-Fi трафика с помощью Wireshark в ОС Windows
Итак, после установки Acrylic WiFi запустите Wireshark от имени администратора (щелкните правой кнопкой мыши на ярлыке Wireshark и выберите «Запуск от имени Администратора»), после чего выберите из списка карту, имеющую обозначение сетевого интерфейса NDIS. В нашем случае — это встроенная Wi-Fi карта DELL (Dell Wireless 1702/b/g/n)
Видеоинструкция по использованию Acrylic WiFi с Wireshark в ОС Windows
Мы подготовили видео с демонстрацией процесса, которое поможет, если у вас остались вопросы или если вы хотите увидеть, как происходит захват беспроводного трафика с помощью любой Wi-Fi карты в Wireshark для Windows.
Загрузите версию Acrylic WiFi Professional, включающую множество дополнительных функций для захвата трафика и обработки полученных данных. Вы можете попробовать программу бесплатно или приобрести ее, чтобы поддержать дальнейшую разработку (мы внедряем новые функции каждую неделю). Бесплатная версия Acrylic WiFi Free также поддерживает интеграцию с Wireshark. Ознакомьтесь со списком поддерживаемых карт для получения оптимальных результатов.
Wireshark
Содержание[убрать] |
Описание
Wireshark представляет собой анализатор сетевых протоколов с графическим интерфейсом. Программа позволяет просматривать и анализировать пакеты, полученные из сетевого интерфейса или ранее собранного файла.
Установка
Наиболее стабильную версию программы (v1.0.6-1.0.7) можно скачать по адресу компании-разработчика программы http://www.wireshark.org/download.html. Ход установки: Для установки программы необходимо запустить скачанный файл wireshark-setup-1.0.6.exe и в появившемся окне выбрать Next>.
Далее Вам необходимо согласить с выбранными по умолчанию компонентами, предложенными для установки:
Далее соглашаемся с выбранными параметрами установки программы и выбираем путь для инсталляции:
Процесс установки начался, далее инсталлятор попросит установить WinPcap 4.0.2 – соглашаемся:
Для завершения процесса инсталляции программы нажмите Finish:
Первый запуск и начало работы с программой
Для начала сборки перехваченных программой пакетов сообщений по сети, Вам необходимо выбрать пункт главного меню Capture>Interfaces или кнопку на верхней панели инструментов List the available capture interfaces – после этого на экране появится следующее диалоговое окно:
С помощью кнопки Options возможна установка желаемых параметров работы программы. Для того, чтобы начать процедура захвата, Вам необходимо нажать кнопку Start, после чего интерфейс программы примет следующий вид:
Как видно из изображения, подобно другим анализаторам протоколов, окно Wireshark включает в себя 3 области просмотра с различными уровнями детализации. Верхнее окно содержит список собранных пакетов с кратким описанием, в среднем окне показывается дерево протоколов, инкапсулированных в кадр. Ветви дерева могут быть раскрыты для повышения уровня детализации выбранного протокола. Последнее окно содержит дамп пакета в шестнадцатеричном или текстовом представлении. Программа Wireshark представляет пользователю ряд уникальных возможностей, не поддерживаемых другими анализаторами протоколов. Программа обеспечивает возможность сбора всех пакетов заданного соединения TCP и представления данных в удобном для просмотра формате.
Возможности программы
Рассмотрим возможности программы более подробно. В верхней панели по умолчанию выводится 6 колонок – номера пакета в списке собранных, временная метка, адреса и номера портов отправителя и получателя, тип протокола и краткое описание пакета. Выбрав необходимый пакет из списка, содержащейся в верхней панели, мы можем просмотреть содержимое средней панели. В ней представлено дерево протоколов для пакета. Дерево отображает каждое поле и его значение для заголовков всех протоколов стека:
С помощью программы Wireshark Вы можете контролировать пакеты, проходящие по протоколу НТТР. Приведем пример вычисления имени пользователя и пароля при входе в почту. Для этого необходимо предварительно произвести процедуру входа в почтовый ящик и запуск программы в режиме захвата пакетов сообщений. После этого для удобства желательно произвести сортировку по протоколам при помощи нажатия на колонку Protocol. Далее, выбрав любой пакет, у которого установлено значение Protocol - НТТР, кликнуть правую кнопку мыши, в контекстном меню нажать Conversation filter>IP, тем самым выбрав фильтрацию списка пакетов только данного перечня адресов отправителя и получателя:
Далее возможно отфильтровать пакеты сообщений, выбрав только пакеты протокола НТТР – для этого выберем любой пакет протокола НТТР и кликнем правую кнопку мыши и в контекстном меню выберем Conversation filter>Ethernet. Теперь у нас в верхнем окне остались только пакеты протокола НТТР. Для оптимизации поиска нужного пакета, воспользуемся пунктом главного меню Edit>Find Packet:
В появившемся диалоговом окне выбираем Find by string и указываем название строки с адресом страницы почтового ящика:
С помощью системы поиска проверяем пакеты, соответствующие адресации и в дереве протоколов находим в ветви Line-based text data значения Login, Domain, Password.
Wireshark предоставляет возможность пользователю сохранять файлы данных (изображения, CSS и др.) на жесткий диск из просмотренных ранее страниц в Интернете. Для этого необходимо в главном меню программы выбрать File>Export>Objects>HTTP:
В появившемся списке НТТР object list выбираем необходимый файл и нажимаем Save As:
Далее программа предложит нам выбрать путь для сохранения файла на диск:
Дополнительные параметры
В анализаторе протоколов Wireshark возможна маркировка при помощи установки курсора на нужный пакет и выбора в контекстном меню после нажатия правой кнопки мыши Mark Packet. Далее возможен быстрый поиск маркированного Вами пакета при помощи главного меню Edit>Find Next Mark:
Программе предусмотрена возможность экспорта суммарной информации о пакетах и дереве протоколов в файл формата .txt при помощи главного меню File>Export>File:
Полученный текстовый файл:
Программа обладает большим набором вывода статистических данных о захваченных пакетах сообщений. Так, можно вывести общую таблицу иерархии протоколов при помощи пункта главного меню Statistics>Protocol Hierarchy:
Для наглядного представления результатов выполнения захвата пакетов и сборки кадров в программе имеется возможность отображения данной информации в виде графика передачи пакетов в единицу времени. Для отображения данного графика необходимо воспользоваться пунктом главного меню Statistics>IO Graphs:
No comments:
Post a Comment