Como faço para o tcpdump não imprimir os cabeçalhos tcp?


28

Eu tentei isso:

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

Eu preciso apenas da parte ascii disso. Como faço para remover o resto?


1
com o tshark você pode fazer isso com: tshark -l -i eth0 -f 'porta 6667 e maior 74' -T field -e data
Marcin

Diz 28 pacotes capturados, mas não imprime nada para STDOUT.
Codificador

Você quer dizer ASCII7?
Mircea Vutcovici

Respostas:


15

Como Josh sugere, o tcpflow pode imprimir apenas os dados do pacote TCP em um arquivo ou STDOUT. Você pode canalizar o tcpdump para o tcpflow assim:

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

Para visualizar apenas um lado da conversa, você pode usar filtros para o tcpdump, por exemplo dst port 23.


4
Por que você precisaria iniciar tcpflowcomo root?
Ruslan

5

Não tenho certeza sobre a sintaxe exata de tcpdump... de fato, marquei esta pergunta como favorita porque gostaria de saber! Mas como uma solução alternativa, você pode tentar usar tcpflow. Funciona essencialmente da mesma maneira, mas imprime muito melhor a saída ASCII; ele excluiu os cabeçalhos e imprimiu os pacotes sequencialmente como um fluxo, por isso é mais fácil ler e seguir às vezes do que tcpdump.


5

Eu sinto que a solução mais elegante é apenas abandonar o tcpdump. Nenhum tubo de qualquer tipo:

tcpflow -c port 6667

E é isso.


Você salvou minha vida, quero comprar um biscoito para você
gdaras

4

Uma maneira rápida e suja de fazer isso é filtrar a saída através de strings:

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

Às vezes, você não tem outras ferramentas e, para dar uma olhada rápida na carga, isso é suficiente. Não é bom se você precisar da carga exata para injeção ou de uma análise exata, é claro.


1

Se você precisar apenas da parte ASCII, poderá usar: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'ou com o ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'


1

Eu tive o mesmo problema na semana passada - usei o wireshark gui e fiz uma "cópia ascii legível" para os pacotes interessantes.

Eu estava (com êxito) tentando identificar um problema com uma solicitação http para um serviço da Web e sua resposta XML.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.