使用 Wireshark 完成远程数据包捕获
    在实际工作中,我们经常会遇到需要捕获其他设备通信数据包的情况。其中的一种情况就是,我们拥有这个设备的控制权,但是却不便直接去接触它,例如托管在机房的服务器,而下图中给出的就是这样一种情形。
    image.png
    Wireshark 提供了一种远程数据包捕获的功能,这样我们就可以很方便地监控远程服务器上的流量。要实现这个功能的操作也并不复杂,只需要在服务器上安装 RPCAP 即可。如果你的服务器安装的是 Windows 系列操作系统的话就更加简单了,常用的 WinPcap 软件就包含了 RPCAP。你可以到 WinPcap 的官网下载 WinPcap,完成下载后,点击安装包,即可按照正常流程进行安装。
    image.png
    rpcapd 有被动工作和主动工作两种模式,其中被动模式中需要客户端主动连接服务器。但是如果服务器所在的网络部署了防火墙,而且使用了 NAT(地址转换)技术,这种情况下,客户端就无法连接到服务器中,就需要使用主动模式,让服务器去主动连接到客户端。常用的几个参数如下所示。
    -b 指定 rpcapd 进程监听的 IP 地址,从别的地址进入到 rpcapd 的请求,它是不会给予响应的。如果省略该选项,就表示 rpcapd 监听所有的本地 ipv4 的地址。
    -p 指定 rpcapd 进程监听的端口,默认是 2002,可以省略。
    -l 指定一个地址列表文件,允许哪些地址可以访问 rpcapd 进程。
    -n 不启用认证功能,任何主机都可以访问 rpcapd 进程。
    -d 以守护进程方式运行。
    image.png
    现在以两台主机为例,一台为远程主机,IP 地址为 192.168.0.137,这台主机上安装了 WinPcap。另一台是我们的计算机,IP 地址为 192.168.0.1,安装了 Wireshark。我们在远程主机上启动 rpcapd 服务,这里没有指定任何参数。
    image.png
    在弹出的“Wireshark·捕获接口”中选中右侧的“管理接口”,在“管理接口”界面的选项卡中选择“远程接口”,然后单击左下角的“+”按钮。端口为默认的2002image.pngimage.png

    集线器环境下使用 Wireshark
    很多网络方面的教材都涉及抓包这个问题,这里特别需要提出的一点就是很多早期的
    教材都没有介绍到装有抓包工具的计算机如何部署。这些书中一般只提到了将网卡设置为
    混杂模式,接下来就说可以捕获到计算机所在网络内的所有通信流量。但是这种情形在现
    有的大部分网络中已经不再适用。
    image.png

    交换机环境下使用 Wireshark
    但是在现在的网络中,集线器已经很难见到了,几乎所有的局域网都使用交换机作为网络设备。而交换机的原理完全不同于集线器。如图 所示,一个具备了 4 个端口的交换机,连接了 A、B、C、D 共 4 台计算机,其中的 A 要将一个信息发送到 B 处,而交换机作为网络的中心对信息进行转发。只有计算机 B 才能收到来自 A 的信息,其他的主机是接收不到这个信息的
    image.png

    端口镜像
    如果你拥有了交换机的控制权限,就可以检查这个交换机是否支持端口镜像。如果支持这个功能,就无需对网络进行任何线路上的改动。简单来说,端口镜像就是将交换机上一个或者几个端口的数据流量复制并转发到某一个指定端口上,这个指定端口被称为“镜像端口”。目前很多交换机都具备了端口镜像的功能。例如我们就可以将其中的一个端口设置为“镜像端口”,然后需要监视的流量都转发到这个镜像端口,这样我们将监控的计算机 A 连接到这个端口就可以对目标进行监控了。
    image.png
    交换机镜像端口

    客户端 192.168.1.1 Ethernet0/0/1
    PC1 192.168.1.2 Ethernet0/0/2
    服务端 192.168.1.3 Ethernet0/0/3

    image.png

    路由器同样也提供了端口镜像功能,这里我们以华为的设备 A1220 为例。当路由器与交换机在配置时,仅仅有一点区别,就是在设置镜像端口时,交换机使用的是port-mirroring 命令,而路由器使用的是 mirror 命令。

    image.png

    image.png

    ARP欺骗
    在大多数情况下,我们可能既不能去更改网络物理线路,也不能使用交换机的端口镜像功能。这时可以使用 ARPSpoof 或者 Cain 之类的工具来实现中间人(NITM)攻击。这种技术经常被黑客用来进行网络监听,所以也被看作是一种入侵行为。ARP 欺骗无需对网络做出任何的改动,只需要在自己的计算机上运行欺骗工具即可,但是需要注意的是这种行为往往会被认定为入侵行为。
    image.png
    中间人攻击是一个很有意思的技术。下面我们来介绍其中一种很有效的攻击 Arpspoof。这个工具有windows和Linux的两种版本,没有图形化的工作界面,但是使用的命令格式很简单
    Arpspoof [-i 指定使用的网卡] [-t 要欺骗的目标主机] [-r] 要伪造成的主机
    列如:监听 192.168.169.132 和 192.168.169.2之间的通信为例
    Arpspoof -i eth0 -t 192.168.169.132 192.168.169.2

    网络分路器(TAP)
    在对其他计算机进行网络数据分析时,网络分路器(TAP)也是一个非常不错的选择。网络分路器有些像我们生活中使用的水管“三通”的意思,即原来的流量正常通行,同时复制一份出来供监测设备分析使用。给出的就是一个构造很简单的网络分路器,它一共有 4 个接口,左侧两个 Network 接口用来连接被监听的设备,右侧的 Monitor 接口用来连接监听设备。这个过程其实和交换机的镜像端口有一点像,只不过 TAP 的使用要灵活一些。image.png

    完成本地流量的捕获
    通常 Wireshark 不能直接抓取本地的回环数据包,这在很多时候都会给我们带来不便。例如一个前台程序和它所使用的数据库都安装在同一台服务器上的时候,前台程序如果使用 127.0.0.1 这个地址来访问数据库,此时直接使用 Wireshark 就无法捕获它们之间通信的数据。
    image.png
    首先我们需要到RawCap的官方网站下载这个工具。
    命令符输入
    RawCap.exe 127.0.0.1 Capture.pcap
    然后进入抓包状态。Ctrl+C停止抓包工作

    完成虚拟机流量的捕获
    很多情况需要我们对虚拟机进行流量捕获,这里面以 VMware 为例,当 VMware 安装后系统会默认安装 3 个虚拟网卡 VMnet0、VMnet1 和 VMnet8,这些虚拟网卡除了无法接触到之外,其余的地方都是一模一样的。下面给出了安装完 VMware 之后系统中添加的网卡设备,注意这里并不显示 VMnet0。
    image.png
    image.png