Введение
Имя службы или отчёт портов обобщают сетевое наблюдение. Захват пакетов позволяет изучить реальный трафик за этой сводкой, включая конечные точки, управление соединением и сообщения приложения.
Вы захватите один небольшой разрешённый HTTP-обмен на петлевом интерфейсе Kali. Сохраните настоящий pcap и изучите его с tcpdump, используя навыки управления процессами и HTTP из предыдущих работ.
Захватите небольшой локальный HTTP-обмен
На этом шаге вы захватите ограниченный набор пакетов HTTP-запроса к предоставленной учебной службе.
Войдите в Kali и выберите общую рабочую папку:
kali
cd /home/labex/project
Конечная точка HTTP — http://127.0.0.1:8080/capture.txt. Поскольку адрес петлевой внутри Kali, трафик использует интерфейс lo, а не интерфейс хоста. Захват пакетов требует повышенных прав в этой среде; используйте sudo только для нуждающихся в нём команд захвата и анализа.
tcpdump захватывает пакеты. -i lo выбирает петлевой интерфейс, -c 8 останавливается после восьми подходящих пакетов, а -w training.pcap записывает двоичный файл захвата. Фильтр в кавычках tcp port 8080 выбирает TCP-трафик, связанный с портом учебной службы. Завершающий & запускает захват в фоне для создания запроса в том же терминале:
sudo tcpdump -i lo -c 8 -w training.pcap 'tcp port 8080' &
Оболочка выводит номер задания. Tcpdump может сообщить о начале прослушивания. Дайте захвату одну секунду на инициализацию изученной ранее командой sleep:
sleep 1
Теперь выполните уже изученный запрос curl и сохраните тело ответа:
curl -sS http://127.0.0.1:8080/capture.txt > captured-response.txt
Запрос и ответ создают несколько TCP-пакетов, включая установление соединения и данные приложения. wait ожидает завершения фоновых заданий этой оболочки:
wait
Tcpdump должен остановиться после заданного числа пакетов и вывести сводку захвата. Двоичный pcap — структурированный файл пакетов; не читайте его cat как текст. Изучите ответ приложения отдельно:
cat captured-response.txt
Ожидаемый вывод:
Local capture practice.
Pcap и тело ответа описывают один локальный обмен в разных формах. Ограничьте захват предоставленными интерфейсом и конечной точкой.
Прочитайте и интерпретируйте сохранённые пакеты
На этом шаге вы прочитаете захват и свяжете конечные точки пакетов с HTTP-запросом и ответом.
-r читает сохранённый захват вместо прослушивания в реальном времени. -nn сохраняет адреса и порты числовыми, не позволяя поиску имён скрыть фактические конечные точки:
sudo tcpdump -nn -r training.pcap
Каждая строка включает время, конечные точки и транспортные сведения. Найдите 127.0.0.1 с обеих сторон и порт 8080 на стороне службы. Другой TCP-порт принадлежит клиенту и может различаться. Флаги TCP описывают управление соединением наряду с пакетами данных приложения, поэтому не каждая строка содержит сообщение HTTP.
Добавьте -A для отображения содержимого пакета текстом ASCII:
sudo tcpdump -nn -A -r training.pcap
Среди похожих на двоичные полей протокола найдите запрос GET /capture.txt HTTP/1.1 и успешное состояние HTTP-ответа. Это незашифрованный HTTP; зашифрованный HTTPS не откроет такое же читаемое содержимое приложения в простом дампе пакетов.
Сохраните читаемый анализ отдельно от исходного pcap:
sudo tcpdump -nn -A -r training.pcap > packet-details.txt
Описание файла захвата tcpdump может всё ещё появиться в стандартном потоке ошибок. Сведения пакетов идут в перенаправленный файл. Найдите строку запроса с grep:
grep 'GET /capture.txt' packet-details.txt
Совпавшая строка связывает свидетельства пакетов с созданным запросом. Вы сохранили двоичный захват для дальнейших инструментов и читаемый вид для быстрой проверки.
Резюме
Вы выбрали интерфейс и фильтр захвата, ограничили число пакетов, согласовали фоновый захват с HTTP-запросом и прочитали полученный pcap. Вы связали числовые конечные точки и TCP-пакеты с реальными запросом и ответом.

