it-swarm-eu.dev

On-the-fly monitorování HTTP požadavky na síťovém rozhraní?

Pro účely ladění chci sledovat požadavky http na síťovém rozhraní.

Pomocí naivního příkazového řádku tcpdump získám příliš mnoho informací na nízké úrovni a informace, které potřebuji, nejsou příliš jasně znázorněny.

Dumping provozu přes tcpdump do souboru a poté použití wireshark má tu nevýhodu, že není za běhu.

Představuji si použití tohoto nástroje:

$ monitorhttp -ieth0 --only-get --just-urls
2011-01-23 20:00:01 GET http://foo.example.org/blah.js
2011-01-23 20:03:01 GET http://foo.example.org/bar.html
...

Používám Linux.

84
maxschlepzig

Zkuste tcpflow:

tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

Výstup je následující:

GET /search?q=stack+exchange&btnI=I%27m+Feeling+Lucky HTTP/1.1
Host: www.google.com

K příkazu grep můžete samozřejmě přidat další metody HTTP a pomocí sed zkombinovat dva řádky do úplné adresy URL.

106
bahamat

K tomu můžete použít httpry nebo Justniffer .

httpry je k dispozici např. prostřednictvím úložiště balíčků Fedora.

Příklad volání:

# httpry -i em1

(kde em1 označuje název síťového rozhraní)

Příklad výstupu:

2013-09-30 21:35:20    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/6281/editor-heartbeat/edit    HTTP/1.1
2013-09-30 21:35:20    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:35:49    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/validate-body                 HTTP/1.1
2013-09-30 21:35:49    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:33:33    192.168.0.1      92.197.129.26    >    GET     cdn4.spiegel.de    /images/image-551203-breitwandaufmacher-fgoe.jpg    HTTP/1.1

(výstup je trochu zkrácen)

24
X4lldux

Hledal jsem něco podobného, ​​s přidaným požadavkem, aby to fungovalo také pro https .

nástroje založené na pcap jako tcpflowhttpryurlsnarf a další tcpdump kung f fungují dobře pro http, ale pro zabezpečené požadavky máte štěstí.

Přišel jsem s rldump , což je malý obal kolem mitmproxy .
iptables se používá k přesměrování provozu na proxy, takže funguje transparentně.

$ Sudo urldump   
http://docs.mitmproxy.org/en/stable/certinstall.html
http://docs.mitmproxy.org/en/stable/_static/js/modernizr.min.js
https://media.readthedocs.org/css/sphinx_rtd_theme.css
https://media.readthedocs.org/css/readthedocs-doc-embed.css
https://media.readthedocs.org/javascript/readthedocs-doc-embed.js
...

Více informací viz README .

7
lemonsqueeze

Další dobrou volbou může být nethogs

Na Fedoře je k dispozici mezi jádrovými balíčky a na centech to můžete získat pomocí repel epelu.

1
adriano72

Myslím, že Wireshark je schopen dělat to, co chcete

Na druhou stranu, je to velmi silné, můžete jej nainstalovat pomocí apt-get a přichází s GUI.

Filtrační systém je však komplikovaný - ale jsou zde vestavěny dobré návody a dá vám živý nebo start/stop přehled o provozu.

Zadáním slova http do filtru pravděpodobně získáte to, co hledáte (tj. Hlavní provoz generovaný uživateli).

1
Mahmoud Hossam

Existuje také program příkazového řádku urlsnarf, který je součástí balíčku dsniff (který je také balen např. S ​​Fedora 19).

Příklad:

# urlsnarf -i em1
urlsnarf: listening on em1 [tcp port 80 or port 8080 or port 3128]
jhost - - [29/May/2014:10:25:09 +0200] "GET http://unix.stackexchange.com/questions HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/css/style-V5-2-2.css HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/jscfg/http/global-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/javascript-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/interface-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/netmind-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/favicon.ico HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "POST http://ocsp.thawte.com/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "POST http://ocsp.thawte.com/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0
[..]

(při procházení nejprve na SE a poté na spiegel.de)

Omezení: dsnarf nemá nepodporuje IPv6 . Dokážu reprodukovat tuto zprávu o chybě s 0,17 na Fedoře 19. Zdá se také, že je rozbitá pod důvěryhodnou atmosférou Ubuntu (funguje dobře pod přehledným).

1
maxschlepzig