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.
À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.
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'
Respostas:
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:
Para visualizar apenas um lado da conversa, você pode usar filtros para o tcpdump, por exemplo
dst port 23
.fonte
tcpflow
como root?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 usartcpflow
. 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 quetcpdump
.fonte
Eu sinto que a solução mais elegante é apenas abandonar o tcpdump. Nenhum tubo de qualquer tipo:
E é isso.
fonte
Uma maneira rápida e suja de fazer isso é filtrar a saída através de 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.
fonte
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'
fonte
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.
fonte