Wireshark для пентеста

Дата: 29.04.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Wireshark для пентеста

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

Что такое Wireshark?

Wireshark – это популярный анализатор сетевых пакетов и протоколов с открытым исходным кодом. Он имеет большое значение для специалистов по безопасности и системных администраторов. Инструмент используется для анализа структуры различных сетевых протоколов и имеет практическое значение. Wireshark способен работать на различных платформах, таких как Windows, Unix, Linux; он использует инструментарий виджетов GTK+ или PCAP для захвата пакетов. Программа также имеет бесплатные версии программного обеспечения на базе терминалов, такие как Tshark. По своему функционалу инструмент очень похож на tcpdump, разница лишь в том, что он поддерживает графический пользовательский интерфейс (GUI) и имеет функции выставления фильтров для просмотра информации.

Характерные черты

Wireshark обладает следующими характерными чертами:

  • Может работать в UNIX и Windows.
  • Осуществляет захват данных пакетов в режиме реального времени из сетевого интерфейса.
  • Открывает файлы, содержащие захваченные пакетные данные (файлы PCAP).
  • Производит импорт пакетов из текстовых файлов, содержащих шестнадцатеричные дампы.
  • Имеет фильтры отображения информации, которые используются для фильтрации и организации полученных данных.
  • Показывает пользователю пакеты с подробной информацией о протоколе.
  • Новые протоколы можно тщательно изучить, если создать плагины.
  • Захваченный трафик можно отслеживать с помощью Voice Over IP (VOIP) по сети.
  • Пользователь способен произвести импорт некоторых или всех пакетов в различные форматы файлов захвата.
  • Есть фильтры пакетов по многим критериям.
  • Осуществляет поиск пакетов по многим критериям.
  • Можно установить определенный цвет для пакета данных в зависимости от его состояния.
  • Есть возможность просматривать статистические данные.

Установка Wireshark

Для Windows

Wireshark можно бесплатно скачать с официального сайта программы как для Windows, так и для macOS.

Wireshark для пентеста

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

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

Wireshark для пентеста

Для Linux

Wireshark также доступен для установки на Linux и другие UNIX-подобные платформы, включая Red Hat иFreeBSD.

Чтобы скачать Wireshark, пользователь откроет терминал и введет следующую команду:

apt install wireshark
Wireshark для пентеста

Необходимо нажать на клавишу «Y», когда будет нужно, чтобы установить программу и предоставить ей достаточно свободного места. Во время установки пользователю будет задан вопрос: «Могут ли не суперпользователи захватывать пакеты?». В целях безопасности рекомендуется разрешать доступ к Wireshark только суперпользователям. В данном случае пользователь выбирает вариант «Да». Установка Wireshark продолжается. Ура! Как видно, программа была успешно установлена.

Wireshark для пентеста

Необходимо ввести следующий код для проверки установочного пакета Wireshark:

apt show Wireshark
Wireshark для пентеста

Чтобы открыть Wireshark, следует выполнить следующую команду. Инструмент откроется в таком виде, как показано ниже на картинке.

Wireshark
Wireshark для пентеста

Всякий раз, когда пользователь будет запускать Wireshark, перед ним будет появляться такое изображение.  

Wireshark для пентеста

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

Знакомство с пользовательским интерфейсом Wireshark

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

В этой части статьи будет рассказано о том, как:

  • устроен интерфейс Wireshark;
  • просматривать и захватывать пакеты;
  • выполнить анализ трассировки;
  • фильтровать пакеты.

Пользователь может открыть Wireshark с помощью диспетчера программ Windows, выполнив поиск программы. Его также можно запустить через командную строку, введя «Wireshark» после адреса соответствующего каталога.

Главный экран

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

Wireshark для пентеста

Главный экран Wireshark состоит частей, которые обычно называются программами GUI.

  1. «Меню» необходимо для выполнения действий.
  2. «Главная панель инструментов» предоставляет пользователю быстрый доступ к часто используемым параметрам меню.
  3. «Панель с фильтрами» дает пользователю возможность установить определенные фильтры отображения для того, чтобы просмотреть нужные пакеты.
  4. На панели «Список пакетов» можно просмотреть подробную сводку данных по каждому захваченному пакету.
  5. «Сведения о пакетах» показывает пользователю информацию о пакете, выбранном из списка.
  6. На панели «Байты пакетов» отображаются данные из пакета, выбранного ранее, а также выделены сведения о нем.
  7. В строке «Состояние» отображается подробная информация о текущем состоянии программы и захваченных данных.

Меню

Главное меню Wireshark расположено в верхней части главного экрана (Windows, Linux).

Wireshark для пентеста

Главное меню содержит следующие разделы:

File

Данный раздел включает в себя опции для открытия и объединения файлов захвата, сохранения, печати или их экспорта в различных форматах.

Edit

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

View

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

Go

С помощью данного раздела пользователь может перейти к определенному пакету.

Capture

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

Analyze

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

Statistics

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

Statistics -> Protocol Hierarchy

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

Statistics -> Conversations

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

Statistics -> Flow Graph

  • Здесь виден график последовательности отправки данных в выбранном трафике.
  • Информация будет полезна для понимания расчетов seq. и ack.
Wireshark для пентеста

Telephony

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

Wireless

Этот раздел содержит параметры для отображения статистики беспроводной связи Bluetooth и IEEE 802.11.

Tools

В этом разделе есть различные инструменты, доступные в Wireshark, такие как Firewall ACL Rules.

Help

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

Главная панель инструментов

Главная панель инструментов обеспечивает пользователю быстрый доступ к часто используемым элементам меню. Она может быть настроена в соответствии с имеющимися требованиями.

Wireshark для пентеста

Доступные функции описаны ниже (см. картинки).

Wireshark для пентеста
Wireshark для пентеста

Источник

Панель с фильтрами

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

Wireshark для пентеста

Доступные функции описаны ниже (см. картинку).

Wireshark для пентеста

Список пакетов

В меню «Список пакетов» показаны все пакеты в том порядке, в котором они были записаны.

Wireshark для пентеста

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

Есть много доступных столбцов с данными, такими как:

  • No: Номер пакета в файле захвата. Это число не изменится, даже если используется фильтр отображения.
  • Time: В этом столбце отображается отметка времени, когда был захвачен пакет. Формат представления этой временной метки может быть изменен.
  • Source: Источник, откуда был получен пакет.
  • Destination: Адрес, по которому отправляется этот пакет.
  • Protocol: Протокол самого высокого уровня, который может быть обнаружен Wireshark.
  • Length: Длина каждого пакета в байтах.
  • Info: Дополнительная информация о содержимом пакета.

Сведения о пакетах

На данной панели сведений отображается выбранный или текущий пакет с подробной информацией о нем.

Wireshark для пентеста

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

Байты пакетов

На панели «Байты пакетов» отображаются данные выбранного или текущего пакета в виде шестнадцатеричного дампа.

Wireshark для пентеста

Каждая строка содержит смещение данных, шестнадцать шестнадцатеричных байтов и шестнадцать байтов ASCII. Непечатаемые байты заменяются точкой «.».

Состояние

На панели «Состояние» отображаются информационные сообщения, такие как:

blank

The colourized bullet

В левой части экрана есть экспертная информация о загруженном в данный момент файле захвата. Наведение курсора мыши на «The colourized bullet» предоставит возможность просмотреть полученные данные.

The edit icon

Позволяет добавить комментарий к файлу захвата.

The middle

Он показывает текущее количество пакетов в файле захвата. Отображаются следующие значения:

Packets

Количество захваченных пакетов.

Displayed

Количество текущих пакетов.

Marked

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

Dropped

Количество «отброшенных» пакетов. Показывается только в том случае, если Wireshark не удалось захватить какие-то пакеты.

Ignored

Показывает количество проигнорированных пакетов.

The right side

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

blank

Захват пакетов

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

Кроме того, если интерфейс уже известен, можно запустить Wireshark с помощью командной строки, выполнив следующую команду:

wireshark -I eth0 -k

Это запустит захват Wireshark на интерфейсе eth0.

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

Wireshark имеет два языка фильтрации:

  • Фильтры захвата
  • Фильтры отображения

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

Фильтры отображения

Панель «Фильтров отображения» располагается прямо над разделом отображения столбцов. Чтобы просмотреть только те пакеты, которые содержат в себе определенный протокол, нужно выбрать его на панели инструментов Wireshark. Программа предлагает список фильтров на основе введенного текста.

Например, чтобы отобразить только TCP-пакеты, следует ввести «tcp» на панели инструментов «Фильтров отображения» Wireshark.

blank

Аналогично, чтобы просмотреть только те пакеты, которые содержат определенные запросы, нужно ввести их название на панели инструментов «Фильтров отображения» Wireshark. Например, чтобы просмотреть только HTTP-запросы, следует ввести «http.request».

blank

Аналогичный пример фильтра отображения Wireshark, принимающего определенное выражение, представлен здесь. Стоит ввести DNS и ip.addr !=10.96.203.66.

blank

Как можно заметить, захваченные пакеты имеют разные цвета. Итак, для чего они нужны?

  • Серый – TCP-пакеты
  • Черный с красными буквами – TCP-пакеты с ошибками
  • Зеленый – HTTP-пакеты
  • Светло-синий – пакеты UDP
  • Бледно-голубой – пакеты ARP
  • Лавандовый – пакеты ICMP
  • Черный с зелеными буквами – ICMP-пакеты с ошибками

Примечание: – Цвета могут быть изменены в разделе «View -> Colouring Rules».

Создание выражений для фильтров отображения

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

К примеру, для отображения пакетов только на IP-адресе 10.96.200.253 или с него следует использовать комбинацию символов, цифр и знаков «ip.addr==10.96.200.253». Фильтр отображения Wireshark применяет логические выражения, поэтому пользователь может указывать значения и связывать их вместе. Полный список доступных операторов сравнения приведен ниже.

blank

Полезные фильтры

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

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

Следует применить следующий фильтр: «http.request». Будут показаны все запросы HTTP Post. Кроме того, пользователь сможет найти общее количество пакетов в нижней части экрана Wireshark, которое равно значению 16.

http.request
blank

После этого, чтобы выявить все URL-адреса для HTTP-запросов, доменных имен, пользователь будет использовать следующее выражение.

http.request or ssl.handshake.type == 1

Значение «http.request» показывает пользователю все URL-адреса для HTTP-запросов. В «ssl.handshake.тип == 1» указываются доменные имена, применяемые в трафике HTTPS или SSL/TLS. Фильтрация с помощью этого фильтра отображения может помочь, если пользователь хочет комфортно просматривать веб-трафик.

blank

Изменяя типы фильтров, пользователь может детализировать инфекционный трафик.

Практика

Стоит разобраться с Wireshark с помощью вопросов.

Вопрос 1. Нужно узнать общее количество пакетов TCP syn для порта 80.

Ответ: – Чтобы найти все пакеты TCP syn, пользователь может использовать следующее выражение для быстрого просмотра веб-трафика для порта 80. Кроме того, он способен найти общее количество пакетов в нижней части экрана Wireshark, которое равно значению 4.

tcp.flags.syn == 1 and tcp.flags.ack == 0 && tcp.port == 80
blank

Вопрос 2. Следует отфильтровать весь пакет с кодом ответа http 200.

Ответ: – Значение «http.response» показывает пользователю все URL-адреса для ответов HTTP, а код состояния HTTP 200 означает успех проведенной работы. Клиент запросил документы с сервера. Сервер ответил клиенту и отправил ему документы.

http.response.code == 200
blank

Вопрос 3. Злоумышленник пытается загрузить вредоносный файл с сайта www.ethereal.com. Нужен фильтр для идентификации хоста http.

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

http.host=="www.ethereal.com”
Or http.host=="URL”
blank

Вопрос 4. Нужен фильтр, чтобы определить порт назначения 23.

Ответ: – Ответ довольно прост… для фильтрации порта назначения 23 можно использовать следующее выражение.

tcp.dstport == 23
blank

Вопрос 5. Отфильтровать пакеты mac-адреса.

Ответ: — Надо использовать следующее выражение, чтобы отфильтровать трафик конкретного mac-адреса.

eth.addr == 00:a0:cc:3b:bf:fa
eth.addr == “mac addr”
blank

Вопрос 6. Нужен фильтр, чтобы определить IP-адрес 10.96.203.66 для порта 80, также включая IP-адрес 10.121.1.161. Узнать общее количество пакетов.

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

ip.addr==10.96.203.66 and tcp.port==80 &&!(ip.addr==10.121.1.161)

Применяя этот фильтр, пользователь сможет легко узнать общее количество пакетов.

blank

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

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *