Как фильтровать и анализировать захваченный трафик IPv6 в Wireshark

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

Введение

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

IPv6 (Internet Protocol version 6) представляет собой следующее поколение интернет-протоколов, разработанных для постепенной замены широко используемого IPv4. По мере развития сетей специалисты по безопасности должны владеть навыками мониторинга обоих протоколов. К концу этой лабораторной работы вы будете обладать практическими знаниями для улучшения своих возможностей мониторинга сетевой безопасности.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня продвинутый с процентом завершения 7%. Он получил 100% положительных отзывов от учащихся.

Установка и настройка Wireshark

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

Установка Wireshark

Начнем с обновления списков пакетов и установки Wireshark:

sudo apt update
sudo apt install -y wireshark

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

После завершения установки нам необходимо добавить нашего пользователя в группу wireshark, чтобы разрешить захват пакетов без привилегий root:

sudo usermod -a -G wireshark labex

Чтобы изменения вступили в силу, давайте выйдем из системы и войдем снова:

newgrp wireshark

Проверка установки

Чтобы убедиться, что Wireshark был успешно установлен, давайте проверим его версию:

wireshark --version

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

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Запуск Wireshark

Теперь давайте запустим Wireshark из терминала:

wireshark &

Символ & запускает приложение в фоновом режиме, позволяя вам продолжать использовать терминал.

Вы должны увидеть, что приложение Wireshark открылось со списком доступных сетевых интерфейсов. Интерфейс может выглядеть примерно так:

Wireshark Main Interface

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

Генерация трафика IPv6 для захвата

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

Основы IPv6

IPv6-адреса — это 128-битные адреса, обычно записываемые в шестнадцатеричной нотации с двоеточиями, разделяющими каждую группу из 16 бит, например 2001:0db8:85a3:0000:0000:8a2e:0370:7334. IPv6 предлагает несколько преимуществ по сравнению с IPv4:

  • Большее адресное пространство (128-бит против 32-бит)
  • Упрощенный формат заголовка для повышения эффективности маршрутизации
  • Встроенная безопасность с IPsec
  • Улучшенная поддержка качества обслуживания (QoS)

Проверка подключения IPv6

Сначала давайте проверим, есть ли у нашей системы подключение IPv6, изучив сетевые интерфейсы:

ip -6 addr show

Эта команда отображает все IPv6-адреса, назначенные сетевым интерфейсам в вашей системе. Вы должны увидеть вывод, аналогичный:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::215:5dff:fe00:1/64 scope link
       valid_lft forever preferred_lft forever

Адреса fe80:: — это link-local адреса, которые автоматически настраиваются на интерфейсах с поддержкой IPv6.

Генерация трафика IPv6

Давайте сгенерируем некоторый трафик IPv6, который мы сможем захватить с помощью Wireshark. Мы будем использовать команду ping6 для отправки ICMPv6 echo запросов на IPv6-адреса.

Сначала давайте пропингуем IPv6 loopback-адрес:

ping6 -c 4 ::1

Это отправляет 4 ICMPv6 echo запроса на loopback-адрес (::1). Вы должны увидеть вывод, подобный:

PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from ::1: icmp_seq=4 ttl=64 time=0.074 ms

--- ::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3072ms
rtt min/avg/max/mdev = 0.035/0.064/0.074/0.017 ms

Далее давайте пропингуем известный IPv6-адрес. DNS-серверы Google поддерживают IPv6 и могут использоваться для тестирования:

ping6 -c 4 2001:4860:4860::8888

Если ваша система имеет публичное подключение IPv6, вы должны увидеть успешные ответы ping. Если нет, вы можете увидеть ошибки, указывающие на отсутствие маршрута к хосту.

Использование netcat для трафика IPv6

Мы также можем использовать netcat для генерации трафика IPv6. Давайте откроем два окна терминала.

В первом терминале запустите сервер netcat, прослушивающий IPv6-адрес:

nc -6 -l 8888

Это запускает сервер, прослушивающий порт 8888 для IPv6-соединений.

Во втором терминале подключитесь к этому серверу:

nc -6 ::1 8888

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

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

Теперь, когда мы сгенерировали некоторый трафик IPv6, мы готовы захватить и проанализировать его с помощью Wireshark на следующем шаге.

Захват трафика IPv6 с помощью Wireshark

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

Запуск захвата

Сначала запустите Wireshark, если он еще не запущен:

wireshark &

В главном окне Wireshark вы увидите список доступных сетевых интерфейсов. Мы хотим захватывать трафик на интерфейсе, который обрабатывает наш сетевой трафик:

  1. Найдите в списке интерфейс с именем lo (loopback)
  2. Дважды щелкните этот интерфейс, чтобы начать захват пакетов на нем

Альтернативно, вы можете выбрать интерфейс и нажать кнопку "Start capturing packets" (значок синего плавника акулы) на панели инструментов.

Wireshark начнет захватывать все пакеты на loopback-интерфейсе, включая любой трафик IPv6.

Генерация трафика во время захвата

Пока Wireshark захватывает трафик, давайте сгенерируем некоторый трафик IPv6. Откройте новый терминал и запустите:

ping6 -c 10 ::1

Это отправляет 10 ICMPv6 echo запросов на loopback-адрес, которые будут видны в Wireshark.

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

Остановка захвата

После генерации некоторого трафика давайте остановим захват:

  1. Нажмите кнопку "Stop capturing packets" (значок красного квадрата) на панели инструментов
  2. Wireshark теперь отобразит только пакеты, которые были захвачены во время сеанса

Понимание интерфейса Wireshark

Интерфейс Wireshark состоит из трех основных панелей:

  1. Панель списка пакетов (Packet List Panel) (вверху): Отображает все захваченные пакеты в последовательном порядке
  2. Панель деталей пакета (Packet Details Panel) (в середине): Отображает детали выбранного пакета в иерархическом представлении
  3. Панель байтов пакета (Packet Bytes Panel) (внизу): Отображает необработанные байты выбранного пакета в шестнадцатеричном и ASCII формате

Давайте найдем и выберем пакет IPv6 на панели списка пакетов. Ищите пакеты с надписью "IPv6" в столбце "Protocol".

Когда вы выберете пакет IPv6, панель деталей пакета покажет структуру заголовка IPv6, включая:

  • Version (должно быть 6 для IPv6)
  • Traffic Class
  • Flow Label
  • Payload Length
  • Next Header
  • Hop Limit
  • Source Address
  • Destination Address

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

Сохранение захвата

Давайте сохраним наш захват для последующего анализа:

  1. Нажмите на меню "File"
  2. Выберите "Save As"
  3. Перейдите в каталог /home/labex/project
  4. Введите имя файла, например ipv6_capture.pcapng
  5. Нажмите "Save"

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

ls -l /home/labex/project/ipv6_capture.pcapng

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

-rw-r--r-- 1 labex labex 12345 Sep 10 12:34 /home/labex/project/ipv6_capture.pcapng

На следующем шаге мы узнаем, как фильтровать и анализировать захваченный нами трафик IPv6.

Базовая фильтрация IPv6 в Wireshark

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

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

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

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

  • Зеленый: Правильный синтаксис фильтра
  • Красный: Неверный синтаксис фильтра
  • Желтый: Правильный, но потенциально проблематичный фильтр

Базовые фильтры IPv6

Давайте начнем с открытия нашего сохраненного файла захвата:

  1. Нажмите на меню "File"
  2. Выберите "Open"
  3. Перейдите в /home/labex/project
  4. Выберите ipv6_capture.pcapng
  5. Нажмите "Open"

Теперь давайте применим некоторые базовые фильтры IPv6:

Фильтрация всего трафика IPv6

Чтобы отобразить только пакеты IPv6, введите следующее в строку фильтра:

ipv6

Нажмите Enter или нажмите "Apply", чтобы применить фильтр. Будут отображаться только пакеты, использующие протокол IPv6.

Фильтрация по IPv6-адресу

Чтобы отфильтровать пакеты по исходному IPv6-адресу:

ipv6.src == ::1

Это показывает только пакеты, исходящие с loopback-адреса.

Чтобы отфильтровать пакеты по IPv6-адресу назначения:

ipv6.dst == ::1

Это показывает только пакеты, предназначенные для loopback-адреса.

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

ipv6.src == ::1 and ipv6.dst == ::1

Это показывает только пакеты, в которых и источник, и назначение являются loopback-адресом.

Фильтрация по протоколу IPv6

IPv6 использует поле "Next Header" для указания протокола, инкапсулированного в пакете IPv6. Общие значения следующего заголовка включают:

  • 6: TCP
  • 17: UDP
  • 58: ICMPv6

Чтобы отфильтровать пакеты ICMPv6:

ipv6.nxt == 58

Или вы можете просто использовать:

icmpv6

Чтобы отфильтровать пакеты IPv6 TCP:

ipv6.nxt == 6

Или эквивалентно:

ipv6 and tcp

Комбинирование фильтров

Фильтры Wireshark можно комбинировать, используя логические операторы:

  • and или &&: Оба условия должны быть истинными
  • or или ||: Хотя бы одно условие должно быть истинным
  • not или !: Отрицает условие

Например, чтобы найти все пакеты IPv6, кроме ICMPv6:

ipv6 and not icmpv6

Чтобы найти пакеты, которые являются либо ICMPv6 echo запросами, либо echo ответами:

icmpv6.type == 128 or icmpv6.type == 129

Сохранение фильтров

Если вы часто используете определенные фильтры, вы можете сохранить их для последующего использования:

  1. Введите свой фильтр в строку фильтра
  2. Нажмите кнопку "Save this filter" (знак плюс справа)
  3. Введите имя для вашего фильтра
  4. Нажмите "OK"

Чтобы применить сохраненный фильтр, нажмите кнопку "Filter" (значок воронки) и выберите сохраненный фильтр из выпадающего меню.

Давайте сохраним фильтр для пакетов ICMPv6:

  1. Введите icmpv6 в строку фильтра
  2. Нажмите знак плюс
  3. Назовите его "ICMPv6 Traffic"
  4. Нажмите "OK"

Теперь вы можете быстро применить этот фильтр, когда это необходимо.

Использование выражений фильтра из деталей пакета

Wireshark предлагает удобный способ создания фильтров из деталей пакета:

  1. Выберите пакет в списке пакетов
  2. На панели деталей пакета щелкните правой кнопкой мыши поле
  3. Выберите "Apply as Filter", а затем выберите:
    • "Selected" для фильтрации по этому точному значению
    • "Not Selected" для исключения этого значения
    • "And Selected" для добавления условия к текущему фильтру
    • "Or Selected" для добавления альтернативного условия

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

Попробуйте это, выполнив следующие действия:

  1. Выберите пакет IPv6
  2. Разверните раздел "Internet Protocol Version 6" в деталях пакета
  3. Щелкните правой кнопкой мыши поле "Next Header"
  4. Выберите "Apply as Filter" > "Selected"

Строка фильтра теперь покажет фильтр для этого конкретного значения следующего заголовка.

На следующем шаге мы перейдем от базовой фильтрации к более продвинутым методам анализа IPv6.

Расширенный анализ IPv6 в Wireshark

Теперь, когда вы знакомы с базовой фильтрацией IPv6, давайте рассмотрим более продвинутые методы анализа в Wireshark, чтобы получить более глубокое представление о шаблонах трафика IPv6.

Анализ протокола IPv6

Анализ ICMPv6 для обнаружения соседей

ICMPv6 играет решающую роль в сетях IPv6, особенно для протокола обнаружения соседей (Neighbor Discovery Protocol, NDP), который заменяет ARP в IPv4. Давайте проанализируем трафик NDP:

  1. Откройте Wireshark с нашим файлом захвата
  2. Примените следующий фильтр, чтобы увидеть все сообщения NDP:
    icmpv6.type >= 133 and icmpv6.type <= 137
    

Этот фильтр включает:

  • Type 133: Router Solicitation (Запрос маршрутизатора)
  • Type 134: Router Advertisement (Объявление маршрутизатора)
  • Type 135: Neighbor Solicitation (Запрос соседа)
  • Type 136: Neighbor Advertisement (Объявление соседа)
  • Type 137: Redirect Message (Перенаправляющее сообщение)

Если вы не видите никаких сообщений NDP в вашем захвате, давайте сгенерируем некоторые:

## В новом терминале запустите новый захват Wireshark на соответствующем интерфейсе
wireshark -i eth0 &

## Затем выполните эту команду, чтобы запустить запрос соседа
ping6 -c 2 ff02::1

Это пингует IPv6 multicast-адрес всех узлов, что должно вызвать сообщения обнаружения соседей.

Анализ заголовков расширения IPv6

IPv6 использует заголовки расширения для включения дополнительной информации. Чтобы отфильтровать пакеты с заголовками расширения:

ipv6.nxt != 6 and ipv6.nxt != 17 and ipv6.nxt != 58

Это показывает пакеты IPv6, у которых в качестве следующего заголовка нет TCP, UDP или ICMPv6, что указывает на то, что они, вероятно, используют заголовки расширения.

Использование статистических инструментов Wireshark

Wireshark предоставляет несколько статистических инструментов, которые ценны для анализа трафика IPv6.

Статистика IPv6-соединений

Чтобы просмотреть IPv6-соединения:

  1. Нажмите на меню "Statistics" (Статистика)
  2. Выберите "Conversations" (Соединения)
  3. Нажмите на вкладку "IPv6"

Это отображает все IPv6-соединения в вашем захвате, показывая исходные и целевые адреса, количество пакетов и количество байтов.

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

Иерархия протоколов IPv6

Чтобы увидеть распределение протоколов в вашем захвате:

  1. Нажмите на меню "Statistics" (Статистика)
  2. Выберите "Protocol Hierarchy" (Иерархия протоколов)

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

Статистика конечных точек IPv6

Для анализа конечных точек IPv6:

  1. Нажмите на меню "Statistics" (Статистика)
  2. Выберите "Endpoints" (Конечные точки)
  3. Нажмите на вкладку "IPv6"

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

Анализ графа потока

Для визуального представления обмена пакетами:

  1. Нажмите на меню "Statistics" (Статистика)
  2. Выберите "Flow Graph" (Граф потока)
  3. В параметрах убедитесь, что для типа потока выбрано "IPv6 addresses"
  4. Нажмите "OK"

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

Экспорт данных для дальнейшего анализа

Чтобы экспортировать данные IPv6 для анализа в других инструментах:

  1. Нажмите на меню "File" (Файл)
  2. Выберите "Export Packet Dissections" (Экспорт разбора пакетов)
  3. Выберите "As CSV" (или другой формат в зависимости от ваших потребностей)
  4. Выберите, какие поля экспортировать
  5. Нажмите "Save" (Сохранить)

Давайте экспортируем некоторую базовую информацию IPv6:

## Создайте простой экспорт из командной строки
tshark -r /home/labex/project/ipv6_capture.pcapng -T fields -e frame.number -e ipv6.src -e ipv6.dst -e ipv6.nxt -E header=y -E separator=, > /home/labex/project/ipv6_analysis.csv

Это создает CSV-файл с номерами кадров, исходными и целевыми IPv6-адресами и значениями следующего заголовка.

Чтобы просмотреть экспортированный файл:

cat /home/labex/project/ipv6_analysis.csv

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

frame.number,ipv6.src,ipv6.dst,ipv6.nxt
1,::1,::1,58
2,::1,::1,58
...

Создание пользовательского профиля IPv6

Для частого анализа IPv6 полезно создать пользовательский профиль:

  1. Нажмите на меню "Edit" (Правка)
  2. Выберите "Configuration Profiles" (Профили конфигурации)
  3. Нажмите кнопку "+" для добавления нового профиля
  4. Назовите его "IPv6 Analysis" (Анализ IPv6)
  5. Нажмите "OK"

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

Чтобы добавить полезный столбец для анализа IPv6:

  1. Щелкните правой кнопкой мыши заголовок любого столбца
  2. Выберите "Column Preferences" (Настройки столбца)
  3. Нажмите "+" для добавления нового столбца
  4. Для "Title" (Заголовок) введите "Next Header" (Следующий заголовок)
  5. Для "Type" (Тип) выберите "Custom" (Пользовательский)
  6. Для "Fields" (Поля) введите "ipv6.nxt"
  7. Нажмите "OK"

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

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

Резюме

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

Вы начали с установки и настройки Wireshark в вашей системе Ubuntu, а затем сгенерировали трафик IPv6 для анализа. Вы узнали, как захватывать этот трафик и сохранять его для детального изучения.

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

  • Анализ трафика ICMPv6 для протокола обнаружения соседей (Neighbor Discovery Protocol)
  • Изучение заголовков расширения IPv6
  • Использование статистических инструментов Wireshark для получения информации о соединениях и конечных точках
  • Создание визуальных графов потоков для понимания шаблонов связи
  • Экспорт данных для дальнейшего анализа
  • Настройка Wireshark с профилями, оптимизированными для анализа IPv6

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

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