Экспорт HTTP-объектов в Tshark

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

Введение

В этом лабораторном занятии вы узнаете, как использовать командную строку Wireshark - инструмент tshark для анализа HTTP-трафика и извлечения переданных объектов из пакетных захватов. Вы потренируетесь в использовании ключевых команд, таких как -r для чтения файлов захвата и --export-objects для извлечения HTTP-контента, такого как изображения или документы.

В упражнениях вас научат экспортировать HTTP-объекты из предварительно захваченного файла (http.pcap) в локальную директорию, фильтровать определенные запросы и изучать извлеченные файлы. Эти практические методы являются важными для анализа сетевого трафика и судебно-технических расследований.

Открыть захват HTTP с помощью -r http.pcap

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

Прежде чем мы начнем, давайте разберемся с некоторыми основами:

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

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

cd ~/project

Важна опция -r в tshark - она означает "read" (читать) и позволяет анализировать данные пакетов из сохраненного файла вместо захвата активного трафика. Мы будем использовать пример файла захвата с именем http.pcap, который содержит типичный HTTP-веб-трафик.

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

tshark -r http.pcap

Эта команда отобразит список пакетов непосредственно в вашем терминале. Каждая строка представляет один сетевой пакет с несколькими важными полями:

  • Номер пакета: Порядковый номер пакета в захвате.
  • Метка времени: Время, когда пакет был захвачен (в секундах).
  • Исходный IP-адрес: Откуда пришел пакет.
  • Целевой IP-адрес: Куда направлен пакет.
  • Протокол: Используемый сетевой протокол (в нашем случае - HTTP).
  • Длина пакета: Размер пакета в байтах.
  • Информация: Краткие сведения о содержимом пакета.

Например, вы можете увидеть такой вывод, показывающий типичный HTTP-запрос и ответ:

1 0.000000 192.168.1.100 → 192.168.1.1 HTTP GET /index.html HTTP/1.1
2 0.000123 192.168.1.1 → 192.168.1.100 HTTP HTTP/1.1 200 OK (text/html)

Первая строка показывает, что клиент (192.168.1.100) запрашивает веб-страницу, а вторая строка показывает успешный ответ сервера. Этот базовый вид помогает вам быстро понять поток трафика.

Чтобы выйти из вида пакетов, когда вы закончите изучать данные, просто нажмите Ctrl+C. Это вернет вас в командную строку.

Экспорт объектов с помощью --export-objects http,./objects

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

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

cd ~/project

Перед извлечением файлов нам нужно место для их хранения. Команда mkdir -p создает директорию с именем "objects", где Tshark сохранит извлеченные файлы. Флаг -p означает, что не будет показана ошибка, если директория уже существует:

mkdir -p objects

Теперь мы воспользуемся мощной функцией --export-objects в Tshark. Эта команда просматривает пакетный захват, идентифицирует передачи файлов по HTTP и воссоздает исходные файлы. Синтаксис после --export-objects состоит из двух частей: "http" указывает на протокол, а "./objects" - это наша выходная директория:

tshark -r http.pcap --export-objects http,./objects

Вот что происходит при выполнении этой команды:

  1. Tshark читает файл http.pcap (флаг -r).
  2. Он анализирует HTTP-трафик и идентифицирует передачи файлов.
  3. Каждый найденный файл воссоздается и сохраняется в директории ./objects.

После выполнения команды Tshark отобразит каждый извлеченный файл. Например, вы можете увидеть такой вывод, показывающий успешное извлечение файлов:

Exporting HTTP object 1: image1.jpg
Exporting HTTP object 2: document.pdf

Эти файлы теперь доступны в вашей директории objects для дальнейшего изучения. Этот метод особенно полезен при анализе веб-трафика или при расследовании загрузок файлов при устранении неполадок в сети.

Просмотреть файлы в ./objects

На этом этапе мы рассмотрим HTTP-объекты, которые были извлечены из пакетного захвата на предыдущем этапе. Эти объекты представляют собой файлы, переданные по протоколу HTTP, такие как изображения, документы или скрипты. Составив список содержимого директории ./objects, мы можем проверить, какие файлы были успешно экспортированы, и подготовиться к дальнейшему анализу.

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

cd ~/project

Чтобы просмотреть все извлеченные файлы с подробной информацией, мы воспользуемся командой ls с двумя полезными опциями:

ls -lh ./objects

Вот что делает каждая часть:

  • -l показывает список в длинном формате с разрешениями, размерами и временными метками.
  • -h отображает размеры файлов в удобочитаемом формате (КБ, МБ вместо байтов).

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

total 24K
-rw-r--r-- 1 labex labex 5.2K Jan 1 10:00 image1.jpg
-rw-r--r-- 1 labex labex 12K Jan 1 10:00 document.pdf
-rw-r--r-- 1 labex labex 1.5K Jan 1 10:00 script.js

Если вам просто нужно узнать, сколько файлов было извлечено (без просмотра их деталей), эта команда их подсчитывает:

ls ./objects | wc -l

Часть wc -l подсчитывает количество строк в выводе, что соответствует количеству файлов. В нашем примере это покажет:

3

Фильтрация конкретных запросов с помощью -Y "http.request.uri"

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

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

cd ~/project

Основная структура команды использует tshark -r для чтения файла пакетного захвата, за которой следует -Y с нашим фильтрующим выражением. При работе с HTTP-трафиком мы можем фильтровать конкретно HTTP-запросные пакеты, исследуя их URI (Uniform Resource Identifier - универсальный идентификатор ресурса) пути:

tshark -r http.pcap -Y "http.request.uri"

Эта команда обработает файл http.pcap и отобразит только HTTP-запросные пакеты, соответствующие нашему фильтру. Для каждого совпадающего пакета вы увидите важную информацию, в том числе:

  • Номер пакета (показывающий его позицию в захвате)
  • Временную метку, когда пакет был захвачен
  • IP-адреса источника и назначения
  • Полный путь HTTP-запроса URI

Вот как может выглядеть типичный вывод:

10 1.234567 192.168.1.100 → 203.0.113.5 HTTP GET /images/logo.png HTTP/1.1
15 2.345678 192.168.1.100 → 203.0.113.5 HTTP GET /api/data.json HTTP/1.1

Мы можем сделать наш фильтр более конкретным, ища определенные типы файлов или пути. Например, чтобы найти только запросы на PNG-изображения, мы можем изменить наш фильтр, чтобы проверить наличие ".png" в URI:

tshark -r http.pcap -Y 'http.request.uri contains ".png"'

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

Резюме

В этом лабораторном занятии вы научились анализировать HTTP-трафик и извлекать переданные объекты с помощью командной строки Wireshark - tshark. Работая с файлом http.pcap, вы практиковались в просмотре деталей пакетов с использованием флага -r и экспорте HTTP-объектов, таких как изображения и документы, в указанную директорию с помощью --export-objects.

Вы также исследовали фильтрацию конкретных HTTP-запросов с помощью флага -Y для выделения трафика на основе URI. Эти методы предоставляют важные навыки для эффективного анализа сетевого трафика и целевого извлечения файлов через командную строку tshark.