Фильтрация трафика в Wireshark

WiresharkWiresharkBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") subgraph Lab Skills wireshark/installation -.-> lab-549939{{"Фильтрация трафика в Wireshark"}} wireshark/interface -.-> lab-549939{{"Фильтрация трафика в Wireshark"}} wireshark/packet_capture -.-> lab-549939{{"Фильтрация трафика в Wireshark"}} wireshark/display_filters -.-> lab-549939{{"Фильтрация трафика в Wireshark"}} wireshark/export_packets -.-> lab-549939{{"Фильтрация трафика в Wireshark"}} end

Установка Wireshark

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

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

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

    sudo apt update
  2. Теперь установите Wireshark с помощью этой команды. Флаг -y автоматически подтверждает установку:

    sudo apt install -y wireshark
  3. Во время установки Wireshark спрашивает о доступе не от имени суперпользователя. Мы настроим это заранее с помощью debconf (система настройки Debian), чтобы разрешить обычным пользователям захватывать пакеты:

    echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
  4. Далее мы добавим вашего пользователя в группу 'wireshark'. Это предоставит необходимые разрешения без необходимости доступа от имени root:

    sudo usermod -aG wireshark $USER
  5. Давайте проверим, что установка прошла успешно, проверив версию. Это подтверждает, что Wireshark правильно установлен:

    wireshark --version

    Вы должны увидеть вывод, похожий на следующий:

    Wireshark 3.6.8 (Git v3.6.8 packaged as 3.6.8-1~ubuntu20.04.0)
  6. Изменения в членстве в группе требуют новой сессии входа. В обычной системе вы бы вышли из системы и снова вошли, но в LabEx просто откройте новую вкладку терминала, чтобы изменения вступили в силу.

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

Выбор сетевого интерфейса

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

  1. Сначала выведем список всех доступных сетевых интерфейсов на вашей системе с помощью встроенной команды Wireshark. Это поможет вам увидеть все возможные точки захвата перед выбором одного из них:

    wireshark -D

    Вы должны увидеть вывод, похожий на следующий:

    1. eth0
    2. any (Псевдо-устройство, которое захватывает трафик на всех интерфейсах)
    3. lo (Циклобайк (Loopback))

    В выводе показаны имена интерфейсов с номерами. 'eth0' обычно представляет физический Ethernet-порт, а 'lo' - используется для внутреннего циклического трафика.

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

    ip link show

    Эта команда отобразит все сетевые интерфейсы с их текущим состоянием (UP/DOWN). Интерфейс должен быть в состоянии UP для захвата трафика.

  3. В нашей лабораторной среде мы будем использовать интерфейс eth0, который обычно является основным Ethernet-интерфейсом в системах Linux. Перед его использованием проверим его состояние, чтобы убедиться, что он активен:

    ip link show eth0

    Найдите "state UP" в выводе, чтобы подтвердить, что интерфейс активен. Если он показывает DOWN, вам нужно будет устранить проблемы с подключением перед продолжением.

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

    sudo tshark -i eth0 -c 5

    Эта команда захватывает 5 пакетов с интерфейса eth0 (-i указывает интерфейс, -c задает количество пакетов) и отображает их в терминале. Требуется использовать sudo, так как захват пакетов требует привилегий root.

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

    wireshark &

    В графическом интерфейсе Wireshark вы увидите список доступных интерфейсов в главном окне. Амперсанд (&) запускает Wireshark в фоновом режиме, чтобы вы могли продолжать использовать терминал.

Захват активного сетевого трафика

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

  1. Сначала запустите Wireshark в графическом режиме из терминала. Символ & запускает команду в фоновом режиме, чтобы вы могли продолжать использовать терминал:

    wireshark &
  2. Когда Wireshark откроется, вы увидите список доступных сетевых интерфейсов. Они представляют физические и виртуальные сетевые подключения на вашем компьютере. Выберите eth0 (интерфейс, который мы определили на предыдущем этапе), двойным щелчком по нему. Обычно это основной Ethernet-интерфейс.

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

  4. Чтобы сгенерировать тестовый трафик для захвата, откройте новый терминал и запустите простую команду ping. Эта команда отправляет ICMP-запросы эхо на DNS-сервер Google (8.8.8.8):

    ping -c 4 8.8.8.8
  5. В Wireshark вы должны увидеть, как появляются ICMP-пакеты в захваченном трафике. Они представляют ваши запросы и ответы ping. Каждая строка пакета показывает важные метаданные:

    • Номер пакета (последовательность в захвате)
    • Метка времени (когда пакет был захвачен)
    • IP-адреса источника и назначения
    • Протокол (в данном случае ICMP)
    • Длина пакета в байтах
    • Краткая информация о содержимом пакета
  6. Чтобы остановить захват, когда вы закончите, нажмите красный квадрат "Стоп" на панели инструментов. Это заморозит отображение, чтобы вы могли изучить захваченные пакеты.

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

    • Нажмите "Файл" → "Сохранить как"
    • Назовите файл ping_capture.pcapng (.pcapng - это формат захвата Wireshark)
    • Сохраните его в каталоге ~/project для удобного доступа
  8. Для захвата трафика с помощью командной строки (полезно для автоматизации или удаленных систем) вы можете использовать tshark, командную версию Wireshark. Эта команда захватывает ровно 10 пакетов с eth0 и сохраняет их:

    sudo tshark -i eth0 -w ~/project/cli_capture.pcap -c 10

    Флаг -w указывает выходной файл, а -c ограничивает количество пакетов.

Применение фильтров отображения

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

  1. Сначала откройте ранее сохраненный файл с захваченным трафиком в Wireshark:

    wireshark ~/project/ping_capture.pcapng &

    Эта команда запускает Wireshark в фоновом режиме (&) и загружает сохраненный захват пакетов. Файл с расширением .pcapng содержит весь сетевой трафик, который вы записали ранее.

  2. Чтобы отфильтровать ICMP-трафик (пакеты ping), введите следующее в строку фильтра вверху окна:

    icmp

    Нажмите Enter, и в отображении будут показаны только ICMP-пакеты. ICMP - это протокол, используемый командами ping, поэтому этот фильтр позволяет выделить сетевую активность, связанную с ping, от остального трафика.

  3. Чтобы отфильтровать трафик, связанный с определенным IP-адресом (например, 8.8.8.8):

    ip.addr == 8.8.8.8

    Этот фильтр показывает все пакеты, в которых 8.8.8.8 является либо исходным, либо целевым IP-адресом. Двойное равенство (==) используется для точного соответствия в фильтрах Wireshark.

  4. Объединяйте фильтры с помощью логических операторов:

    icmp && ip.addr == 8.8.8.8

    Этот фильтр показывает только ICMP-пакеты, связанные с 8.8.8.8. Оператор && означает "И", поэтому оба условия должны быть истинными, чтобы пакет был отображен.

  5. Некоторые другие полезные фильтры:

    • HTTP-трафик: http (показывает активность при просмотре веб-страниц)
    • DNS-запросы: dns (показывает запросы доменных имен)
    • Трафик от определенного источника: ip.src == 192.168.1.1 (показывает пакеты, исходящие с этого IP-адреса)
    • Трафик к определенному назначению: ip.dst == 8.8.8.8 (показывает пакеты, отправленные на этот IP-адрес)
  6. Чтобы сохранить отфильтрованное представление:

    • Нажмите "Файл" → "Экспорт указанных пакетов"
    • Выберите "Показанные" и сохраните как filtered_ping.pcapng в каталоге ~/project

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

  7. Для фильтрации с использованием командной строки (с помощью tshark):

    tshark -r ~/project/ping_capture.pcapng -Y "icmp" -w ~/project/tshark_filtered.pcap

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

Экспорт отфильтрованных данных

На этом этапе вы научитесь экспортировать отфильтрованные данные пакетов из Wireshark в различных форматах для анализа и составления отчетов. Экспорт данных позволяет вам делиться своими результатами с коллегами или импортировать данные в другие инструменты анализа.

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

    wireshark ~/project/filtered_ping.pcapng &
  2. Чтобы экспортировать все отображаемые пакеты (после применения фильтров) в формате, native для Wireshark:

    • Нажмите "Файл" → "Экспорт указанных пакетов" в меню.
    • Убедитесь, что выбрано "Показанные", чтобы экспортировать только пакеты, соответствующие текущим фильтрам.
    • Сохраните файл как exported_packets.pcapng в каталоге ~/project для дальнейшего анализа.
  3. Командная утилита tshark в Wireshark позволяет экспортировать данные в различных форматах. Вот общие примеры:

    • Для формата CSV (полезного для анализа в электронных таблицах):

      tshark -r ~/project/filtered_ping.pcapng -T fields -e frame.number -e ip.src -e ip.dst -E header=y -E separator=, > ~/project/packet_data.csv

      Эта команда экспортирует номера пакетов, исходные и целевые IP-адреса с заголовками столбцов.

    • Для подробного текстового вывода:

      tshark -r ~/project/filtered_ping.pcapng -V > ~/project/packet_details.txt

      Эта команда показывает полные детали пакетов, аналогично интерфейсу Wireshark.

  4. Формат JSON полезен для программного анализа. Экспортируйте все данные пакетов в формате JSON:

    tshark -r ~/project/filtered_ping.pcapng -T json > ~/project/packets.json
  5. После экспорта проверьте, что все файлы были созданы правильно, выведя их список:

    ls -lh ~/project/*.pcapng ~/project/*.csv ~/project/*.txt ~/project/*.json
  6. Чтобы быстро проверить, сколько пакетов было экспортировано в файл PCAPNG:

    capinfos ~/project/exported_packets.pcapng | grep "Number of packets"

    Это подтверждает, что фильтр сработал как ожидалось, показывая количество пакетов.

Резюме

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

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