web-dev-qa-db-fra.com

Comment capturer tous les paquets HTTP à l'aide de tcpdump

Je veux exécuter tcpdump avec certains paramètres (je ne sais toujours pas quoi utiliser), puis charger la page stackoverflow.com.

La sortie doit être la communication HTTP. Plus tard, je veux l'utiliser comme un script Shell, donc chaque fois que je veux vérifier la communication HTTP d'un site site.com, je peux simplement exécuter script.sh site.com.

La communication HTTP doit être assez simple. Comme ça:

GET /questions/9241391/how-to-capture-all-the-http-communication-data-using-tcp-dump
Host: stackoverflow.com
... 
...

HTTP/1.1 200 OK
Cache-Control: public, max-age=60
Content-Length: 35061
Content-Type: text/html; charset=utf-8
Expires: Sat, 11 Feb 2012 15:36:46 GMT
Last-Modified: Sat, 11 Feb 2012 15:35:46 GMT
Vary: *
Date: Sat, 11 Feb 2012 15:35:45 GMT


....
decoded deflated data
....

Maintenant, quelles options dois-je utiliser avec tcpdump pour le capturer?

39
Shiplu Mokaddim

Cela peut être fait par ngrep

ngrep -q -d eth1 -W byline Host stackoverflow.com and port 80 
       ^  ^       ^         ^        
       |  |       |         |
       |  |       |         |
       |  |       |         v
       |  |       |         filter expression
       |  |       |         
       |  |       +-->  -W  is set the dump format ("normal", "byline", "single", "none")
       |  |
       |  +---------->  -d  is use specified device instead of the pcap default
       |
       +------------->  -q  is be quiet ("don't print packet reception hash marks")
93
Shiplu Mokaddim

Sur la base de ce que vous avez mentionné, ngrep (sous Unix) et Fiddler (Windows) pourraient être des solutions meilleures/plus faciles.

Si vous voulez absolument utiliser tcpdump, essayez les options suivantes

 tcpdump -A -vvv Host destination_hostname
 
 - A (ascii) 
 - vvv (sortie verbeuse) 
19
souser
tcpdump -i eth0 -w dump3.pcap -v  'tcp and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

voir http://www.tcpdump.org/manpages/tcpdump.1.html

0
guohongjun