搞机播报:微信公众号代运营&代排版 // 搞机爱好者交流群开通啦(368706474)~搞机爱好者交流群

深度解析Evasi0n带领你走的越狱之路

iOS YounG煬 610浏览

evasi0n

 

越狱就是一个猫鼠游戏,这回,老鼠又赢了。

昨天凌晨,越狱团队 evad3rs 发布了 6, 6.1 的苹果iOS全系列设备越狱工具Evasi0n,允许用户一键越狱,不过几分钟就突破了苹果的安装限制。

Cydia appstore 的管理员 Jay Freeman 表示,上线仅 6 个小时,Evasi0n 就被使用了至少 80 万次——这还是保守估计,因为 Evasi0n 上线第一天带来的海啸般的访问多次把 Cydia 的服务器整垮了。到了第二天,访问量达到 170 万次。

苹果的 iOS 系统每升级一次,iPhone 和 iPad 的越狱难度就会增加一些。Evasi0n 也不例外,evad3rs 四人越狱团队之一的 David Wang 表示,整个越狱过程至少利用了 iOS 系统里的 5 个不同的、新的漏洞才完成。

David Wang 向 Forbes 讲解了 Evasi0n 的整个越狱过程,整理如下:

Evasi0n 首先会运行 libimobiledevice,该程序使用了和苹果 iTunes 相同的协议,能代替 iTunes 与 iOS 通信。Evasi0n 利用了 iOS 移动备份系统里的一个漏洞,获得了几项原来无法被访问的设置的访问权限(设置设备时区的一个文件)。

Evasi0n 会在该时区文件中插入一个文件软链接(Symbolic Link),可以将操作系统里的访问请求转移到其他指定位置。这样,那条链接就转到了某个特定 socket——不同程序间的限制的通信渠道,David Wang 把它比喻成 ” 直达莫斯科的热线 “。Evasi0n 把各个程序与 Launch Daemon 通信的 socket 做了修改(Launch Daemon 缩写成 launchd,是 iOS 设备启动时首先加载的主程序,它可以启动需要 “root” 权限的其它应用。)这就是说,每当 iPhone 或 iPad 的移动备份系统启动,所有的程序都能获得该时区文件的访问权限,再加上 Symbolic Link,这些程序就能通过 launchd 打开了。

为了防止程序访问 launchd,iOS 还有一道防线:代码签名(Code-signing)。这一限制要求所有在 iOS 设备上运行的代码都得被苹果审核通过,并且附有对应的签名。相应的,Evasi0n 准备了一个貌似没有代码的新应用,当用户打开该应用的时候,它就会利用 Unix 的 “shebang” 把戏,调用另一个已签名的应用的代码。然后再调用前面提到的 launchd,再用 launchd 运行一条 “remount” 命令,该命令会把原来只读的根文件系统(root file system, RFS)变成可写。

RFS 可写以后,Evasi0n 接着修改 launchd.conf 文件——修改了 launchd 的配置文件以后,Evasi0n 前面做的工作就可以保留下来了,这时越狱才是 ” 一劳永逸 ” 的,之后,哪怕设备重启了,用户也不用重新再越狱了。

不过,尽管经过了这么复杂的步骤,设备的限制在 ” 内核(kernel)” 层被解除之前,越狱都是未完成的。苹果 iOS 系统的内核层里还有一个 AMFID(Apple Mobile File Integrity Daemon,苹果移动文件完整性守护进程),AMFID 会检验代码签名,防止未经允许的程序运行。每当有程序运行的时候,Evasi0n 就会利用 launchd 为 AMFID 加载一个函数库,替换 AMFID 原来检查代码签名的函数,之后每回程序启动就会返回 “approved” 的结果了。David Wang 在此不愿透露解决 AMFID 的更具体的信息,” 苹果他们自己能整明白的。”

为了防止黑客在系统内核层面篡改内存,iOS 还有一道防线:地址空间布局随机化(Address Space Layout Randomization, ASLR)。 当一个应用程序加载时,ASLR 就会将其基址随机设定,防止黑客篡改该段代码。但是 Evasi0n 还是通过 ARM 异常向量(ARM exception vector)成功定位了基址。当出现程序崩溃时,ARM 异常向量会报告崩溃究竟发生在内存的哪个位置,于是,Evasi0n 就模拟了一次崩溃,检查 ARM 异常向量给出的崩溃报告和崩溃位置,拿到足够的信息就可以把设备内存里的内核的其它部分了找出来了。

摆平 ASLR 以后,Evasi0n 就会利用 iOS 连接 USB 时的最后一个漏洞,把内核内存里的某个地址交给一个程序,” 等着用户再把它返回 “。Evasi0n 接着就可以改写内核的任意部分了。首先改写的是对内核代码修改的限制,” 进入内核以后就再无安全可言了。”David Wang 表示,” 我们就赢了。”

关注搞机爱好者微信公众号

搞机爱好者微信公众号

转载请注明:搞机爱好者 » 深度解析Evasi0n带领你走的越狱之路