Làm cách nào tôi có thể đánh hơi được lưu lượng của máy từ xa bằng wireshark?


38

Tôi có thể đánh hơi lưu lượng của máy tính cục bộ nhưng tôi muốn biết làm cách nào để đánh hơi lưu lượng của một máy từ xa bằng wireshark?

Khi ở tùy chọn chụp, tôi chọn giao diện từ xa và nhập ip từ xa hiển thị cho tôi error.code (10061). Tôi nên làm gì?


5
Bạn chỉ có thể đánh hơi lưu lượng truy cập mà giao diện mạng của bạn đang nhìn thấy. Nếu mạng được chuyển gói đến máy từ xa sẽ không được gửi cho bạn. BTW: cố gắng cải thiện tỷ lệ chấp nhận của bạn.
Matteo

Câu trả lời:


54

Trên Linux và OSX, bạn có thể đạt được điều này bằng cách chạy tcpdump qua ssh và nghe wireshark trên đường ống.

  1. Tạo một đường ống có tên:

    $ mkfifo /tmp/remote

  2. Bắt đầu wireshark từ dòng lệnh

    $ wireshark -k -i /tmp/remote

  3. Chạy tcpdump qua ssh trên máy từ xa của bạn và chuyển hướng các gói đến đường ống có tên:

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

Nguồn: http://blog.nielshorn.net/2010/02/USE-wireshark-with-remote-capturing/


Có thể bắt các gói đi qua một bộ định tuyến trên chính bộ định tuyến theo cách này, hoặc đó là một điều không thể?
inf3rno

Điều đó thật tuyệt. 2c của tôi: cho phép [ssh root] thường không được khuyên dùng, nhưng bạn có thể tạm thời bật nó bằng cách thêm root vào dòng [Match User] trong / etc / ssh / sshd_config.
psychboom

Điều này không làm việc cho tôi, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remotebạn có thể cho tôi biết tại sao?
Phượng hoàng

@infmo nếu bộ định tuyến có thể chạy tcpdump trực tiếp thì có, điều đó là có thể. Của tôi không có không gian để cài đặt tcpdump. Không phổ biến cho các bộ định tuyến cấp thấp.
wheredidthatnamecome từ

21

Tôi sử dụng oneliner này như root. Rất hữu ích!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

Cái cuối cùng -trước de |là sự chuyển hướng của đầu ra đó và được sử dụng cho đầu vào tiêu chuẩn của wireshark. Các -ktùy chọn trong phương tiện Wireshark "bắt đầu inmidiately sniffing


Câu trả lời đầu tiên tốt nhất tôi từng thấy.
sjas

10

Một cách tiếp cận là sử dụng cái được gọi là cổng gương hoặc span trên công tắc của bạn. Nếu công tắc của bạn không đủ mạnh, bạn cũng có thể đặt một trung tâm nhỏ nằm giữa kết nối của công tắc / máy chủ để bắt. Bạn kết nối một liên kết vật lý từ máy chủ nghe của bạn với cổng / trung tâm đó và sau đó bạn có thể thấy tất cả lưu lượng truy cập qua thiết bị. Ngoài ra, bạn sẽ cần cài đặt phần mềm chụp gói tin của bạn ở một vị trí chiến lược hơn trong mạng của bạn như tường lửa / bộ định tuyến biên.


Tôi có một vấn đề ít nhiều thú vị có thể được giải quyết theo cách này. Bạn có thể trả lời không? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

Bạn có thể sử dụng một bộ mô tả tập tin để kết nối và nhận các gói bằng cách sshvà dẫn nó đến wireshark cục bộ:

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

Bạn wireshark sẽ mở và hiển thị cho bạn "Giao diện" giống như /dev/fd/63mô tả tệp chứa dữ liệu từ hệ thống từ xa.



1

Theo RHEL, câu trả lời của konrad không hiệu quả với tôi vì tcpdumpyêu cầu root và tôi chỉ có quyền truy cập sudo. Những gì đã làm là tạo ra một fifo từ xa mà tôi có thể đọc từ:

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

và gửi dữ liệu bằng một kết nối riêng:

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

và cuối cùng bắt đầu Wireshark

local:~$ wireshark -k -i pcap

0

Bạn chỉ có thể đánh hơi lưu lượng truy cập mà làm cho nó. Vì vậy, Joe A sẽ đến Joe B không bao giờ đến gần PC của bạn, vì vậy bạn không thể nhìn thấy nó.

Cách duy nhất là để bạn có được lưu lượng truy cập hoặc có được lưu lượng truy cập cho bạn. Để có được lưu lượng truy cập yêu cầu kết nối với bộ định tuyến hoặc bộ chuyển mạch hoặc trung tâm tốt ở đâu đó ở giữa kết nối của họ. Để có được lưu lượng truy cập cho bạn, bạn sẽ cần ARP đầu độc một số công tắc để họ nghĩ rằng chúng là của bạn.


0

Ngoài các câu trả lời trước đó, phiên bản với netcat cũng nccó thể hữu ích:

Máy chủ từ xa:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

Chủ nhà địa phương:

wireshark -ki <(nc 192.168.1.1 10000)

Lưu ý về phương pháp này: Nó làm cho cổng không an toàn mở ra cho tất cả các giao diện, vì vậy hãy đảm bảo lọc các kết nối đến với các quy tắc tường lửa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.