Как я могу прослушать / сбросить HTTP-протокол как ASCII для порта с tcpdump или альтернативным?

Мне нужно посмотреть, как приложение отправляет и получает трафик по протоколу http, который оно связывает с localhost (у него есть встроенный порт с кодировкой.gz). Я уверен, что это какой-то XML, который он отправляет и получает, но я хочу прослушать это, а затем проанализировать его

Возможно ли это как-то с Tcpdump? там я вижу только то, что он подключается, но не фактическое получение

3 ответа

Решение

ngrep очень полезен для этого. Что-то простое, как

ngrep -W byline port 80

будет работать, но вы также можете фильтровать содержимое запросов (отсюда и часть имени grep), и он распечатывает полезную нагрузку пакета:

ngrep -W byline some_string port 80

Если вы хотите использовать tcpdump такую ​​команду tcpdump -s 0 -A -qn filters должен дать вам то, что вы хотите. -s 0 устанавливает размер пакета и -A свалки аськи. Вместо -A вам также может понравиться -X который предоставит вам вывод в формате hexdump.

Вы также можете использовать wireshark, и как только вы закончите захват, просто щелкните правой кнопкой мыши по одному из пакетов и выберите "Follow TCP Stream".

Я сделал довольно много этого с wireshark. Наблюдайте за нужным трафиком с помощью tcpdump, отправляйте его куда-нибудь, где я могу запустить Wireshark, а затем просмотрите трассировку с помощью Wireshark. Отслеживание сеанса TCP дает мне запрос и ответ в хорошей форме ASCII. Работает отлично.

Другие вопросы по тегам