编者按: 随着手机电子数据取证技术的不断发展,手机取证已经不再局限于传统的获取手机中已记录的数据。对手机电子数据取证而言,也可以从网络方面入手,通过网络协议解析出手机中的相关数据。本期,数据恢复四川省重点实验室科研人员将介绍如何通过路由器抓包提取手机数据。
一、背景介绍
当用户使用手机访问网络时,手机在不断接受与发送数据包,而这些数据包中包含了大量的用户信息,包括各种账号信息、聊天信息、发送接收文件、邮件、浏览的网页等。虽然很多信息是加密传输的,但还是会有大量信息是明文传输或者经过分析可以解密的,如账号信息、文件、邮件、部分聊天信息等。这些数据包都会通过路由器进行分发,我们只需要对路由器进行抓包和分析,就能提取到用户的各种信息,而不需要在用户手机中安装应用插件。
二、环境搭建
在有无线网卡的电脑上利用网桥模式搭建好路由器,也可以利用360免费wifi提供一个热点,这样就可以抓取到连接上WiFi的手机发送的网络数据包。
三、如何抓网络数据包
目前市面上有很多抓包工具,比如Wireshark就是其中比较成熟的一款,除了抓包以外还配带一些简单分析的工具。这些抓包工具的原理都是通过winpcap提供的强大的编程接口来实现,下面以Wireshark为例,讲解如何进行网络数据抓包。
首先,打开软件配置,网络抓包所需参数,如图1。在比较熟悉协议的情况下,可选择过滤器,过滤掉不关心的数据包,以方便分析。例如,我们知道微信朋友圈为TCP协议,端口号为443和80,可以根据这些信息选择相应的过滤器,然后选择要捕获的网卡,开始捕获网络数据包。
图1:Wireshark抓包参数配置
四、网络数据包分析
抓取网络数据包时,Wireshark分为三个板块显示抓取结果,如图2。第一个窗口显示了捕获包的列表,中间窗口显示了当前选择包的简单解析内容,最下面窗口显示了当前选择包的十六进制值。
图2:Wireshark捕包结果窗口
以微信的一个协议包为例,经过捕包操作,捕获到了用户通过手机发送信息的一个完整的对话包,如图3。根据该对话包,显示手机(ip为172.19.90.2,端口号51005)是通过TCP-HTTP协议与服务端(id为121.51.130.113,端口号80)互相传输数据的。
图3:发送信息数据包
前三个包为手机与服务端相互确认身份所传输的包(TCP的三次握手),没有什么重要信息,主要看第四个包,如图4。其中:
Frame:物理层的数据帧概况;
Ethernet II:数据链路层以太网帧头部信息,包括发送端和目标端MAC地址信息等;
Internet Protocol Version 4:互联网层IP包头部信息;
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议;
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议;
Media Type:传输的具体数据;
图4:手机发送信息数据包
这里主要分析应用层和数据层内容,如图5。可以看出,服务端域名为szextshort.weixin.qq.com,信息提交地址为/mmtls/04a2f532,数据层数据长度为834字节,其中十六进制面板中蓝色区域及为发送的数据,但数据内容是通过复杂加密的,暂时无法获取。
图5:TCP的应用层和数据层
通过这种方式,我们也可以分析出发送的图片及视频等信息,后续提取工作就可以交给代码实现。
小结:
利用路由器抓包提取手机数据是一种全新的手机数据提取方式,对手机电子数据取证有重要意义,是未来研究的一个重点方向。数据恢复四川省重点实验室科研人员目前已经研发出相关的程序,可实现网络数据包抓取和分析,支持对多种协议的解析,预计相关产品不久后将正式上市。