Как мне сделать так, чтобы tcpdump не печатал заголовки tcp?

28

Я попробовал это:

tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'

Мне нужна только часть ascii. Как мне удалить остальное?

кодировщик
источник
1
с помощью tshark вы можете сделать это с помощью: tshark -l -i eth0 -f 'порт 6667 и выше 74' -T field -e data
Marcin
Он говорит, что 28 пакетов перехвачено, но ничего не печатает в STDOUT.
кодер
Вы имеете в виду ASCII7?
Мирча Вутцовичи

Ответы:

15

Как предлагает Джош, tcpflow может печатать только данные пакета TCP в файл или STDOUT. Вы можете передать tcpdump в tcpflow следующим образом:

tcpdump -i lo -l -w - port 23 | tcpflow -C -r -

Чтобы просмотреть только одну сторону разговора, вы можете использовать фильтры для tcpdump, например dst port 23.

jwmullally
источник
4
Зачем вам нужно начинать tcpflowс правами root?
Руслан
5

Я не уверен в точном синтаксисе для tcpdump... на самом деле, я отметил этот вопрос как любимый, потому что я хотел бы знать! Но в качестве альтернативного решения вы можете попробовать использовать tcpflowвместо этого. Он работает по сути так же, но гораздо лучше печатает вывод ASCII; он исключил заголовки и печатал пакеты последовательно как поток, поэтому иногда легче читать и отслеживать, чем tcpdump.

мистифицировать
источник
5

Я считаю, что самое элегантное решение - просто отказаться от tcpdump. Нет труб любого вида:

tcpflow -c port 6667

Вот и все.

BarsMonster
источник
Вы спасли мне жизнь, я хочу купить вам печенье
gdaras
4

Быстрый и грязный способ сделать это - отфильтровать вывод через строки:

tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings

Иногда у вас нет других инструментов, и для быстрого просмотра полезной нагрузки этого достаточно. Конечно, бесполезно, если вам нужна точная полезная нагрузка для инъекций или точного анализа.

Эдуардо Иванец
источник
1

Если вам нужна только часть ASCII, вы можете использовать: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'или с ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'

Мирча Вуцовичи
источник
1

У меня была та же проблема на прошлой неделе - вместо этого я использовал графический интерфейс wireshark и сделал «копируемую ascii» для интересных пакетов.

Я (успешно) пытался определить проблему с http-запросом к веб-сервису и его XML-ответом.

Nils
источник