Wireshark查看TCP三次握手以及流式图片恢复

过滤器

显示过滤器

也就是主界面上的,用来在捕获的记录中找到所需要的记录

捕获过滤器

用来过滤捕获的封包,一面捕获太多的记录。Capture -> Capture Filters中设置

Filter表达式规则


可以使用多个表达式,表达式之间的逻辑运算符为 AND / OR

使用Wireshark来查看TCP三次握手

打开Wireshark,开始捕获,在浏览器中输入www.baidu.com。然后再wireshark中输入http进行过滤,找到请求百度的GET数据包。右击follow TCP,然后发现在HTTP请求百度之前,有三个TCP连接

回顾一下TCP三次握手

第一个TCP包


客户端发送一个TCP,标志位为SYN,序列号置为0,代表客户端请求建立连接。

第二个TCP包


标志位为SYN,ACK,将序列号(Acknowledgment number)设置为客户端的ISN(初始序列号)+1,也就是0+1=1

第三个TCP包


客户端再次发送确认包(ACK)SYN标志位为0,ACK标志位为1,并且把服务器传过来的ACK的序号字段加1,放在确认字段发送给对方。

Wireshark之文件还原

实验场景

黑客A通过ARP欺骗,使用wireshark获取了整个局域网上的流量信息,发现某人在某个网站上传了一份文件。他将监听到的数据报保存了一份,需要将其还原。

还原

打开数据包,因为上传访问的是网站,所以输入http进行协议过滤。

文件上传可以使用一个post表单形式,可以输入http.request.method == “POST”过滤出这个数据包

对数据包进行分析,得知上传的文件是图片类型,以及由于文件比较大,TCP协议对其进行了切片,一共切了5个片。

如何将这几个切片还原成一个流式会话?
找到那个POST数据包,右击Follow TCP Stream

过滤掉服务器的响应部分,选择6010

保存为文件1.png

使用winhex打开文件对其进行最后处理

文件中包含请求信息、图片信息,以及文件结尾的尾部部分。

去掉头部

这里有两种方法

方法一:因为原始已经得知是PNG文件,所以你直接以16进制搜索Png的文件头,去掉文件头之前的内容即可。

方法二:
回到wireshark查看tcp stream流

在content-Type:image/x-png后边有两个换行符,然后是我们的原始文件。
换行符用十六进制表示是0D 0A,所以在图片中寻找,0D 0A 0D 0A,在Winhex中将其以及之前的删除即可去除头部信息。

快捷键(alt+1选块开始,alt+2选块结束)

去掉尾部


这次是一个换行符,后边又文件结束标志———-,同样删除。

然后将文件保存,成功打开文件