Наблюдение сетевого трафика с tcpdump в Kali

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

Введение

Имя службы или отчёт портов обобщают сетевое наблюдение. Захват пакетов позволяет изучить реальный трафик за этой сводкой, включая конечные точки, управление соединением и сообщения приложения.

Вы захватите один небольшой разрешённый 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-пакеты с реальными запросом и ответом.