文章编号:1007-757X(2021)01-0107-04
安卓取证系统的设计与实现
王德广,倪怀乾
(大连交通大学软件学院,辽宁大连116028)
摘要:为了取证人员快速提取分析安卓系统的数据信息,利用ADB和Python等工具在Windows系统中开发针对于安卓系统取证的桌面应用程序°并利用数据挖掘技术获取嫌疑人的好友信息,通过时间序列图、网络拓扑图的方式显示联系人之间的亲密度,使用词云显示浏览文本,获得重要信息°此程序具有较高的可行性和普适性,为取证人员提供较大的便利°关键词:安卓系统;手机取证;数据分析
中图分类号:TP391文献标志码:A
DesignandImplemen)a)ionofAndroidForensicsSys)em
WANG Deguang,NI Huaiqian
(College of software,Dalian Jiaotong University,Dalian116028,China)
Abstract:In order to quickly extract and analyze data information of forensic system,this paper uses ADB and Python to devel­op deskGop applicaGions for Android forensics,uses daGa miningGechnologyGo obGainGhe WeChaGfriend informa ion ofGhe sus-pecG,displaysinimacybeGweenconGacGsbymeansofimeseriesgraphsandneGworkGopologymaps,useswordcloudGodisplay browsing text and obtain important information.The program has high feasibility and universality,and provides greater con-veniencefortheforensicpersonnel.
Key words:Android system;mobile forensics;data analysis
0引言
智能手机已不止于通讯,而具备了一台电脑的重要功能&与此同时,不少犯罪分子也利用智能手机进行犯罪活动。为了打击此类犯罪行为,手机取证技术就至关重要&本文采取了一种适用于不同机型的安卓系统获取root的方法,并且利用python开发了windows桌面应用程序用于可视化提取的数据&结合数据挖掘技术将数据进行分析,绘制出网络拓扑图等&为取证人员提供了更为直观的判断,节省了数据的筛选时间,提高了效率。
1安卓系统
1.1Android的系统架构
Android的系统架构(1)大致分为四层,从低到高依次为Linux内核层、系统运行库层、应用程序框架层和应用程序层&
1.2Android系统的分区结构
主要分区如下&
(1)modem分区:实现手机必需的通信功能&
(2)bootloader区bootloader primarybootloader 分,主要执行硬件检测;secondarystagebootloader会进行一些硬件初始化工作;fastboot是Android定义的一种简单的刷机协议,用户可以通过fatboot命令行工具来进行刷机&
(3) boot分区:分为头部、Linux内核和ramdisk&
(4)recovery分区:是Android定义的一个标准刷机协议&
1.3Android手机文件系统
Android中使用了多个文件系统,用于启动和运行系统&通过查看文件/proc/filesystems的内容来确定A
ndroid所支持的文件系统有哪些&例如在所参考的锤子坚果3上,包含内sysfs、ootfs、tmpfs、bdev、pBoc、cgBoup、cpuset、de-bugfs、sockfs、pipefs、amfs、configfs、ext2、ext3、ext4、msdos、sdcardfs、fuse、selinuxfs、functionfs、exfat、devpts等&
1.4Android目录结构
将root级别的几个重要目录(代表性显示)&
(1)cache:lost+found recovery
(2)data:anB、app、app-pBivate、backup、dalvik-cache、lo-cal、lost+found、property、tombstones
data/data/com.acebook.katana:cache、databases、iles、lib、shared_prefs
data/misc:bluetooth、dhcp、keystore、systemkeys、vpn、wii
data/system:sync、usagestats
(3)mnt/sdcard:DCIM、download、Downloads r LOST. DIR、temp
mnt/sdcard/android/le.android.apps.
作者简介:王德广(1968-),男,硕士,副教授,研究方向:信息安全、机器学习。
倪怀乾(1993-),男,硕士研究生,研究方向:信息安全、机器学习&
maps:c ache、debug、testdata
(4)system:app、bin、fonts、framework、lost+found、ts、xbin
system/etc:bluetooth、firmware、permissions、PPP、secu-rity、wii
system/lib:egl、hw、modules
system/media/audio:alarms、notiications、ringtones、ui
system/usr:keychars、keylayout、share
1.5Android手机数据存储
1)SQLite
SQLite数据库属于轻量级的,而且具有跨平台的特性,使得SQLite数据库应用于移动设备的系统中&SQLite数据库文件存储在/data/data/应用程序包/databases文件夹下,是取证最为重要的数据路径&
(2)内部存储
Android系统的内部存储是通过IO流进行文件的读取&内部存储文件除了能被root用户读取外,就仅能被对应的应用程序读取。
(3)外部存储
Android系统的外部存储为SD卡,外部存储可以存储较大的文件,取证数据多为语音、图片和视频等&
2安卓系统数据提取前的准备工作
2.1Android手机数据取证流程
Step1:获取root权限;
Step2:开启开发者模式;
Step3:电脑端配置好adb调试模式,通过adb service命令,验证手机与电脑连接正常,使用adb shell
进入到手机,输入su进入root用户&
2.2屏幕锁的破解
屏幕锁⑵的设定在设置安全中,可用的屏幕锁定方式包括:无、滑动、人脸解锁、图案、密码与指纹&
(1)九宫图形锁(图案):从左上角的00至右下角的08进行编号,根据算法计算后编码为密文,将密码存储在/data/ system/gesture,key文件中。可通过“adb pull/data/sys­tem/gesture,key”将加密文件提取。获取到gesture,key后再利用密码字典暴力破解获得明文密码&
(2)PIN"密储/data/system/passwordUkey
件,到passwordUkey后用密码字暴力破
得明文密码&
(3)高级用户锁:通过哈希或MD5值对其自动加密,将密码储/data/data/comUandroidUprovidersUse t ings/da-tabases.db,将salt值取出,使用密码字典进行暴力破解&
(4)recovery模式密码暴力破解:若嫌疑人使用的An-droi-手机USB调试没有打开,启用了开机屏幕锁,
就无法进入设置应用程序中勾选启用USB调试功选项,也就意味着无法进行后续的取证工作&此时需要利用recovery模式
来进行密码破解&
Step1:手机关机后重启进入recovery模式,bankup f restore备份得到新镜像文件&
Step2"件/data/data/com.andBoid.pBovid-ers.settings/databases中的settings.db文件&
Step3:从settings,db文件导出hash值&
Step4:获取屏幕锁密码文件&
Step5:利用密码字典暴力破解获取密码&
2.3root取
(1)手机一键root
目前安卓应用市场具有较多的一键root应用,例如百度一键root、超级root大师等应用&
(2)电脑端root
在电脑端也有较多对手机root获取的软件,例如刷机大师、king r oot、一键root大师等&
(3)手工oot
手工获取root权限为目前成功率最咼一-种方式,又称线刷或卡刷,适用于较新的系统和机型&
以本文机型锤子坚果3为例,利用9008工程线进行刷机&操作如下:下载QPST、TWRP和root包;将root包复制到手机根目录;打开Qfil并Bid线刷包里的文件;点击Load XML选择工具包中文件;将工程线(EDL)插到电脑上;按住工程线的按钮将另一端插入手机、点击Download等待线刷完成;进入TWRP后,进InsallC安装),刷入root包(根目录),重启后获取root。
3Android系统数据提取
限于篇幅,提供部分数据库具体路径&
(1)通话记录数据库存储位置:
/data/data/com.acts/databases/ ca l og.db.
(2)短信数据库存储位置:
/
data/data/s/databases/smssdk.db.
(3)信数据库储置:
/data/t.mm/MicBoMsg/ 8266e537b59dl0d389937efe3d2c30e8(不同账号该码不同)/ EnMicBoMsg.db.
数据库⑷进行了加密&首先获取当前登录的手机IMEI码,再者需要获取uin信息,uin与账户进行关联,是唯一标识用户身份的标识符&在/data/t.mm/shared_prefs/auth_info_ l中即可获取uin值&将IMEI和uin合并,再进行MD5解密,并取计算结果的前7位(小写)即为数据库解密密码&
(4)QQ数据库储置:
/data/data/com tencentUmobileqq/databases/db
QQ使用的是表加密&解密方法:聊天记录内容明文(D);聊天记录内容密文(E);手机IMEI;公式:E=DIMEI。j按位异或算法)。
(5)Facebook数据库储置:
/data/data/com.facebook.katana/databases/contacts _db2U
(6)淘宝浏览记录:
/data/data/com.taobao.taobao/databases/data_history
(7)QQ浏览器浏览记录存储位置:
/data/t.mtt/databases/database
(8)百度浏览器浏览记录存储位置:
/data/data/com.baidu.browser.apps/databases/db-browserdb
(9):
/data/data/com.baidu.BaiduMap/files/poi_his.sdb文件中存储有搜索记录信息&
10):
com.bile,android.history_result.db存储搜索记录。
数据提取过程:进入手机命令行并进入root用户,(例女口)“cd/data/data/com.acts/databas-es”,输入“Is”查看提取该数据库的名称。“cp calllog.db/ mnt/sdcard/-将该数据库提取到sdcard上,此时再打开一个新的命令行,“adb pull sdcard/calllog.db”,即可成功将数据库提取到当前命令行所在的目录下&
4实验
实验环境&
笔记本电脑:神舟战神i7内存8G显存4G1T十128SSD Window1064位。
开发工具:PyCharm专业版(PyQt QtDesigner PyUic)、adb、SQLite。
4.1功能阐述
通讯、、QQ、社交软件、浏览器、地图导航、淘宝、手机系统信息等数据的提取主界面,如图1所示&
图1数据提取主界面
主界面用QMainWiiidow、QtGui、QtCore、QtWidgets、QApplication、sys等库,主要为页面的设计和页面的跳转,由每个按钮通过信号和槽连接到相应的子页面,以其中一个子页面为例,如图2所示&
图2为QDialog页面,其它库与主页面相同,不同于使用QComboBox来设计下拉选择列表,列表内容为4.2功能架构下分支的内容。点击“查询”按钮跳转到所选项目的查询显示,如图3所示&
图2数据提取其中一个子页面
图3核心内容页面
该类页面使用QDialog,为最核心内容页面,查询显示数据库内容&从输出到控制台的内容截取到该界面文本框内显示&将其以设定格式显示,键字到信息。
4.2功能架构
1浏览器
---------------------------阜------------------------
QQ浏览器猎豹浏览器火狐浏览器谷歌浏览器360浏览器搜狗浏览器UC浏览器百度浏览器2345浏览器
23通讯
0、?「0___
聊天记录图片视频语音好友社交网络通讯录通话记录短信通话序列图
5QQ
(2FaceBook FaceBook M essage WhatsApp Twitter Line MSN
淘宝聊天记录淘宝浏览信息
(1)各类浏览器获取的历史搜索记录及网页存储的表单账号与密码&
(2)提取存储的聊天记录、图片、语音及好友亲密
数据等。
(3)获取通讯好友、短信、通话记录和绘制通话记录的
(4)提类导软件储导和数据。
(5)查QQ信息与聊记录。
(6)手机系统信息提取的数据无需获取root,连接电脑后即可查看。其中,WiFi查看嫌疑人连接过的WiFi用户名及密码;网络IP查询连接的网络,包括2/3/4/5G网络连接的地址、使用VPN代理的信息、WiFi连接的IP等;系统信息是查询手机版本、系统版本;提取手机镜像是在本地存储一份当前手机的所有数据并备份;日志是查手机的各类信息。
(7)查看淘宝的聊天记录和浏览记录&
(8)各类社交软件的聊天记录与好友信息&
4.3快速取证
该方式无需root,使用itchat库登陆网页版,扫描二维码后便在本地生成用户信息文件和用户名.html。其中,用户信息文件包含所有好友的id、昵称、地区和个性签名;用户名.html文件是通过collections的Counter和pyecharts的Bar库来生成并统计好友所在地区信息、数量与男女比例等&
5数据分析
5.1基于时间序列的可视化方法
基于时间序列的可视化方法是将时间作为主要变量,通过时间序列图构建时间线&以通信时间作为X轴,通信对象作为Y轴,坐标原点为本机账号(嫌疑人),建立时间序列图,如图4所示&
1834115H
•务多多多多务多多多多务多乡
1558809MB
4
用线段将嫌疑人和用户进行连接,表示在某时间点与用户进行了通信。直观展现了嫌疑人与各个用户账号通信行为频率,便于取证人员结合案件发生的时间,锁定特定时间段内与嫌疑人进行通信的用户,缩小取证范围,提高取证效率。该方法用numpy.matplotlib.pyplot等库,通过调用plot 函数绘制0("#)以坐标轴形式显示(截取部分信息)。
5.2基于社交关系网络的可视化方法
通过社交关系网络拓扑图,可清晰确定用户的社交关系亲密度,如图5所示&
图5社交关系亲密度
在社交网络拓扑图中,若两个节点之间的权值越大,则表示这两个节点之间越熟悉,所代表的两个用户之间的关系越亲密,两者之间的影响力也就越大,反之相反&因此本文采用权计算方式来精确计算疑人与
的关系,准确还原出犯罪嫌疑人近期的社交关系网络&以模块度算法公式>=占工LA+-66.#?,c+)的
2m雹2m
单一社区和权值公式为4#0='
无)实现社交网
#2#,0*)
* =0
络的绘制。其中,中心是嫌疑人账号,节点是各个联系过的用户账号,边上数值为权值(截取部分信息)。
5.3基于词云的可视化
通过生成词云的方式,快速分析嫌疑人网购商品的类别。在生云中,字体越大频
嫌疑人购买该商品的可能性越大&以此来判断嫌疑人最近的购买活动,从而评估相应的行为动机,如图6所示&
....................響豎-
1”而@锻武畫十曲必r粘
去吧絆布絲布變
安卓软件签名工具
旋机布化::皿心气"
水林术协上““注倚島诛矗单累6SD
6
可判断该用户购买多为生活用品。该方法使用停用词表进行数据清洗,并使用jieba库分词,wordcloud与matplot-lib生成词云&
6总结
本文通过对安卓系统的解锁与root的获取研究,成功提取出手机内部重要的数据库。在提取数据阶段,使用python 开发的应用程序加以可视化,更为直观明了。在数据分析阶段用网等方将疑重信息以方式呈现给取证人员,提供了更多的分析依据,从而进一步实能充,提供更为程序&
参考文献
[1(吴中超.安卓系统安全攻防简析[J(.网络安全技术与应用,2017(8):101-103.
[2(唐卫中.锁屏Android手机破解方法研究[J(.保密科学技术,2018,97(10):31-35.
[3(石穗东,李蒙,雷鸣.运用第三方recovery破解安卓手机屏幕锁[J(.刑事技术,2015,40(4):327-329.
[4(Wu S,Zhang Y,Wang X,et al.Forensic analysis、o f WeChatonAndroidsmartphones[J(DigitalInvestiga­
tion,2017,21(jun.):3-10.
(:20191127%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。