Введение
В этом лабораторном занятии вы узнаете, как использовать командную строку 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
Вот что происходит при выполнении этой команды:
- Tshark читает файл
http.pcap(флаг-r). - Он анализирует HTTP-трафик и идентифицирует передачи файлов.
- Каждый найденный файл воссоздается и сохраняется в директории
./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.


