Анализ пакетов с помощью Wireshark и Tshark

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

Введение

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

Проверка установки и список сетевых интерфейсов

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

  1. Сначала проверьте правильность установки Tshark, запросив его версию. Эта команда подтверждает, что инструмент доступен в системном пути.

    tshark --version
    

    Вы должны увидеть вывод, отображающий номера версий Tshark и Wireshark.

    TShark (Wireshark) 4.2.x (Git v4.2.x packaged as 4.2.x-1)
    ...
    
  2. Далее вам необходимо узнать, какие сетевые интерфейсы можно использовать для захвата пакетов. Используйте флаг -D для вывода списка всех доступных интерфейсов.

    tshark -D
    

    Вывод будет содержать список интерфейсов по номеру и имени.

    1. eth0
    2. any (Псевдоустройство, которое захватывает трафик на всех интерфейсах)
    3. lo (Loopback)
    4. ...
    
    • eth0 — это, как правило, основной Ethernet-интерфейс, часто используемый в виртуальных машинах и на серверах. Мы будем использовать его для захвата в реальном времени.
    • lo — это интерфейс обратной петли (loopback), используемый для сетевого взаимодействия внутри одной и той же машины.
    • any — это специальное псевдоустройство, которое позволяет одновременно захватывать трафик со всех интерфейсов.

Теперь, когда вы подтвердили установку и определили интерфейс eth0, вы готовы начать захват пакетов.

Выполнение базового захвата пакетов

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

  1. Чтобы начать захват, необходимо указать интерфейс с помощью флага -i и количество пакетов для захвата с помощью флага -c (count). Выполните следующую команду для захвата 10 пакетов с интерфейса eth0.

    tshark -i eth0 -c 10
    
  2. Tshark начнет захватывать пакеты и в реальном времени выводить однострочное резюме для каждого пакета. Вывод будет похож на приведенный ниже пример, показывающий такую информацию, как номер пакета, временная метка, IP-адреса источника и назначения, протокол и краткое описание.

     1 0.000000000 172.17.0.2 -> 172.17.0.1 DNS 79 Standard query 0x1a34 AAAA metadata.google.internal
     2 0.000293393 172.17.0.1 -> 172.17.0.2 DNS 111 Standard query response 0x1a34 No such name
     3 0.000408893 172.17.0.2 -> 172.17.0.1 DNS 79 Standard query 0x2b1f A metadata.google.internal
     4 0.000564893 172.17.0.1 -> 172.17.0.2 DNS 111 Standard query response 0x2b1f No such name
     ...
    

После захвата 10 пакетов Tshark автоматически остановится. Вы успешно захватили и просмотрели сетевой трафик в реальном времени из командной строки.

Анализ файла захвата с помощью Tshark

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

  1. Сначала используйте команду ls, чтобы убедиться, что файл capture.pcap существует в вашем текущем каталоге (/home/labex/project).

    ls -l capture.pcap
    
  2. Чтобы прочитать пакеты из этого файла, используйте флаг -r (read). Давайте посмотрим первые 10 пакетов из файла.

    tshark -r capture.pcap -c 10
    
  3. Ручной просмотр всех пакетов неэффективен. Tshark позволяет использовать фильтры отображения (display filters), чтобы показывать только те пакеты, которые соответствуют определенным критериям. Используйте флаг -Y для применения фильтра отображения. Давайте отфильтруем только трафик TCP.

    tshark -r capture.pcap -Y "tcp" -c 5
    

    Эта команда считывает данные из capture.pcap, применяет фильтр отображения tcp и показывает только первые 5 совпадающих пакетов.

  4. Теперь попробуйте отфильтровать другой протокол, например UDP.

    tshark -r capture.pcap -Y "udp" -c 5
    

    Теперь вы увидите только UDP-пакеты из файла захвата. Фильтры отображения — это мощная функция для фокусировки анализа на определенных протоколах, адресах или портах.

Фильтрация и сохранение захвата в реальном времени

На этом шаге вы объедините захват, фильтрацию и сохранение. Вместо сохранения всего трафика вы можете применить фильтр захвата (capture filter), чтобы сохранить только интересующие вас пакеты. Это эффективно для создания целевых наборов данных. Мы будем захватывать только DNS-трафик и сохранять его в новый файл.

  1. Для сохранения захвата используйте флаг -w (write). Для применения фильтра захвата используйте флаг -f. DNS обычно использует UDP-порт 53, поэтому мы будем использовать "port 53" в качестве фильтра захвата.

    Выполните следующую команду, чтобы захватить 10 DNS-пакетов и сохранить их в файл с именем dns_traffic.pcap.

    tshark -i eth0 -c 10 -f "port 53" -w dns_traffic.pcap
    

    В отличие от обычного захвата, эта команда не будет выводить пакеты на экран. Вместо этого она будет показывать счетчик захваченных пакетов до тех пор, пока не достигнет 10.

  2. После завершения захвата убедитесь, что новый файл был создан.

    ls -l dns_traffic.pcap
    
  3. Теперь вы можете просмотреть свой новый, отфильтрованный файл захвата, чтобы убедиться, что он содержит только нужный вам трафик.

    tshark -r dns_traffic.pcap
    

    Вывод должен содержать только DNS-пакеты (или другой трафик на порту 53), что подтверждает корректную работу вашего фильтра захвата.

Анализ пакетов с помощью графического интерфейса Wireshark

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

  1. Запустите Wireshark и откройте файл capture.pcap с помощью следующей команды. Символ & в конце запускает приложение в фоновом режиме, освобождая ваш терминал.

    wireshark capture.pcap &
    
  2. Откроется окно Wireshark. Уделите время, чтобы ознакомиться с основной структурой:

    • Панель списка пакетов (сверху): Список всех пакетов в захвате.
    • Панель деталей пакета (посередине): Подробное, раскрывающееся представление протокольных уровней для выбранного пакета.
    • Панель байтов пакета (снизу): Необработанные данные выбранного пакета, отображаемые в шестнадцатеричном формате и ASCII.
  3. GUI упрощает фильтрацию. Найдите строку фильтра отображения в верхней части окна (там может быть текст-заполнитель "Apply a display filter..."). Введите http в эту строку и нажмите Enter.

    http
    
  4. Теперь Панель списка пакетов обновится, показывая только HTTP-пакеты из файла захвата. Вы можете щелкнуть любой пакет, чтобы изучить его детали на средней панели.

  5. Закройте окно Wireshark, когда закончите изучение.

Резюме

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