planetbeing
加拿大黑客
planetbeing,是加拿大的著名黑客。
人物介绍
ios6的完美越狱消息传得沸沸扬扬,发布这条消息的正是几位越狱大神中唯一一位亚洲面孔—planetbeing
曾经参与开发ios初代(ios1)越狱的planetbeing真名是Yiduo David Wang,来自俄勒冈的波特兰,是Evad3rs四人团队的一员。
事件
在iOS6 GM发布之后,就有不少越狱团队第一时间尝试进行越狱。此后iOS6正式版放出,绿毒团队的领头人p0sixninja表示,iOS6的防护级别高的令人不可思议,其操作系统的严密性超过了以往任何一款OS。因此越狱的难度是前所未有的。但最后他还是放口:黑客不会被任何框架所束缚。
小插曲:2012年12月,随着全球都在“欢度”世界末日的到来。越狱黑客Dream JB表示他会在12月22日放出iOS 6的完美越狱工具。但是到了22日那天,大家才发现他只是和我们开了一个末日玩笑。伴随着玩笑被戳破,众phone友们对ios越狱绝望沮丧之时,planetbeing 在推特表示自已掌握ios6完美越狱的核心,并承诺越狱会发布 但不是在2012年。
为了达成iOS6完美越狱这个任务,(@pimskeks @planetbeing @pod2g @MuscleNerd)
随即evasi0n;com官网上线。每一天,整个团队都会向外界公布越狱的最新进度:68%、85%、91%……整个iOS6完美越狱工具的开发过程仅用了10天时间。国外许多媒体都用了这样一句话来形容他们的工作:incredible work(难以置信的工作)。
事后在ios5完美越狱中作出重大贡献的pod2g表示在此次ios6完美越狱中自己贡献绵薄之力,主要是planetbeing,承认了planetbeing的重大贡献与能力
他接受了福布斯的采访,为我们讲述了整个iOS6的破解历程。他指出这次破解iOS6至少了利用了5个不同的漏洞。据悉,这次他们使用的手法,比Stuxnet更黑!(Stuxnet蠕虫是摧毁伊朗核浓缩离心机设施的那个著名病毒)
破解过程
最初,Evad3rs使用libimobiledevice来代替iTunes,连接到电脑上。它与iTunes一样使用了相同的设备连接协议。libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPodTouch等iOS设备。由于苹果官方并不支持Linux系统,但是Linux上的高手绝对不能忍受因为要连接iOS设备就换用操作系统这个事儿。因此就有人逆向出iOS设备与Windows/Mac Host接口的通讯协议,最终成就了横跨三大桌面平台的非官方版本USB接口library。经常用Linux系统的人一定对libimobiledevice不陌生,但是许多Windows和Mac用户也许就不知道了。事实上,它同iTools一样,都是可以替代iTunes,进行iOS设备管理的工具。因为源码是开放的,可以自行编译,所以对很多开发者而言可以说更为实用。
感谢Symbolic Link这个好东西
inode,并在磁盘上有一小片空间存放路径名。因此,软链接能够跨文件系统,也可以和目录链接。另外,软链接可以对一个不存在的文件名进行链接,但直到这个名字对应的文件被创建后,才能打开其链接。
如何绕过Code-signing
在iOS中,还有另一个安全保障——Code-signing。它能够阻止流氓应用访问Launch。在iOS设备上运行的代码都需要通过苹果的审核,并附带上有效的签名。一般开发者开发的程序,在正式发布到App Store之前是需要使用苹果颁发的证书进行签名的之后,再由苹果进行审核。审核成功之后,苹果也会对程序进行一次签名。当iPhone或者iPod Touch从AppStore下载安装程序的时候会调用系统进程INSTALLD(mobileinstalltion)对应用程序进行证书校验。所以一般需要安装破解软件时,都需要把此文件替换成破解版本。
如果你的MobileInstalltion没有破解的话,那么在安装或者运行程序的时候需要对你的数字证书进行检测,如果发现没有签名或者签名不对,就会自动kill掉程序。那么在这种情形下,我们可以伪造签名(当然无法通过AppStore的审核), 骗过MobileInstalltion ,使得可以正常使用。
Evasi0n构建了一枚没有代码的应用,当用户点击这个应用的时候,它就会利用Unix的“Shebang”命令,调用一个已经签名的应用代码,通过Code-signing的审查。此后,它就可以再调用上文提到的Launch执行root级的命令了。Evad3rs要通过这种方式,来对RFS(root文件系统)的只读权限使用“remount”命令变为可写。这就是为什么,我们在越狱时,要运行一次下面这个LOGO的应用。
什么是Shebang
在计算机科学中,Shebang(也称为Hashbang)是一个由井号和叹号构成的字符串行(#!),其出现在文本文件的第一行的前两个字符。 在文件中存在Shebang的情况下,类Unix操作系统的程序载入器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数。Shebang这一语法特性由#!开头,即井号和叹号。 在开头字符之后,可以有一个或数个空白字符,后接解释器的绝对路径,用于调用解释器。 在直接调用脚本时,调用者会利用Shebang提供的信息调用相应的解释器,从而使得脚本文件的调用方式与普通的可执行文件类似。
修改launchd.conf文件
RFS已经可写了,Evasi0n接下来就是先修改launchd.conf文件,当修改了launch配置文件之后,前面的工作就可以保存下来了。这样每次iOS设备重启的时候,就不必再连上USB进行越狱操作了。之前,很多iOS系统不完美越狱就是因为没有拿到修改launchd.conf的权限。造成每次重新开机都要再越狱一次,很麻烦。
破解AMFID防护机制
对于黑客来说,没有夺取到kernel(内核)权限,都不算作真正把系统征服。在iOS的系统内核中,还有一层叫做AMFID(AppleMobile File Integrity Daemon)的防护机制,它是用来监测移动文件完整性的守护进程。AMFID会校验代码签名,防止流氓程序运行。Evasi0n利用launchd.conf文件,为AMFID加载一个library,让每次AMFID在做校验的时候,都会返回一个“approved”的肯定回答。David Wang在福布斯记者的采访中,并没有给出具体的破解方法,只是留下一句话:苹果自己应该明白这一点。
异常向量,萃取内核地址
除了内核级的应用签名之外,苹果为了防止黑客在内核级的内存中随意修改,iOS还有最后一道那就是ASLR(Address Space Layout Randomization)随机地址空间布局。当系统加载时,ASLR都会将他们随机分配到内存的不同位置,防止某些内容总是存储在内存的特定部分,让黑客有规律可寻。
聪明的Evad3rs团队,使用了ARM exception vector(异常处理向量)。exception vector其实经常会用到,处理器异常、出错时(其实不完全是出错),它就会抓来这个vector找相应的处理函数。例如,遇到看不懂的指令,它就会抓0x4地址指令。也就是“ldr pc, __instruction”,接着就会跳到 instruction的函数去处理。当程序出现异常时,ARM异常向量就会给出崩溃的内存地址,黑客拿到足够多的信息,就可以找到内核在内存的分布范围,这样整个内核的内容也就被抓到了。
夺取内核控制权
搞定ASLR之后,Evad3rs利用iOS连接USB的一个漏洞,把内核内存的某个地址传给一个应用,而应用返回来的内容就可以用来改写这部分内存地址。由此Evad3rs就可以修改内核任何部分的内容了。据Wang所说,当你拿到了内核的权限时,整个系统就没有任何“安全机制”能阻止我们了,我们赢了!
2013-2-7 最新更新:
Pod2gTwitter上称,evasi0n网站独立IP访问量超过500万,PV突破了4000万,而在整个用户群中,中国用户的数量最大。有近300万的中国用户访问了evasi0n网站,占总访问量的20.12%。美国用户比例为16.88%,将近250万用户。其次是法国、德国、意大利、英国、俄罗斯等地区的用户。
参考资料
planetbeing 解读ios6完美越狱.iPhone多玩网.2013-02-08
最新修订时间:2024-01-09 22:21
目录
概述
人物介绍
事件
参考资料