1. 通过Wireshark网络取证
Wireshark既然可以解析网络中的各种数据流量,那么通过网络传输协议,例如ftp协议传输的文件数据wireshark也可以对其解析,本质上FTP协议是基于传输层TCP协议的,一个完整的文件会分割为多个tcp数据包传输(这些TCP数据包被称为TCP流),wireshark工具提供了一个“流跟踪(TCP Stream)”功能可以分析TCP流。
这个功能在我们需要使用wiresahrk分析某些网络流量进行取证的时候可以发挥很大的作用,wireshark可以通过“流跟踪(TCP Stream)”功能捕获完整会话的通信流量或文件数据。
2. 使用wireshark分析传输的文件数据
接下来我们就通过wireshark来分析一个文件数据,使用wireshark打开http_with_jpegs.cap.gz文件:
当我们要分析某个数据包的整个会话过程的话,就可以选中某个数据包右键选择:追踪流 --> TCP流,如下所示:
以67数据包为例,如下图所示:
GET /Websidan/images/sydney.jpg HTTP/1.1整个会话中,是以GET方式请求一个sydney.jpg的图片文件,最上面的一部分表示HTTP请求部分,中间部分表示HTTP响应部分,最下面的则是HTTP请求的sydney.jpg文件的二进制原始数据。
然后对整个会话进行过滤,只保留http响应部分和sydney.bin文件的原始数据,然后另存为sydney.bin文件:
使用winhex工具打开sydney.bin文件来分析文件的原始数据,选择:File --> Open,如下所示:
sydney.bin文件中的十六进制数据包含了http头部和文件的原始数据,需要删除http响应头部的数据,我们知道的一点就是http响应头部和文件的原始数据中间存在一个空行,也就是说有两个回车换行符,而回车换行符对应的ASCII码就是13和10,转换成十六进制就是0x0a和0x0d,在这之后就是文件真正的原始数据了。
下图中被选中的部分就是HTTP响应头部和两个回车换行符了,只需把选中的部分数据删除即可:
删除之后,把文件另存为.jpeg格式的文件数据,如下所示:
最后打开sydney.jpeg图片文件:
最终sydney.jpeg文件被我们通过wireshark还原出来了,这个实验完成。