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选块结束)
去掉尾部
这次是一个换行符,后边又文件结束标志———-,同样删除。
然后将文件保存,成功打开文件