如何通过Wireshark嗅探远程计算机的流量?


38

我可以嗅探本地PC的流量,但是我想知道如何通过Wireshark嗅探远程计算机的流量?

在捕获选项中时,我选择远程接口并输入我的远程IP,向我显示error.code(10061)。我该怎么办?


5
您只能嗅探网络接口看到的流量。如果网络已切换,则不会将发送到远程计算机的数据包发送给您。顺便说一句:尝试提高您的接受率。
Matteo

Answers:


54

在Linux和OSX上,您可以通过在ssh上运行tcpdump并让Wireshark监听管道来实现此目的。

  1. 创建一个命名管道:

    $ mkfifo /tmp/remote

  2. 从命令行启动wireshark

    $ wireshark -k -i /tmp/remote

  3. 在远程计算机上的ssh上运行tcpdump并将数据包重定向到命名管道:

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

资料来源:http : //blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/


是否可以通过这种方式在路由器本身上捕获通过路由器的数据包,或者这是不可能的?
inf3rno

这很棒。我的2c:通常不建议允许[ssh root],但是您可以通过在/ etc / ssh / sshd_config中的[Match User]行中添加root来暂时启用它。
moodboom

这对我不起作用,你ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote能告诉我为什么吗?
菲尼克斯

@infmo如果路由器可以直接运行tcpdump,则应该可以。我没有空间安装tcpdump。低端路由器并不少见。
名称来自

21

我将此oneliner用作根。是非常有用的!

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

-de之前的最后一个|是该输出的重定向,并由wireshark用作标准输入。-kWireshark中的选项表示“开始中等嗅探


我见过的最好的第一答案。
sjas

10

一种方法是在交换机上使用所谓的镜像或跨接端口。如果您的交换机不够智能,您还可以在交换机/主机到捕获的连接之间放置一个小型集线器。您将物理链接从侦听主机连接到该端口/集线器,然后您便可以查看通过该设备的所有流量。或者,您需要将数据包捕获软件安装在网络中更重要的位置,例如边界防火墙/路由器。


我有一个或多或少有趣的问题,可以通过这种方式解决。你能回答吗?serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

您可以使用文件描述符来连接和接收数据包,ssh并将其通过管道传递到本地wireshark:

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

您的Wirehark将打开并向您显示“接口”,如/dev/fd/63,它是包含远程系统数据的文件描述符。



1

在RHEL下,由于tcpdump需要root用户,konrad的答案对我不起作用,而且我只有sudo访问权限。所做的工作是创建一个我可以从中读取的额外的远程fifo:

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

并通过单独的连接发送数据:

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

最后启动Wireshark

local:~$ wireshark -k -i pcap

0

您只能嗅探到您的流量。因此,Joe A到Joe B的位置永远不会靠近您的PC,因此您看不到它。

唯一的办法就是让您吸引流量或吸引流量。要获得流量,需要在其连接中间的某个位置连接路由器或良好的交换机或集线器。为了将流量发送给您,您需要对某些交换机进行ARP毒化处理,以使它们认为您认为正确。


0

除了以前的答案,带有netcat的版本nc也可能有用:

远程主机:

mkfifo /tmp/mypcap.fifo

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

nc -l 10000 < /tmp/mypcap.fifo

本地主机:

wireshark -ki <(nc 192.168.1.1 10000)

关于此方法的注意事项:它使不安全的端口向所有接口开放,因此请确保使用防火墙规则过滤传入的连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.