3. WireShark的部署方式
现实中遇到的情况研究的对象往往要包括网络中的其他设备,我们需要找出合适的方案来捕获并分析那些本来不属于本机的数据包。实际上,这个问题的解决方法有很多种,其中有的会涉及软件使用,有的会涉及硬件安装,这些方案各自有适用的场合。本章将会围绕这些方法的具体实施步骤和适用场合进行展开,包括内容如下:
- 使用Wireshark完成远程数据包捕获;
- 集线器环境下使用Wireshark;
- 交换机环境下使用Wireshark
- 使用Wireshark完成本地流量的捕获;
- 使用Wireshark完成虚拟机流量的捕获;
3.1 远程完成远程数据包捕获
在实际工作中,我们经常会遇到需要捕获其他设备通信数据包的情况。其中的一种情况就是,我们拥有这个设备的控制权,但是却不便直接去接触它,例如托管在机房的服务器,而下图中给出
Wireshark提供了一种远程数据包捕获的功能,这样我们就可以很方便地监控远程服务器上的流量。要实现这个功能的操作也并不复杂,只需要在服务器上安装RPCAP即可。如果你的服务器安装的是Windows系列操作系统的话就更加简单了,常用的WinPcap软件就包含了RPCAP,你可以到WinPcap的官网下载WinPcap,完成下载后,点击安装包,即可按照正常流程进行安装
rpcapd有被动工作和主动工作两种模式,其中被动模式中需要客户端主动连接服务器。但是如果服务器所在的网络部署了防火墙,而且使用了NAT (地址转换)技术,这种情况下,客户端就无法连接到服务器中,就需要使用主动模式,让服务嚣去主动连接到客户端。常用的几个参数如下所示。
- -b指定rpcapd进程监听的IP地址,从别的地址进入到rpcapd的请求,它是不会给予响应的。如果省略该选项,就表示rpcapd监听所有的本地ipv4的地址。
- -p指定rpcapd进程监听的端口,默认是2002,可以省略。
- -l指定一个地址列表文件,允许哪些地址可以访问rpcapd进程。
- -n不启用认证功能,任何主机都可以访问rpcapd进程。
- -d以守护进程方式运行。
实验
选择win7服务器,安装WinPcap_4_1_3后自带rpcapd,如图
使用参数-n,不进行认证
查看服务ip地址
在本机打开WireShark,点击捕获按钮,在弹出的"Wireshark捕获接口"中选中右侧的“管理接口" ,在“管理接口"界面的选项卡中选择"远程接口" ,然后单击左下角的"+"按钮。
填写ip和端口,端口为默认,认证刚刚配置-n,为无认证
选中添加的这个网卡
可以看到产生大量数据包
3.2 集线器环境
很多网络方面的教材都涉及抓包这个问题,这里特别需要提出的一点就是很多早期的教材都没有介绍到装有抓包工具的计算机如何部署。这些书中一般只提到了将网卡设置为混杂模式,接下来就说可以捕获到计算机所在网络内的所有通信流量。但是这种情形在现有的大部分网络中已经不再适用。
集线器相当于网线,收到数据包后会发给所连的所有pc,BCD网卡会解读一下,看是不是发给自己的,不是就丢弃,但如果设置为混杂模式就会接受所有的数据包,不管是不是自己的。
WireShark启动时就是自动设置为混杂模式
3.3 交换环境
但是在现在的网络中,集线器已经很难见到了,几乎所有的局域网都使用交换机作为网络设备。而交换机的原理完全不同于集线器。如图所示,一个具备了4个端口的交换机,连接了A.B.C.D共4台计算机,其中的A要将一个信息发送到B处,而交换机作为网络的中心对信息进行转发。只有计算机B才能收到来自A的信息,其他的主机是接收不到这个信息的。
这种情况下有三种解决方法:
3.3.1 端口镜像
如果你拥有了交换机的控制权限,就可以检查这个交换机是否支持端口镜像。如果支持这个功能,就无需对网络进行任何线路上的改动。简单来说,端口镜像就是将交换机上一个或者几个端口的数据流量复制并转发到某一个指定端口上,这个指定端口被称为"镜像端口"目前很多交换机都具备了端口镜像的功能。例如我们就可以将其中的一个端口设置为"镜像端口" ,然后需要监视的流量都转发到这个镜像端口,这样我们将监控的计算机A连接到这个端口就可以对目标进行监控了。
实验
由于模拟器不完善,交换机可以配置但无法验证。因此使用路由器,
路由器同样也提供了端口镜像功能,这里我们以华为的设备A1220为例。当路由器与交换机在配置时,仅仅有一点区别,就是在设置镜像端口时,交换机使用的是port-mirroring命令而路由器使用的是mirror命令。
拓扑图如下:
pc3配不配ip无所谓
配置pc1,填写完毕后,点击应用
配置pc2
我们想要监测路由器右边的接口的通信,只需要做端口镜像。凡是从e0/0/1接口过的流量都复制一份到e0/0/0口,我们可以实现对e0/0/0接口的监控
pc3模拟网管的pc
配置路由器
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]observe-port interface e0/0/0
[Huawei]int GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0
Jan 30 2020 22:44:07-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[0]:The line protocol
IP on the interface GigabitEthernet0/0/0 has entered the UP state.
[Huawei-GigabitEthernet0/0/0]quit
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.1 255.255.255.0
Jan 30 2020 22:44:32-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
IP on the interface GigabitEthernet0/0/1 has entered the UP state.
[Huawei-GigabitEthernet0/0/1]mirror to observe-port ?//这里可以监控入流量,出流量以及所有
both Assign Mirror to both inbound and outbound of an interface
inbound Assign Mirror to the inbound of an interface
outbound Assign Mirror to the outbound of an interface
[Huawei-GigabitEthernet0/0/1]mirror to observe-port both
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]1
右键如图节点,点击开始抓包
验证:
pc1 ping pc2
可以看到所抓的icmp包
3.3.2 ARP欺骗
在大多数情况下,我们可能既不能去更改网络物理线路,也不能使用交换机的端口镜像功能。这时可以使用ARPSpoof或者Cain之类的工具来实现中间人(NITM)攻击。这种技术经常被黑客用来进行网络监听,所以也被看作是一种入侵行为。ARP欺骗无需对网络做出任何的改动,只需要在自己的计算机上运行欺骗工具即可,但是需要注意的是这种行为往往会被认定为入侵行为。
实验
用到kali(云就是kali)
连好后,在kali中打开,WireShark用pc2 ping pc1,kali中WireShark 没有反应
使用arp欺骗工具ettercap
选择网卡,
找出网络中的计算机,扫描
查看扫描结果
现在欺骗192.168.159.130
选中ip所在行,选择Mitm——arp…
此时,凡是从130发送或发往130的包都会经过kali
3.3.3网络分路器
在对其他计算机进行网络数据分析时,网络分路器(TAP)也是一个非常不错的选择。网络分路器有些像我们生活中使用的水管“三通”的意思,即原来的流量正常通行,同时复制一份出来供监测设备分析使用。给出的就是一个构造很简单的网络分路器,它一共有4个接口,左侧两个Network接口用来连接被监听的设备,右侧的Monitor接口用来连接监听设备。这个过程其实和交换机的镜像端口有一点像,只不过TAP的使用要灵活一些。
3.4完成本地流量的捕获
通常Wireshark不能直接抓取本地的回环数据包,这在很多时候都会给我们带来不便。例如一个前台程序和它所使用的数据库都安装在同一台服务器上的时候,前台程序如果使用
127.0.0.1这个地址来访问数据库,此时直接使用Wireshark就无法捕获它们之间通信的数
使用RawCap
使用WireShark打开刚刚保存的包
3.5完成虚拟机流量的捕获
很多情况需要我们对虚拟机进行流量捕获,这里面以VMware为例,当VMware安装后系统会默认安装3个虚拟网卡VMnet0, VMnet1和VMnet8,这些虚拟网卡除了无法接触到之外,其余的地方都是一模一样的。下面给出了安装完VMware之后系统中添加的网卡设备,注意这里并不显示VMnetO