如何使用 wireshark 嗅探远程机器的流量?

如何使用 wireshark 嗅探远程机器的流量?

我可以嗅探本地电脑的流量,但我想知道如何通过 wireshark 嗅探远程机器的流量?

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

答案1

在 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/

答案2

我以 root 身份使用这个 oneliner。非常有用!

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

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

答案3

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

答案4

在 RHEL 下,konrad 的答案对我不起作用,因为tcpdump需要 root 权限,而我只有 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

相关内容