简介
- WireShark的追踪流功能可以帮我们抓取从网络上下载的各种文件,接下来就演示下如何抓取并且进行还原。
使用Nginx搭建文件存储服务器
- 只要是通过http网站下载的包,都可以通过追踪流工具进行抓取。这里为了演示,临时搭建一个Nginx文件存储服务器。
- 首先我们准备一台Nginx服务器,把默认配置改成这个。这个时候,我们访问对应端口,就不展示网页了,就会展示download目录下的文件。download目录需要我们自己在 /usr/local/nginx下创建,然后把文件放到这个目录下就可以了。download名字可以随便起,只要和配置文件中保持一致就可以。
-
server { listen 10088; server_name localhost; location / { root download; autoindex on; autoindex_exact_size off; } }
- 我上传了一个notepad++安装包和一个证书文件,看下效果。我们访问对应端口,就会展示Nginx服务器上存储的文件。
抓取数据包
- 打开wireShark进行抓取,然后点击安装包,就会自动下载。下载完成后,我们就可以进行分析了。我们直接用http进行过滤。
- 点击客户端发起的第一个GET请求,右键,选择追踪流->TCP流
- 然后就会显示下载文件的所有交互数据流
- 选择底部的Show data as 为 原始数据,然后将数据存储到文件中。
还原数据
- 打开刚才的文件。可以看到,上面是http请求头的一些信息,删除掉,我们保留数据域部分就可以。exe文件默认是MZ开头的,我们只需要将MZ前面的数据全部删除掉后保存文件,然后将文件后缀名命名为exe即可。
- 这个时候就已经还原成功了,可以直接双击这个文件运行。
使用二进制编辑器还原数据
- 为了防止误删数据信息,或者我们不知道文件数据的开头是什么,所以最好用二进制编辑器打开我们刚才保存的数据流文件。我使用的是UltraEdit。
- 一般http请求头与数据域部分会用两个回车进行分割,十六进制是 0D 0A 0D 0A 进行表示。找到0D 0A 0D 0A , 直接把包括0D 0A 0D 0A在内的上面的所有请求头信息删除或剪贴掉,然后重新保存文件,也能还原文件。