WireShark 抓包疯狂聊天
实验目的
网络协议深入了解。练习wireshark抓取网络数据包。在两台的电脑(笔记本电脑win10 主机与ubuntu虚拟机。网卡选择桥接模式,可得到两个子网IPv4地址)上运行 “疯狂聊天室”程序,通过wireshark抓包:
1)分析此程序网络连接采用的是哪种协议(TCP、UDP)和什么端口号?
2)试着在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明文)
3)如果是网络连接采取的是TCP,分析其建立连接时的3次握手,断开连接时的4次握手;如果是UDP,解释该程序为何能够在多台电脑之间(只有是同一个聊天室编号)同时传输聊天数据?
实验原理
这里的主要原理看我前面的两篇博客:
-
WireShark 抓包入门
-
TCP 与 UDP 协议分析
实验过程
环境准备
这里我们需要关闭除了我们正在使用的虚拟网络和物理机网络以外的所有连接,确保我们能够一对一进行通信
Windows 主机设置:
注意:这里我们需要关闭所有的防火墙设置,确保我们能够收到通信数据
启动软件
我们直接在主机和虚拟机上分别启动 crazychat.exe 程序,然后输入用户名,选择同一个房间进入,这样才能保证通信
在 Ubuntu 下第一次使用 Wine 会自动生成一些默认配置,需要耐心等待,大约半分钟左右
这里我们在 Windows 主机和 Ubuntu 虚拟机下都选择进入 1 号聊天室
然后我们发送一些文字来测试能否互相通信:
这里我们双方收到了对方发来的消息,说明通信成功
WireShark 抓包
我们已经成功进行了通信,现在我们要对通信进行抓包,这里我们通过同时对目的地址和源地址进行过滤,抓包,命令如下:
ip.dst == 255.255.255.255 && ip.src == 192.168.3.7
然后我们发送信息进行通讯,然后查看抓包数据
Windows 向 Ubuntu 发送数据:
抓包如下:
Ubuntu 向 Windows 发送数据:
抓包如下:
结果分析
第一次 Windows 向 Ubuntu 发送信息,抓包如下:
选中数据,查看数据对应的数据流串码,右键点击然后选择追踪流可以查看详细数据:
由于默认的数据格式是 ASCII ,看到的是一串字符码,我们需要改成系统对应的数据格式,才能看到真正的字符串
第二次 Ubuntu 向 Windows 发送信息,抓包如下:
选中数据,查看数据对应的数据流串码,右键点击然后选择追踪流可以查看详细数据:
由于默认的数据格式是 ASCII ,看到的是一串字符码,我们需要改成系统对应的数据格式,才能看到真正的字符串,但是由于这里我们发送的是英文字符串,所以没有影响
通过以上结果分析,我们已经抓包成功,并且已经成功的得到了我们想要的数据