Como posso farejar / descarregar o protocolo HTTP como ASCII para uma porta com tcpdump ou altenative?

4

Eu preciso ver como um aplicativo está enviando e recebendo tráfego através de um protocolo http que comunica em localhost (ele tem uma porta incorporada codificada com .gz) Tenho certeza que é algum XML que ele envia e recebe, mas eu quero farejá-lo e analisá-lo

Isso é possível de alguma forma com o Tcpdump? lá eu posso ver apenas que ele se conecta, mas não o envio real de receber

    
por PartySoft 16.07.2010 / 00:29

3 respostas

5

O ngrep é muito útil para isso. Algo tão simples quanto

ngrep -W byline port 80

funcionaria, mas você também pode filtrar o conteúdo das solicitações (daí a parte grep do nome) e imprimir a carga do pacote:

ngrep -W byline some_string port 80
    
por 16.07.2010 / 05:29
5

Se você quiser usar o tcpdump, um comando como este tcpdump -s 0 -A -qn filters deve dar o que você deseja. O -s 0 define o tamanho do pacote e -A dumps ascii. Em vez de -A , você também pode gostar de -X , que fornecerá a saída em um formato de estilo hexdump.

Você também pode usar o wireshark, e quando terminar de capturar, basta clicar com o botão direito do mouse em um dos pacotes e selecionar o 'Follow TCP Stream'.

    
por 16.07.2010 / 00:37
4

Eu fiz muito disso com o wireshark. Sniff o tráfego que eu quero com o tcpdump, enviá-lo para algum lugar eu posso lançar o Wireshark e, em seguida, ver o traço com o Wireshark. Rastrear a sessão TCP me fornece a solicitação e responde em um formato ASCII agradável. Funciona bem.

    
por 16.07.2010 / 02:09