使用第三方PC对通信设备进行抓包的方法
一、 利用ettercap来抓包
我们在日常设备开发、调试或者维护的时候,通常需要对其通信的数据包进行分析。但由于条件限制,一些设备上不方便抓包,这时就需要用到其它设备进行辅助抓包,比如交换机端口镜像,但毕竟要求条件比较高。其实我们可以采用一种取巧的方式,使用一台PC机运行ettercap进行中间人的方式,然后在这台PC上监控那些设备之间的通信数据,进行抓包。
使用ettercap方式对两台设备之间进行抓包,可以在很多场景下应用,例如:
1 用PC机抓手机app和服务器的通信数据包。
2 用PC机抓设备和服务器或者设备和设备之间的数据包。
3 用自己PC机抓一些不方便操作的PC机和外部通信的数据包。
二、真实抓包经历
下边描述下我使用该方式进行抓包的过程。
我们在开发一种网络通道加密设备,调试的时候需要抓包分析两台加密和解密设备之间的通信。拓扑结构如下:
正常情况下,想要对两个设备进行通信抓包,只能考虑在交换机中进行抓包,或者进行端口镜像,再使用PC进行抓包。但目前找不到具有端口镜像功能的交换机。只能选择ettercap的方式。
1.准备工作
首先,搭建ettercap中间人的环境。我的PC机环境:
系统: kali linux系统
工具:ettercap,wireshark
注:我使用的是kali 的虚拟机,网上有很多安装kali的教程。应该也有windows上的arp工具,暂时就不研究了。
2. ettercap配置过程
(1)打开ettercap 的图形界面之后点击”sniff”,选择”unified sniffing”然后根据自己的要求选择要抓包的网卡。
(2)单击Hosts选项,选择Scan for host,待扫描完成之后再选择Scan for host,然后选择Host list,此时可以看到ettercap已经扫描的主机列表。
(3) 在host列表中找到两台设备的IP,选中设备A点击Add to Target 1(添加到目标1),选中设备B点击Add to Target 2(添加到目标2),可以看到ettercap提示成功加入目标,
(4)确定ARP欺骗的方式,选择“mitm”—“arp poisoning”— “Sniff remote connections” — “确定”
(5)最后,选择“Start” — “Start sniffing” 开始监听!!!
3. 开始抓包
此时的网络通信拓扑如下:
因为两个设备的通信数据都会经过我的PC机,所以使用wireshark就可以抓包了。图如下: