当前位置: 首页 > 专业知识 > wireshark之文件还原

wireshark之文件还原

发表于:2021-02-08 15:08 作者: mtr 阅读数(1077人)

你是否正在收集各类网安网安知识学习,合天网安实验室为你总结了1300+网安技能任你学,点击获取免费靶场>>


本文涉及相关实验wireshark之文件还原 https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014122315591000001

实验目标

黑客A通过ARP欺骗,使用wireshark获取了整个局域网内的网络流量信息。无意之中,他发现有人在某个网站上上传了一份文件。但是他不知道怎么样通过wireshark去还原这份文件,没办法,他将监听到的数据包保存为了一份wireshark的监听记录,打算去向你请教。你能帮助他找到那份上传的文件吗

我们的任务分为3个部分:

1. 对抓到的包进行显示过滤,找到关键信息。

2. 对信息进行跟踪确定上传文件的TCP流,并保存为二进制原始文件。

3. 对文件中上传文件的信息进行处理去掉多余的包头和包尾得到原始文件

 

1.1 实验任务一

任务描述:使用wireshark导入监听数据包,对数据进行显示过滤,提取出来关键信息。

1. 打开catchme.pcapng,双击即可会发现数据记录一共有148条。如果单纯的从开始到结尾去一条一条的审计,是非常费力的事情。而且实际操作过程中,148条记录,已经算是很少的了。

图片1.png

2. 好在wireshark为我们提供了强大的过滤显示功能。我们在filter中可以定义显示出来什么样的数据包。 图片2.png

3. 从题目我们可以明确,上传时访问的是个网站,因此我们需要进行协议过滤。在filter中输入http,表示我们要显示所有使用http协议的数据包。输入回车,或者点击旁边的APPLY按钮,就可以进行显示过滤。

图片3.png 

从图上下方我们可以看到数据包由原来的148个变成了32个。这样就很容易帮我们分析了。

4. 仔细分析,我们会在末尾左右的第143条数据记录中的info中看到upload这个词,我们怀疑这条就是涉及到上传的数据包。

图片4.png 

 

如果你在此之前有些编写网站的经验就会知道上传文件提交可以使用post一个表单的形式所以,你也可以使用包过滤显示选出所有使用post方法提交的数据包我们可以输入http.request.method==”POST”进行包过滤这时候的显示如下

图片5.png 

看到了吧,这时候只显示了唯一一条记录,就是我们刚才找到的序号为143的记录,是不是快了很多啊。因此,掌握数据包过滤,是熟练掌握wireshark的必备技能之一。

1.2 实验任务二

任务描述确定POST这条数据包是否上传了文件若存在则将数据dump出来

1. 虽然我们看到了有upload关键字,有post方法,但是我们不能确定是不是真的就是上传文件的那个请求。我们来分析一下。双击该行。弹出协议分析框。点击+号,将子栏展开。

图片6.png 

我们可以看到确实是上传了文件而且文件名是bingo.png.原来他上传的是一张图片在上方红色部分我们可以看到由于文件比较大TCP协议对其进行了切片,一共切了5个片。我们点击下方的各个Frame,就可以看到每个包中的内容。

问题来了能不能将这几个切片还原成一个流式会话这样我们就能看到一个会话过程而不是需要一个一个的去点击

Wireshark还真可以做到

2. 关闭这个界面回到我们过滤后的那个POST包,右键Follow TCP Stream

 图片7.png

这时候我们会看到

图片8.png 

整个会话都被还原了出来我们看到了png的原始信息。继续往下拉,我们会看到有关蓝色的显示,这是服务器给我们的回应。我们的图片信息保存在请求部分,因此可以过滤掉响应部分。

图片9.png 

因为文件肯定比响应大所以我们选择6010那个。这时候就没有响应部分出现了。

 

3. 保存原始文件,以便下一步处理。我们已经知道,请求部分中包含了文件的原始信息。因此,我们可以先保存下来,然后处理一下,得到原始文件。

我们选择raw类型进行保存,表示使用二进制形式保存文件。

图片10.png

保存为任意格式的文件这里我们保存为temp.bin

 

1.3 实验任务三

任务描述:

使用winhex对文件进行最终处理并保存文件

1. 将刚才保存的temp.binwinhex打开

会看到文中包含请求信息和我们的图片信息以及文件结尾的尾部信息我们需要做的事情是确定图片文件的原始信息头和尾去掉多余部分图片11.png

 图片12.png

2. 回到wireshark中,会看到我们刚才的tcp stream流中图片13.png关于图片的头部分
 

content-type: image/x-png后面有两个换行符,然后开始我们的原始文件。换行符用十六进制表示是 0D 0A.因为有两个,所以,我们在图片附近寻找0D 0A 0D 0A.后面的部分就表示图片的开始。

3. 回到winhex中,我们找到了上述数字

图片14.png 

这时候我们需要去掉图片以上的部分。在00000000偏移处点击alt+1,表示选块开始

图片15.png 

在我们找到的0D 0A 0D 0A处的最后一个0A处点击alt+2.表示选块结束这时候我们就选中了图片之前的多余部分

图片16.png 

按下delete,选择yes

图片17.png 

这时候文件中的多余头部已经被删除

图片18.png 

4.回到wireshark我们看看图片传送完毕之后的尾部部分

图片19.png 

我们可以看到这次是一个换行符后面有些文件结束标志-------------我们同样删除它们

图片20.png 

这时候我们的文件中就仅仅是原始图片的内容了。Ctrl+S保存

图片21.png 

最激动人心的一步来了将我们的temp.bin改为temp.png.打开看下

图片22.png 

祝贺你已经完成了我们本次实验拿下神秘的key。


这个技术你学会了吗?加入网安实验室,1300+网安技能任你学!

靶场.png