- A+
越来越多的高帅富使用iphone,频频模仿陈老师在恶劣的环境下利用iphone进行各种自拍,小编做为一个使用电信冲话费送手机的极品屌丝,今天来介绍一下如何绕过iphone的密码限制,并从中提取数据。
取证模式:iPhone4的GSM模式,系统为iOS5。
目标:从iPhone中提取数据,并且不改变设备上的信息。
之前国外sogeti公司的实验室的研究人员之前发布了开源的取证工具(支持iOS5),下文会介绍一下该工具使用以及iphone取证的方法。
在iphone上取证涉及的步骤包括:
1:安装取证工具包 2:建立设备与计算机的通信 3:绕过iphone的密码限制 4:阅读加密的文件系统 5:恢复已删除的文件
想象一下,一个密码保护os级别的计算机,我们仍然可以启动一个liveCD访问,当我们取证iphone时,它是一个嵌入式设备,所以不容易拿到它硬盘的转储数据,执行iphone的取证,我们使用liveCD的方法。由于iPhone只有一个串口,我们要通过usb加载自定义的操作系统访问硬盘设备。这里的问题是:iphone只加载固件。
取证之前,我们首先要了解iphone操作系统级别的功能,iOS(前身为iPhone OS)是所有的iphone、ipod、苹果电视、ipd等设备上运行的操作系统。iOS是一个zip文件(扩展名为.ipsw),它包含引导装载程序、内核、系统软件、共享库和内置的应用程序。
一个iPhone启动时,它会有一个特定的顺序进行所有软件组件之间的RSA签名检查,如下图
bootrom是只读存储器(ROM),它是系统启动第一阶段的引导iOS设备,bootrom包含所有根证书签名检查。
iphone运行有3种模式-普通模式、恢复模式、DFU模式。
在正常模式下,bootrom在开始会关闭一些初始化的东西,加载低级别的引导程序(LLB)并验证它的签名是否正常。之后加载第二阶段的引导程序(iBoot)。iBoot签名检查内核和设备树,而内核签名检查会遍历用户所有的应用程序。
在DFU模式下(固件的强制升降级模式),设备越狱等之类必须要进入DFU模式才能进行。在该模式下,iphone引导顺序如下图:
如何取证:
建立你一个自定义的Ramdisk
首先,我们将建立以个自定义的RAM磁盘,使用我们的取证工具和内核RAM磁盘签名检查,后面我们将使用越狱相关工具加载内核。
1:安装所有的依赖关系包
curl -O http://networkpx.googlecode.com/files/ldid chmod +x ldid sudo mv ldid /use/bin
2:下载LDID和OSXfuse,给予执行权限,并移动到/usr/bin目录
curl -O https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.3.4.dmg hdiutil mount OSXFUSE-2.3.4.dmg sudo installer -pkg /Volumes/FUSE\for\OS\X\install\OSXFUSE\2.3.pkg -target / hdiutil eject /Volumes/FUSE\for\OS\X/ sudo ARCHFLAGS='-arch i386-arch x86_64' easy_install pycrypto sudo easy_install M2crypto construct progressbar
3:下载和安装python模块-pycrypto, M2crypto, construct和progressbar
hg close https://code.google.com/p/iphone-dataprotection/ cd iphone-dataprotection make -C img3fs/
4:下载并安装Mercurial(http://mercurial.selenic.com/)
curl -O -L https://sites.google.com/a/iphone-dev.com/files/home/redsn0w_mac_0.9.9b8.zip unzip redsn0w_mac_0.9.9b5.zip cp redsn0W_mac_0.9.9b5/redsn0W.app/Contents/MacOS/Keys.plist
5: 下载redsn0w来获取Ramdisk的加密密钥并解密
python python_scripts/kernel_patcher.py IOS5_IPSW_FOR_YOUR_DEVICE
6:内核打上补丁,如下:
sh ./make_ramdisk_n88ap.sh
上面的python脚本创建了一个内核的补丁和一个自定义的Ramdisk。注意:如果已经创建了打了补丁的内核和定制的iphone4的Ramdisk,你可以直接跳过上述的步骤,直接下载这些文件。
加载取证工具包
1:usb设备连接到计算机,并运行下面的命令,
./redsn0W_mac_0.9.9b5/redsn0w.app/Contents/MacOS/redsn0W -i IOS5_IPSW_FOR_YOUR_DEVICE -r myramdisk.dmg -k kemnelcache.release.n88.patched
如果这个过程失败和无标识数据提示错误,请确保电脑主机连接到互联网,redsn0w完成后,在详细模式下启动ramdisk。
2:建立设备与计算机之间的通信,如下:
python usbmuxd-python-client/tcprelay.py -t 22:2222 1999:1999
一旦使用了定制的Ramdisk引导系统,网络功能(如Wi-Fi)模式是不能使用的,因此我们使用Tcprelay.py脚本开启2222端口来重定向22端口的流量,如下
ssh -p 2222 root@localhost password:alpine
目前我们已经可以访问文件系统,但是iOS4默认有数据保护机制,当访问受保护的文件和keychain项目时,设备就会被锁定。该数据保护机制是基于硬件的加密和软件加密密钥一起使用的组合,每一个iPhone都包含一个特殊的硬件(AED processor)的密钥集(UID、GID),OS设备室无法读取到该密钥的。因此,为了访问受保护的文件,首先我们必须得绕过密码限制。
绕过iPhone的密码限制
從2009年的iPhone 3GS开始,苹果在手机中加入了一颗硬件加密芯片,不过最初并沒有投入使用。 去年伴随着iOS 4操作系统的推出,苹果终于启用了这项“数据保护”功能。 在iPhone 4/3GS、第三/四代iPod touch和iPad上,只要启用密码,所有数据都会通过256bit硬件加密进行存储。
最初(<iOS 4)的系统,密码是直接被存储在一个可以通过ssh直接删除的文件里面,iOS4之后推出数据保护机制,该密码无法删除。因此,未了对数据进行解密,必须提供有效的解锁密码。我们可以收集用户设备信息(序列号、UDID等),唯一的设备键值(keys 0×835 and 0x89B),然后通过彩虹表等来进行碰撞破解。
未完待续。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫