Как использовать Wireshark для захвата и анализа пакетов
Введение
Wireshark (ранее Ethereal) — свободное открытое ПО для анализа сетевых протоколов. Его используют для поиска и устранения сетевых проблем, изучения взаимодействия протоколов (TCP, DNS, HTTP, TLS и др.), обучения и аудита безопасности. Wireshark выделяется такими возможностями:
- Захват пакетов в реальном времени и последующий оффлайн-анализ.
- Представление уровня протоколов в человекочитаемом виде.
- Цветовые правила для быстрого визуального различения типов трафика.
Определение в одну строку
- Захват пакетов: процесс перехвата сетевых пакетов, проходящих через интерфейс, для анализа.
В этом руководстве используется Kali Linux как пример платформы, но инструкции действительны для большинства дистрибутивов Linux, Windows и macOS с учётом прав доступа.
Important: для захвата пакетов часто требуются права root или соответствующие привилегии. На Kali Wireshark обычно запускают с правами пользователя, которому разрешён доступ к захвату (capabilities) или от root.
Быстрый обзор интерфейса и запуск захвата
После запуска Wireshark вы увидите список доступных сетевых интерфейсов для захвата.


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

Promiscuous mode показывает все пакеты, проходящие через интерфейс, а не только адресованные вашему хосту. По умолчанию режим включён. Для настройки: меню Capture > Options и отметьте Enable promiscuous mode on all interfaces.

Чтобы остановить захват, нажмите красный квадрат в левом верхнем углу. Для сохранения файла выберите File > Save, для открытия ранее сохранённого — File > Open.
Цветовая кодировка Wireshark
Wireshark использует цвета для визуальной группировки пакетов: например, светло-голубой для UDP, фиолетовый для TCP, чёрный для ошибок. Настроить или посмотреть правила можно через View > Coloring Rules.
Notes: цветовая схема — вспомогательный инструмент, не заменяющий фильтры.
Фильтрация пакетов: захватные и дисплейные фильтры
Важно различать два типа фильтров:
- Захватные фильтры (capture filters) применяются до записи пакетов на диск. Они используют синтаксис BPF (Berkeley Packet Filter) и ограничивают объём данных. Пример: capture filter для порта 80:
port 80- Дисплейные фильтры (display filters) применяются уже к загруженному захвату и имеют более богатый синтаксис, специфичный для Wireshark. Пример дисплейного фильтра для TCP к конкретному IP:
ip.dst == 192.168.18.161 && tcpПрактические примеры дисплейных фильтров:
- Все TCP-пакеты:
tcp- Все UDP-пакеты, направленные на порт 53 (DNS):
udp.port == 53- Пакеты с IP-источником 10.0.0.5:
ip.src == 10.0.0.5- HTTP-запросы (отрисовка на основе http.request):
http.request- TLS-соединения (адаптируйте для старых версий):
tls || sslTip: захватные фильтры следует применять, когда требуется уменьшить объём записываемых данных или соблюдать правила конфиденциальности.
Пример: тест-драйв захвата и анализа
Следуйте этим шагам для практики.
- Запустите Wireshark и выберите интерфейс в списке. Нажмите на иконку захвата или дважды щёлкните по интерфейсу.
- Откройте браузер и загрузите страницу, например www.howtoforge.com.
- Остановите захват, нажав красную кнопку.
- В таблице вы увидите набор пакетов, переданных вашему хосту и отправленных им. Разные протоколы будут подсвечены разными цветами.

Для поиска TCP-пакетов используйте строку фильтра: введите tcp и нажмите Enter.
Чтобы отфильтровать пакеты, направленные на ваш хост, используйте:
ip.dst == 'your_system_ip' && tcpЗамените ‘your_system_ip’ на реальный IP, например 192.168.18.161.

- Для просмотра полного потока TCP: правый клик на пакете -> Follow -> TCP Stream. Откроется окно с текстовой реконструкцией трафика.

Важно: если трафик зашифрован (TLS), содержание будет недоступно без соответствующих ключей.
Исследование пакетов: уровни и поля
Когда вы кликаете по пакету, окно ниже показывает расшифровку по уровням (Frame, Ethernet, IP, TCP, приложение). Правая часть окна часто содержит байтовую панель, где видно сырые данные.
Практическая альтернатива: правый клик по полю -> Apply as Filter -> выберите направление (selected, not selected, etc.) для быстрого создания фильтра.

Полезные возможности Wireshark для глубокого анализа
- Statistics > Conversations — диаграмма соединений между парами адресов.
- Statistics > Protocol Hierarchy — доли протоколов в захвате.
- Statistics > Endpoints — список конечных узлов и объёмы переданных данных.
- Statistics > IO Graphs — визуализация трафика во времени.
- Analyze > Expert Information — подсказки о проблемах (повторные передачи, ошибки).
- File > Export Objects > HTTP — извлечение файлов из HTTP-потока.
Эти инструменты ускоряют задачу: где искать «шум», какие IP — ключевые, есть ли потеря пакетов или повторные передачи.
Когда Wireshark бесполезен или ограничен
- Шифрованные протоколы без ключей (HTTPS/TLS) не раскроют полезного содержимого. Для расшифровки нужно иметь приватные ключи сервера или использовать механизм TLS key logging в клиенте.
- Высокоскоростные сети и объёмные захваты могут привести к потерям пакетов при захвате: используйте capture filters, выделенный хост для захвата или аппаратные средства зеркалирования порта (SPAN).
- Если у вас нет прав на захват — инструмент не поможет.
Альтернативные инструменты и комбинации
- tcpdump — лёгкий консольный захват на основе BPF. Удобен для быстрой записи.
- tshark — консольная версия Wireshark для автоматизации и скриптов.
- ngrep — текстово-ориентированный поиск по пакетам.
- Specialized appliances и потоковый анализ (NetFlow/IPFIX) для долгосрочного мониторинга.
Комбинируйте: используйте tcpdump для длительного захвата с фильтром, затем анализируйте файл в Wireshark.
Практический план расследования инцидента — Playbook
- Подготовка
- Уточнить цель: какие протоколы, периметр, подозрительные IP.
- Определить интерфейс для захвата и права доступа.
- Захват
- Установить capture filter для уменьшения объёма (например, host 10.0.0.5 and tcp).
- Запустить запись в файл с ротацией по размеру.
- Первичный анализ
- Посмотреть Protocol Hierarchy, Conversations, Endpoints.
- Использовать Display Filters для сужения области поиска.
- Глубокий анализ
- Follow TCP Stream, Export Objects для извлечения содержимого.
- Проверить повторы, задержки, RST и FIN.
- Отчёт и действия
- Экспорт сохранить в pcap, создать снимки экранов и краткое резюме найденного.
Критерии приёмки
- Захват содержит интересующий временной интервал и совпадающие IP/порты.
- Ошибки (RST, duplicate ACK) задокументированы.
- Извлечённые объекты сопоставлены с подозрительной активностью.
Роль-based чеклисты
Сетевой администратор:
- Убедиться в корректности capture filter и отсутствии потерь во время захвата.
- Проверить конфигурацию зеркалирования порта если нужно.
Инцидент-аналитик:
- Фокус на необычных соединениях, объёмах данных и нестандартных портах.
- Экспортировать предметы доказательств: pcap, извлечённые файлы.
Разработчик:
- Отслеживать специфические протоколы приложения, воспроизводить запросы через cURL/HTTPie.
Snippets и быстрые фильтры — шпаргалка
- Все пакеты между двумя хостами:
(ip.src == 10.0.0.5 && ip.dst == 10.0.0.8) || (ip.src == 10.0.0.8 && ip.dst == 10.0.0.5)- Все пакеты к/от порта 22 (SSH):
ssh || tcp.port == 22- TCP-поток с определённым идентификатором:
tcp.stream == 5- DNS-запросы или ответы:
dns- HTTP-ответы с кодом 500:
http.response.code == 500Критические советы по производительности
- Используйте ring buffer и ограничение размера файла при длительном захвате (File > Capture Options).
- Для минимизации потерь применяйте фильтр capture вместо дисплейного.
- Рассмотрите аппаратное зеркалирование портов на коммутаторе для пассивного захвата.
Безопасность и соответствие требованиям конфиденциальности
- При захвате трафика могут записываться персональные данные. Убедитесь, что вы соблюдаете внутренние политики и законы о защите данных (например, GDPR для ЕС).
- Ограничьте доступ к pcap-файлам и храните их в зашифрованном хранилище, если в них есть чувствительные данные.
Тест-кейсы и приёмка
- Тест 1: Захватить HTTP-запрос к тестовому сайту, подтвердить, что Follow TCP Stream восстанавливает тело запроса и ответа.
- Тест 2: Запустить захват с capture filter host X и убедиться, что файл не содержит пакетов с другими адресами.
- Тест 3: Сымитировать сбой соединения (RST) и убедиться, что Statistics > Expert Information помечает проблему.
Глоссарий одной строкой
- pcap: формат файла с захваченными пакетами.
- BPF: синтаксис для захватных фильтров (Berkeley Packet Filter).
- Display filter: фильтр, применяемый в Wireshark к отображаемому набору пакетов.
Заключение
Wireshark — индустриальный стандарт для анализа сетевого трафика. Он полезен системным администраторам, специалистам по безопасности и разработчикам для диагностики, расследований и обучения. Понимание разницы между capture и display фильтрами, умение правильно настроить захват и применять статистические инструменты Wireshark значительно ускоряет поиск корневой причины сетевых проблем.
Summary: практикуйтесь на тестовых pcap, комбинируйте tcpdump для длительного сбора и Wireshark для детального анализа, соблюдайте правила безопасности при работе с захватами.
Похожие материалы
Переменные окружения в Docker — как передать
Throwaway‑аккаунт на Reddit: как создать и обезопасить
Сделать Excel по умолчанию на Mac
Как менять стандартные приложения в iOS 14
Как написать и опубликовать мемуары