手机取证中,手机号是确定手机机主的重要途径,同时也可以在众多检材或线索中起串联作用,其重要性不言而喻。确定手机号的一个重要途径是通过SIM卡,SIM卡中可能记录有手机号,通过SIM卡的ICCID也可以从运营商查询得到对应的手机号。

实践中机主可能更换过手机号,所以仅对手机附带的SIM卡进行取证可能还不够。本文将介绍Android及iOS设备中检验历史SIM卡信息的方法。

iOS设备

使用iTunes或其他工具创建手机备份,使用iBackupBot等工具浏览备份数据。SIM卡历史记录记录保存在”WirelessDomain /Library /Database /CellularUsage.db"文件中。

CellularUsage.db是SQLite数据库文件,可以使用免费的DB Browser for SQLite或iBackupBot自带的查看器查看,SIM卡历史记录保存在表“subscriber_info”中。如图1所示。

图 1 CellularUsage.db文件中记录的SIM卡历史信息
图 1 CellularUsage.db文件中记录的SIM卡历史信息

subscriber_info字段即SIM卡的ICCID,subscriber_mdn字段即手机号,last_update_time字段即最后更新时间,为MAC Absolute Time时间格式。MAC Absolute Time时间记录的是2001年1月1日 00:00:00 UTC+0:00至今流逝的秒数,可以用免费的工具DCode进行转换。如图2所示。

图 2 使用DCode解析MAC Absolute Time格式的时间
图 2 使用DCode解析MAC Absolute Time格式的时间

需要注意的是,last_update_time字段记录的最后更新时间与手机系统时间相关,如果手机时间不准,会影响此处的最后更新时间。图1所示的第二条记录中,“-978306735.184363”经过转换为1970年1月1日,显然是错误的时间。如图3所示。

图 3 CellularUsage.db文件中记录的错误的时间
图 3 CellularUsage.db文件中记录的错误的时间

Android设备

Android手机的SIM卡使用记录一般保存在data分区的“data com .android .providers .telephony databases telephony.db”文件中,该文件也是SQLite数据库。表“sim_info”会记录使用过的SIM卡的ICCID、手机号等信息。如图4所示。

图 4 telephony.db文件中记录的SIM卡历史信息
图 4 telephony.db文件中记录的SIM卡历史信息

对于小米手机,SIM卡信息还在“data com .android .providers .telephony databases siminfo.db”文件中。如图5所示。

图 5 siminfo.db文件中记录的SIM卡历史信息
图 5 siminfo.db文件中记录的SIM卡历史信息

注意事项

上面分别介绍了iOS和Android设备提取SIM卡历史记录的方法,其中iOS设备不需要越狱,只要能创建iTunes备份即可;对于Android设备,由于相关信息保存在data分区,普通权限无法访问相关数据,一般需要root或制作镜像后才能进行分析。

SQLite数据库数据恢复技术是手机取证的基石之一,无论iOS还是Android,SIM历史记录都保存在SQLite数据库中,我们可以使用取证软件对上述文件进行处理,以获取删除的记录。本人在实践中也曾成功恢复出SIM卡历史记录。


本文最早发布于本人微信公众号“取证杂谈”,发布日期为2017年6月14日。
写这篇文章的时候,国内外很多手机取证产品对手机号取证还不支持或支持的不完善,一年后的今天,国内手机取证产品已经都支持的比较好了。

标签: SIM, IMSI, ICCID, 手机号

添加新评论