如何使用wireShark的追踪流功能抓取并还原文件
简介
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;
}
}
1
2
3
4
5
6
7
8
9
10
我上传了一个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在内的上面的所有请求头信息删除或剪贴掉,然后重新保存文件,也能还原文件。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/new9232/article/details/130900212