it-swarm-vi.com

Giám sát các yêu cầu HTTP đang hoạt động trên giao diện mạng?

Đối với mục đích gỡ lỗi, tôi muốn theo dõi các yêu cầu http trên giao diện mạng.

Sử dụng một dòng lệnh tcpdump ngây thơ Tôi nhận được quá nhiều thông tin cấp thấp và thông tin tôi cần không được trình bày rõ ràng.

Việc chuyển lưu lượng truy cập qua tcpdump vào một tệp và sau đó sử dụng wireshark có nhược điểm là nó không hoạt động.

Tôi tưởng tượng một cách sử dụng công cụ như thế này:

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

Tôi đang sử dụng Linux.

84
maxschlepzig

Hãy thử tcpflow:

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

Đầu ra là như thế này:

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

Rõ ràng bạn có thể thêm các phương thức HTTP bổ sung vào câu lệnh grep và sử dụng sed để kết hợp hai dòng thành một URL đầy đủ.

106
bahamat

Bạn có thể sử dụng httpry hoặc Justniffer để làm điều đó.

httpry khả dụng, ví dụ: thông qua kho lưu trữ gói Fedora.

Cuộc gọi ví dụ:

# httpry -i em1

(Ở đâu em1 biểu thị tên giao diện mạng)

Ví dụ đầu ra:

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

(đầu ra được rút ngắn một chút)

24
X4lldux

Tôi đang tìm kiếm một cái gì đó tương tự, với yêu cầu bổ sung rằng nó cũng sẽ hoạt động cho https .

các công cụ dựa trên pcap như tcpflowhttpryurlsnarf và khác tcpdump kung f hoạt động tốt cho http, nhưng đối với các yêu cầu an toàn bạn không gặp may.

Tôi đã đưa ra rldump , đó là một trình bao bọc nhỏ xung quanh mitmproxy .
[.__.] iptables được sử dụng để chuyển hướng lưu lượng truy cập đến proxy, do đó, nó hoạt động trong suốt.

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

Xem README để biết thêm thông tin.

7
lemonsqueeze

Một lựa chọn tốt khác có thể là nethogs

Trên Fedora có sẵn trong số các gói cốt lõi, và trên centos bạn có thể lấy nó thông qua repo epel.

1
adriano72

Tôi nghĩ Wireshark có khả năng làm những gì bạn muốn

Về mặt tích cực, nó rất mạnh mẽ, bạn có thể cài đặt nó thông qua apt-get và nó đi kèm với GUI.

Tuy nhiên, hệ thống bộ lọc rất phức tạp - nhưng có các hướng dẫn tốt được tích hợp và nó sẽ cung cấp cho bạn tổng quan trực tiếp hoặc bắt đầu/dừng lưu lượng.

Nhập từ 'http' vào bộ lọc có thể sẽ cung cấp cho bạn những gì bạn đang tìm kiếm (nghĩa là lưu lượng truy cập chính do người dùng tạo).

1
Mahmoud Hossam

Ngoài ra còn có chương trình dòng lệnh urlsnarf là một phần của gói dsniff (cũng được đóng gói với ví dụ: Fedora 19).

Thí dụ:

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

(khi duyệt đầu tiên đến SE và sau đó đến spiegel.de)

Hạn chế: DSNarf không không hỗ trợ IPv6 . Tôi có thể sao chép báo cáo lỗi này với 0.17 trên Fedora 19. Cũng có vẻ như bị phá vỡ dưới Ubuntu atm đáng tin cậy (hoạt động tốt trong sáng suốt).

1
maxschlepzig