运用第三方recovery破解安卓手机屏幕锁
石穗东, 李蒙, 雷鸣
中山市公安局刑科所,广东 中山 528403

作者简介: 石穗东(1976—),男,广东兴宁人,工程师,学士,研究方向为电子物证. E-mail: shuitong2000@163.com

摘要

安卓智能手机的取证法一般需要开启手机USB调试模式,遇到设有密码且未开启USB调试的手机,如果嫌疑人不配合工作往往很难进行取证.文章介绍一种新的工作思路:由于安全原因官方版recovery功能较少,可以刷入第三方recovery利用其备份系统功能,从备份文件中提取密码文件后进行破解,或刷入删除密码文件的补丁来清除密码.文章最后介绍了刷recovery的注意事项.

关键词: 手机取证; 安卓智能手机; 第三方recovery; 密码破解; 备份还原
中图分类号:DF793.2 文献标志码:中图分类号:DF793.2 文献标识号:B 文章编号:1008-3650(2015)04-0327-03 文章编号:1008-3650(2015)04-0327-03 doi: 10.16467/j.1008-3650.2015.04.017
Lockscreen Passcode Decryption on Android Smartphone Using a Custom Recovery
SHI Suidong, LI Meng, LEI Ming
Institute of Forensic Science, Zhongshan Public Security Bureau, Guangdong Zhongshan 528403,China
Abstract

The screening of crime-related smartphones can provide critical clues for case investigation. On examination of an Android smartphone with passcodes set up without turning on USB debugging, it’s hard to obtain evidence if the suspect doesn’t cooperate. A new method using a custom recovery is introduced. Since official recovery doesn’t have functions of backuping, restoring or flashing a custom ROM in light of the safety concern, a custom recovery was flashed on Android smartphone using the backup system function, and then decrypted the passcode file extracted from the backup file, or flashed a path to delete passcode files. Theoretically flashing a custom recovery is safe, as it only modifies the recovery partition without partition data changing. However, it is risky to some extent when flashing a smartphone. Some dos and don’ts are proposed in this paper.

Keyword: smartphone forensics; Android smartphone; custom recovery; passcode decryption; backup & restore
1 案件资料

某盗窃案涉嫌的华为U9508安卓智能手机(以下简称荣耀四核)一台, CPU型号:华为海思K3V2, 支持扩展TF卡.开启屏蔽器屏蔽手机信号后检查手机[1, 2], 手机设有屏幕图形锁; 连接取证电脑后, 电脑的设备管理器没有出现Android设备, 输入命令“ adb devices” 后没有列出已连接的Android设备, 运行取证软件也没有检测到该手机, 判断手机未开启USB调试模式.按音量上键+电源键开机进入recovery(以下简称rec)恢复模式, 这是华为官方版rec, 只能升级官方ROM, 不能刷入第三方刷机包/补丁, 也没有备份还原功能.

工作思路为刷入第三方rec利用其备份系统功能提取密码文件破解屏幕锁.经查资料, 各大手机论坛均提供荣耀四核的第三方rec下载, 且网友反映良好.经咨询华为技术支持, 确认该手机刷入第三方rec前无需先获取官方解锁码进行解锁操作.华为官网也提供了从第三方rec刷回官方版rec的工具软件.因此, 该手机刷入第三方rec是安全, 可行的.所需工具:1张取证专用TF卡, 格式化为FAT32文件系统.该卡用于存储手机系统备份文件, 容量不宜太小.操作步骤如下:

(1)手机关机, 取出手机自带的原机TF卡, 装入取证专用TF卡(容量不要小于16G, 默认格式为 FAT32).

(2)上网下载华为荣耀四核手机的第三方rec刷机工具软件“ 中文recovery6.0.1.9.exe” (见图1).双击运行软件, 输入“ 1” , 回车, 刷入中文版第三方rec, 输入“ 2” , 回车, 恢复官方版rec, 前提是手机已经开启USB调式.保留此窗口, 刷机软件运行时会在电脑系统的用户变量目录下创建“ 7ZipSfx.000” 目录, 该目录下有recovery.bat, sec_recovery.img, recovery-off.img, adb.exe, fastboot.exe, AdbWinApi.dll, AdbWinUsbApi.dll等共7个文件, 其中sec_recovery.img和recovery-off.img分别为第三方rec和官方原版rec的镜像文件.用记事本打开批处理文件“ recovery.bat” 分析, “ 刷入中文版recovery” 的操作主要执行2条命令:“ adb reboot bootloader” 命令用于重启手机到fastboot模式, “ fastboot flash recovery Sec_recovery.img” 命令用于刷入中文版rec.“ 恢复官方版recovery” 的操作主要执行“ fastboot flash recovery recovery-off.img” 命令.

图 1 第三方rec刷机软件Fig.1 A custom recovery flashing tool

(3)如果手机未开启USB调试, 就无法执行和调用这些adb命令, 也无法直接执行菜单1“ 刷入中文版recovery” , 手动按组合键让华为荣耀手机进入fastboot模式, 然后再刷recovery:华为荣耀四核手机进入fastboot模式的方法如下, 关机状态下同时按音量下键+电源键手机就可以进入fastboot模式了(此时手机停留在HUAWEI Ascend开机画面).手机通过数据线连接电脑, 电脑端进入“ 7ZipSfx.000” 目录, 在命令提示符下输入命令“ fastboot flash recovery Sec_recovery.img” 回车, 当显示“ Writing ‘ recovery’ ...OKAY” 时表示成功刷入中文版第三方rec(见图2).

图 2 刷入第三方recFig.2 Flashing a custom recovery

(4)第三方rec刷入成功后, 手机关机, 再次按音量上键+电源键开机, 手机进入recovery模式, 该中文版rec具备选择刷机包刷机, 备份还原等功能.通过音量键加, 音量键减控制光标方向, 电源键确认, 依次进入“ 备份还原” , “ 选择备份格式” , 选择tar格式(另一格式为dup), 再执行“ 备份到外置卡” , 约4 min后备份, boot镜像, recovery镜像, system分区, data分区, cache分区完成, 生成MD5校验码.

(5)手机关机, 换回检材自带的TF卡, 取证专用TF卡通过只读设备连接电脑, 在该TF卡的“ /clockworkmod/backup/” 目录下生成一个以备份时间命名的目录“ 2014-05-10.15.07.53” , 里面有boot.img, recovery.img, system.ext4.tar.a, data.ext4.tar.a, cache.ext4.tar.a, nandroid.md5等共9个文件, 其中data.ext4.tar.a是data分区的备份文件, 大小为405M, 用于存储用户数据.用FTK Imager(功能强大的镜像工具, 可在AccessData公司官网免费下载)打开镜像文件功能浏览data.ext4.tar.a文件(或者将文件名改为data.ext4.tar后用winrar打开):短信/彩信数据库文件mmssms.db在/data/data/com.Android.providers.telephony/databases/目录下; 微信的数据在/data/data/com.tencent.mm/MicroMsg/目录下; 图形锁密码文件gesture.key和PIN码/复杂密码文件password.key在/data/system/目录下.导出gesture.key用工具破解得到解锁图形(见图3), 手机开机在手机上输入密码即可按一般步骤对手机进行取证.

图 3 解锁图形Fig.3 Decoded lock pattern

(6)也可以直接对data.ext4.tar.a进行文件解析.目前安卓系统里微信的高版本和QQ的高版本, 如果手机不ROOT就无法直接获取它们的任何聊天内容视频图片和删除信息, 但是如果通过刷入第三方rec的方法备份出data.ext4.tar.a, 然后直接对data.ext4.tar.a进行解析就不存在不能解析的问题了.这个方法解决了安卓手机有图形锁, PIN锁, 指纹锁, 面部识别锁且没有ROOT, USB调试还关闭的取证问题.

(7)取证完毕后, 运行“ 中文recovery6.0.1.9.exe” 选择2恢复官方版rec.

2 讨 论

安卓智能手机的取证方法一般要求手机开启USB调试模式, 如果开启了USB调试, 即使设有密码, 系统版本4.2以下的手机也能与电脑建立连接, 就有机会提取手机数据甚至获取ROOT权限并破解或删除密码.本案例的问题是屏幕锁阻碍了开启USB调试.由于安全原因官方版rec功能较少, 为此出现很多第三方制作的rec, 扩展了选择非官方刷机包刷机, 备份还原等实用功能.通过刷入第三方rec利用其备份系统功能, 从data分区备份文件中提取图形锁密码文件gesture.key后根据其加密原理进行破解:九宫格图形锁需满足3个要求:至少4个点, 最多9个点, 无重复点, 从左上角起编号00, 至右下角止编号为 08, 对图形的十六进制编码计算SHA1校验码后明文存储在gesture.key中.根据上述规则计算出屏锁图形总数为986 328个, 其密码复杂程度不高, 破解相对容易, 通过采用预计算密码表方式可以进行暴力破解[3].

除了采用图形设定屏幕锁之外, 安卓还允许使用4~16位的数字PIN码或文本字符作为锁定密码加密后存储于password.key文件中, 相对图形来讲, 字符型密码的复杂度更高.如果手机设置的屏幕锁是字符型而不是图形, 且通过本文方法备份得到的data.ext4.tar.a中的password.key文件未能破解, 可以制作删除password.key的补丁在第三方rec中刷入, 以清除屏幕锁:(1)编写脚本文件updater-script.运行编辑器Notepad++新建文件, 输入命令: delete(“ /data/system/gesture.key” ); , delete(“ /data/system/password.key” ); , unmount(“ /data” ); , 点击“ 编辑” , “ 档案格式转换” 选择“ 转换为UNIX格式” , 保存为文件名“ updater-script” , 保存类型为“ All types(* .* )” .(2)依次建立目录“ /META-INF/com/google/android/” , 将脚本文件updater-script和网上下载的update-binary文件(为updater-script的解释执行提供函数支持)放到刚才建立的android目录下, 使用压缩软件将META-INF目录压缩成ZIP格式的压缩包, 文件名为“ del-pwd” (可以是其它文件名).(3)将del-pwd.zip复制到取证专用TF卡.(4)在第三方rec模式下(见图4)依次进入“ 选择刷机包刷机” , “ 从外置卡选择ZIP刷机包” , 选择del-pwd.zip.(5)手机关机, 换回检材自带的TF卡.再次开机后没有出现屏幕锁而直接进入桌面.

本方法的关键是刷入第三方rec, 理论上是安全的, 不会改变data分区数据, 但刷机有风险, 如果失败可能导致卡屏死机, 黑屏等后果, 应注意:(1)了解该手机是否具备刷入第三方rec的条件.有些手机没有单独的recovery分区, 如部分MTK芯片的手机, 可能无法通过fastboot命令刷入rec.(2)了解刷第三方rec的安全性.有些手机第一次刷入第三方rec前需获取官方解锁码进行解锁操作, 但解锁可能会恢复出厂设置(包括清除用户数据)且失去厂家保修; 不同型号手机的rec一般不通用, 要找到对应的第三方rec.有些手机虽然型号相同但属于不同运营商的定制机, 其recovery分区可能不同.即使是同一台手机, 也可能出现由于安卓系统版本的不同, 其对应第三方REC版本也不同的情况, 如三星GT-I9100, 系统版本2.3.5和4.1.2对应的rec不能互刷.如果刷错了导致开机故障, 则再刷入对应版本的rec即可; 第三方rec不是官方推出, 刷入后是否安全, 稳定.(3)不同手机的刷机工具软件, 操作方法不尽相同(如三星手机进入“ 挖煤” 模式后使用ODIN进行刷机), 刷机前先熟悉掌握.(4)刷机前先安装手机驱动程序, 以便电脑能正确识别处于fastboot模式下的手机.(5)确保备份手机系统前, 取证专用TF卡替换了手机检材自带TF卡, 避免“ 污染” 检材[4].(6)确保电池有足够电量, 刷机过程不能断开手机与电脑的连接.

The authors have declared that no competing interests exist.

参考文献
[1] 尹春社. 对电子数据现场获取存在问题的分析与探讨[J]. 刑事技术, 2008(3): 26-28. [本文引用:1]
[2] 丁红军, 范玮. 手机物证检验原则[J]. 刑事技术, 2012(3): 46-47. [本文引用:1]
[3] 孙奕. Android 安全保护机制及解密方法研究[J]. 信息网络安全, 2013(1): 71-74. [本文引用:1]
[4] 罗洁, 张国臣. 谨防电子物证提取和检验中的“污染”[J]. 刑事技术, 2007(2): 43. [本文引用:1]