如下内容主要是引用自合天网安中的一个实验案例:***A经过ARP欺骗,使用Wireshark获取了整个局域网内的网络流量信息。无心之中,他发现有人在某个网站上上传了一份文件。可是他不知道怎么样经过Wireshark去还原这份文件,没办法,他将监听到的数据包保存为了一份Wireshark的监听记录,打算去向你请教。你能帮助他找到那份上传的文件吗?服务器
咱们能够本身准备一张图片test.jpg,并随便找一个容许上传的网站,而后用Wireshark将上传的过程抓包,这里我已经将本身的抓包结果保存成文件catchme.pcapng,并在附件里提供下载。网络
打开抓包文件以后,会发现数据记录一共有344条。若是单纯的从开始到结尾去一条一条的审计,是很是费力的事情。ide
这里咱们使用显示过滤器进行过滤,因为上传文件采用的是HTTP协议,于是使用过滤规则“http”,过滤以后发现数据包由原来的344个变成了137个,这样就很容易帮咱们分析了。仔细分析,咱们会在第209条数据包的info中看到upload这个词,咱们怀疑这条就是涉及到上传的数据包。网站
因为上传文件都是采用POST方法,于是咱们也可使用过滤规则“http.request.method==POST”进行更精确的过滤,这时就只有47个数据包了。于是掌握数据包过滤,是熟练掌握Wireshark的必备技能之一。blog
虽然咱们看到了有upload关键字,有POST方法,可是咱们不能肯定是否是真的就是上传文件的那个请求。双击第209号数据包进行专门分析,在应用层数据中能够看到确实是上传了文件,并且文件名是test.jpg。图片
在传输层部分能够看到,因为文件比较大,TCP协议将其分红了16个数据段Segment,每一个数据段都是一个独立的数据包,点击各个Frame,就能够看到数据包中的内容。get
但问题是每一个数据包中都只包含了上传文件的一部分,要想还原上传的文件,就必须将这些被分片的数据包从新组合成一个总体。在Wireshark中提供了一项“数据流追踪”功能,就能够来完成这项任务。it
回到Wireshark的主界面,在209号数据包上点击右键,选择“追踪流/TCP流”,io
这时整个TCP流就会在一个单独的窗口中显示出来,咱们注意到这个窗口中的文件以两种颜色显示,其中红色用来标明从源地址前往目的地址的流量,而蓝色用来区分出相反方向也就是从目的地址到源地址的流量。这里颜色的标记以哪方先开始通讯为准,通常状况下都是由客户端主动发起与服务器的链接,因此大都是将客户端的通讯显示为红色。class
因为上传的文件都是在客户端发出的数据部分提交的,于是咱们能够过滤掉服务器发回的响应信息。在下方的数据流向中选择从客户端到服务器的流向,这时候就没有响应部分出现了。
将数据流保存成原始文件,以便下一步处理。须要注意的是,在保存以前必定要将数据的显示格式设置为“原始数据”。
这里将文件的扩展名指定为.bin,以使用二进制形式保存文件。
在下篇博文中咱们将利用WinHex从这个原始文件中将上传的图片还原出来。