it-swarm-id.com

Memantau permintaan HTTP sambil jalan pada antarmuka jaringan?

Untuk keperluan debugging, saya ingin memonitor permintaan http pada antarmuka jaringan.

Menggunakan baris perintah tcpdump yang naif saya mendapatkan terlalu banyak informasi tingkat rendah dan informasi yang saya butuhkan tidak terwakili dengan jelas.

Membuang lalu lintas melalui tcpdump ke file dan kemudian menggunakan wireshark memiliki kerugian karena tidak on-the-fly.

Saya membayangkan penggunaan alat seperti ini:

$ 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
...

Saya menggunakan Linux.

84
maxschlepzig

Coba tcpflow:

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

Outputnya seperti ini:

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

Anda jelas dapat menambahkan metode HTTP tambahan ke pernyataan grep, dan menggunakan sed untuk menggabungkan dua baris menjadi URL lengkap.

106
bahamat

Anda dapat menggunakan httpry atau Justniffer untuk melakukan itu.

httpry tersedia mis. melalui repositori paket Fedora.

Contoh panggilan:

# httpry -i em1

(dimana em1 menunjukkan nama antarmuka jaringan)

Contoh output:

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

(output sedikit disingkat)

24
X4lldux

Saya sedang mencari sesuatu yang serupa, dengan persyaratan tambahan yang harusnya berfungsi untuk https juga.

alat berbasis pcap seperti tcpflowhttpryurlsnarf dan lainnya tcpdump kung f bekerja dengan baik untuk http, tetapi untuk permintaan yang aman Anda kurang beruntung.

Saya datang dengan rldump , yang merupakan pembungkus kecil --- mitmproxy .
iptables digunakan untuk mengalihkan lalu lintas ke proksi, sehingga berfungsi secara transparan.

$ 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
...

Lihat README untuk info lebih lanjut.

7
lemonsqueeze

Pilihan bagus lainnya mungkin nethogs

Pada Fedora tersedia di antara paket inti, dan pada centos Anda bisa mendapatkannya melalui repo epel.

1
adriano72

Saya pikir Wireshark mampu melakukan apa yang Anda inginkan

Di sisi positifnya, ini sangat kuat, Anda dapat menginstalnya melalui apt-get, dan dilengkapi dengan GUI.

Namun, sistem filternya rumit - tetapi ada tutorial yang bagus di dalamnya, dan itu akan memberi Anda gambaran langsung atau mulai/berhenti lalu lintas.

Mengetik Kata 'http' ke dalam filter mungkin akan memberi Anda apa yang Anda cari (yaitu lalu lintas utama yang dihasilkan oleh pengguna).

1
Mahmoud Hossam

Ada juga program baris perintah urlsnarf yang merupakan bagian dari paket dsniff (yang juga dikemas dengan mis. Fedora 19).

Contoh:

# 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
[..]

(saat browsing pertama ke SE dan kemudian ke spiegel.de)

Keterbatasan: dsnarf tidak tidak mendukung IPv6 . Saya dapat mereproduksi laporan bug ini dengan 0,17 pada Fedora 19. Tampaknya juga rusak di bawah atm terpercaya Ubuntu (berfungsi dengan baik di bawah jelas).

1
maxschlepzig