Bem, para todos aqueles fãs do tcpdump =)
EXECUTE TODOS ESTES COMANDOS COMO RAIZ !!!
Obtenha raiz em um terminal com
sudo -i
Para capturar os pacotes RAW ...
sudo tcpdump -i any -w /tmp/http.log &
Isso irá capturar todos os pacotes brutos, em todas as portas, em todas as interfaces e gravá-los em um arquivo /tmp/http.log
.
Execute seu aplicativo. Obviamente, ajuda se você não executar outros aplicativos que usam HTTP (navegadores da web).
Mate tcpdump
killall tcpdump
Para ler o log, use o -A
sinalizador e canalize a saída para less
:
tcpdump -A -r /tmp/http.log | less
O -A
sinalizador imprime a "carga útil" ou o texto ASCII nos pacotes. Isso enviará a saída para less
, você pode subir e descer a página. Para sair less
, digite Q.
Quando vou ao Google, vejo (nos pacotes brutos):
20:42:38.179759 IP ufbt.local.56852 > sea09s02-in-f3.1e100.net.www: Flags [P.], seq 1:587, ack 1, win 913, options [nop,nop,TS val 25523484 ecr 492333202], length 586
E..~.v@.@..q......!#...P.(.gS.c..............u..Xh.GET /generate_204 HTTP/1.1
Host: clients1.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34
Referer: http://www.google.com/
Accept: */*
Accept-Encoding: gzip, deflate, x-gzip, x-deflate
Accept-Charset: utf-8,*;q=0.5
Accept-Language: en-US, en-US; q=0.8, en; q=0.6
Cookie: PREF=ID=dd958d4544461998:FF=0:TM=1323842648:LM=1360205486:S=Fg_QCDsLMr4ZepIo; NID=67=OQJWjIDHG-B8r4EuM19F3g-nkaMcbvYwoY_CsOjzvYTOAxwqAos5kfzsk6Q14E70gIfJjHat8d8PuQIloB12BE-JuSHgsKHR2QSpgN12qSWoxeqhdcSQgzw5CHKtbR_a
tcpdump
possui um longo conjunto de opções para refinar a coleta de dados, especificando interfaces de rede para portas e endereços IP de origem e destino. NÃO pode descriptografar (para que não funcione com HTTPS).
Depois de saber em que está interessado, você poderá usar várias opções tcpdump
para registrar apenas os dados de seu interesse. A estratégia geral é primeiro registrar todos os pacotes, revisar os dados brutos e capturar apenas os pacotes de interesse.
Alguns sinalizadores úteis (opções):
-i Specify an interface
-i eth0
tcp port xx
tcp port 80
dst 1.2.3.4
specify a destination ip address
Há uma curva de aprendizado, tanto para usar tcpdump
quanto para aprender a analisar os dados que você coleta. Para uma leitura mais aprofundada, sugiro o tcpdump
Primer with Examples de Daniel Miessler .