Как заставить tcpdump не печатать заголовки tcp?

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

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

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

21 голос | спросил coder 28 72010vEurope/Moscow11bEurope/MoscowSun, 28 Nov 2010 18:29:12 +0300 2010, 18:29:12

6 ответов


11

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

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

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

ответил jwmullally 18 FebruaryEurope/MoscowbTue, 18 Feb 2014 07:02:03 +0400000000amTue, 18 Feb 2014 07:02:03 +040014 2014, 07:02:03
5

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

ответил Josh 14 PMpThu, 14 Apr 2011 19:01:55 +040001Thursday 2011, 19:01:55
4

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

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

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

ответил Eduardo Ivanec 14 PMpThu, 14 Apr 2011 19:34:09 +040034Thursday 2011, 19:34:09
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'

ответил Mircea Vutcovici 14 PMpThu, 14 Apr 2011 20:04:21 +040004Thursday 2011, 20:04:21
1

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

Я был (успешно), пытаясь выявить проблему с HTTP-запросом на веб-службу и ее XML-ответ.

ответил Nils 31 J000000Sunday11 2011, 01:00:03
1

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

tcpflow -c port 6667

И все.

ответил BarsMonster 26 J0000006Europe/Moscow 2017, 01:29:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132