一、使用工具
1、WireShark:在 wireshark 的官网(Wireshark · Go Deep.)进行下载,我选择了 windows installer(64-bit),安装时可以修改安装路径,其他的保持默认即可,安装过程中会跳出一个插件的安装,也是保持默认即可。
2、Winpcap:在观看相关视频时,up主建议顺带安装这个软件(WinPcap · Download),它给 wireshark 提供了一些接口,具体用处可能等之后才了解。
二、实验过程
1、Capture Traces(捕获网络跟踪信息)
虽然文档看懂了,但是在自己操作的过程中发现了很多和原文档不相同的地方,比如第一次打开的时候把和options相关的都打开看了一遍,没有找到第一张图,所以判断这个实验文档应该是一年一年传承没有改变,因为如上文所说的wireshark版本是1.8和1.9,但是我现在使用的版本是3.6.8,因此实验文档仅用来参考,具体情况具体分析。
点击左上角齿轮形状的按钮进入捕获选项界面,进入界面后,在下方的筛选条件输入框中输入“tcp port 80”,如果输入框为绿色,说明格式正确,输入框为红色则说明内容有误,然后取消选择“使用混杂模式”。点击左上角第三个页面“选项”,可以看到出现了最开始的“enable network name resolution”复选框,勾选后点击开始。
然后打开浏览器并随便打开一些网页后,返回wireshark同样点击停止按钮,停止抓取。
可以看到,最界面上方出现了许多条记录,咱也看不懂这是干嘛的,感觉按照文档一步一步写出来的,应该是对的。
2、Inspect the Trace(检查跟踪)
我现在浏览器中输入 www.4399.com 进入4399小游戏网页,访问完成后然后返回 wireshark 点击停止捕获,筛选 HTTP GET 的数据包,然后在里面找到我们的访问记录(点击上方的 prototol按名称排序,然后大致在排序靠后的位置筛选,很容易找到),如下图,Host 为 4399.com,且经过检查,user-Agent 是本人(打开浏览器输入 about:version,进入后找到“用户代理”),确定这一条记录是我刚刚的访问记录。
这个包info栏显示为GET,是从我们的电脑发到服务器上的
我们可以从中间栏中查看它的具体信息:
第一部分 Frame 是一个记录,描述了关于包的总体信息,包括它被捕获的时间和它的长度。
第二个部分是 Ethernet(以太网),结构与下图相符合。
第三个部分分别是IP、TCP、HTTP三个协议,这个顺序是从栈底到栈顶依次上升的,这是因为包是从顶到底依次传递的,低层次协议的头部信息被加到高层次协议信息的前头。
从这里我们可以推测ip地址,单击 IP 协议可以查看具体内容:
与之相对应的有一条 200 OK 的记录,表示访问成功,在这次尝试中我出现 301 Moved Permanently 的报错,检查后表示永久重定向,说明请求的资源已经不存在了,需改⽤新的 URL 再次访问?
3、Packet Structure(数据包结构)
文档的要是是让我们画一个 HTTP GET 的数据包的图,显示 TCP、IP 和以太网协议标头的位置和大小(以字节为单位),当鼠标划过不同的协议,下面会有不同的内容出现高亮,依据这个,我们就可以画出图来。如下图,我点击 TCP 协议,在下方显示有32个字节。
下面是我画出的框图
4、Capture Packets from Other students
这个比较有意思,是让我们查看别人的数据包,具体操作和上述类似,只要在第一步当中勾选“使用混杂模式”,然后对找到的数据包进行分析。
我在实验过程中,在windos 和 linux 上均抓取不到同学的数据包,因此我用电脑连手机的热点,电脑再开热点让同学的电脑连接,这样就能抓取到同学的数据包,并能看到他在浏览什么网页。
如图,可以看到同学正在浏览哔哩哔哩。
三、实验总结
本次实验让我了解到了如何使用 wireshark 抓取网络数据,通过查阅资料了解到,通过连接网络后进行抓取,不仅可以看到别人正在浏览什么网站,还能看到别人的登录信息,包括用户名和密码,因此我们出门在外最好不要随便连别人的wifi。