2014SyScan360--盘古如何实现完美越狱

原创
安全
导语:2014年7月16日,由SyScan主办,360公司承办的SyScan360国际前瞻信息安全会议隆重召开。本次会议上汇集了来自美、意、西、葡等9个地区的18名顶级安全专家,向与会者分享安全领域最新的科研成果,议题涵盖Window、ios、Android系统安全,汽车攻击、云服务攻击等诸多领域。

作为中国本土技术团队,时隔半年后,6月24日,盘古团队发布了iOS7.1.1完美越狱工具,这款工具在一片质疑声中得到了国外知名的越狱大神iH8sn0w的中肯评价:“除了带有盗版商店的可选安装之外以及企业认证之外,Pangu并没有附带任何恶意软件。也就是说,用户在安装之后不会有安全方面的问题,盘古是一个非常成熟的越狱工具。”

而根据来自盘古数据的统计,从完美越狱工具发布到上周六,这短短的18天,盘古网站浏览量达到500万,后成功越狱的设备数量达到300万,来自中国与美国的iPhone是真正的主力。

盘古数据

来自盘古团队的独立安全研究员Windknown与我们分享盘古团队如何发现并用来实现完美越狱的漏洞。Windknown介绍了代码签名绕过、内核信息泄漏、内核内存覆盖三个漏洞的细节,并且演示如何针对这些漏洞编写溢出,从而使得盘古越狱能在iOS设备上存活。

代码签名绕过

绕过代码签名的思路很简单,这是苹果的特性,可以利用其重新导出而迫使它加载。完美越狱,希望能够在手机重启过程当中,找到机会执行盘古的代码,然后去溢出内核,把内核当中的签名、检查、沙盒等保护去掉。这当中我们要做到两点,一个要有内核的漏洞,并且在比较早的时候触发这个漏洞。第二是找到未签名的代码,我们要绕过未签名的漏洞。

盘古通过Launchd的代码加载所有的Plist配置服务的。它通过这个文件定位文件当中的XPCD文件,这里面需要注意XPCD是需要认证的。苹果把所有的DYLIB放在缓存文件中,这可以通过这个标志位,构造的一个加载但仍然需要有签名检查的,还是需要绕过它签名检查的机制。

内核信息泄漏

Early_random对于64位的,它通过简单的暴力猜解就可以获取所有的值。对于32位,需要知道一个输入值才可以恢复剩余的值。32位的Output中返回32个指针,62位的Output中返回16个指针,这是非常简单的代码。

这里面关键的一个东西就是这个参数,叫OutputCount。真正功能的处理调用,是在对应的ExternalMethod时,你会重写ExternalMethod。在调用ExternalMethod的时候,它首先在站中准备了一个OutputCount,准备了16个数据的长度,然后它把这个参数再传递给,反映给上层,这就是一个正常的行为。

可以看到如果大家通过ID一分析的话,可以看到ID驱动在重载externalMethod的话有两种方式。一种方式是它在自己类的成员中有一个对象,有一个成员是method的数组。如果不这样调用的情况下,在代码实现的过程中,他可能根本没有关心需要设置初参,就像Outputcount,Outputcount里面,给了16个数据的长度,并告知16个数据长度,如果没有做,那就是零,它在调用数据过程当中会把这16个数据调用给用户。到目前为止,盘古在使用的数据,可以把那些所有的随机值全部的恢复。

内核内存覆盖

最后的漏洞,可以利用它来达到写任何内核内存的目的。首先要触发漏洞,打开一个IOHIDEventService服务,设置一个通知端口,映射队列内存,在映射队列内存的结尾可以找到mach-msg-header-t结构,修改mach-msg-header-t指向我们的虚假port,等待队列有数据后向虚假port发送消息。

代码执行其实有很多种不同的思路,一个最简单的思路就是覆盖一个内核对象的指针,这个很简单,首先你有任意读,我可以就把整个内核对象的内容读出来,然后仅仅修改vtable指针,再覆盖整个内核对象,将对象放在连续的代码之间。

最后,Windknown表示“三个漏洞都是目前都没有被修补的,完美越狱至少4-5个漏洞,exploit对兼容性要求比较高,任何正常软件都很难做到一夜之间下载到百万,而越狱就可以,这也就是它的魅力所在。”我们也希望作为中国最顶尖的技术团队之一,盘古能继续保持佳绩,并在国际上打开影响力!

责任编辑:林琳 来源: 51CTO.com
相关推荐

2014-07-16 18:22:43

2014-06-25 09:47:59

2014-07-16 10:42:35

2014-07-17 11:33:47

2014-07-17 10:11:40

反汇编引擎CapstoneSyScan360

2014-07-17 11:54:37

2014-07-16 17:01:16

2014-07-17 15:16:18

2014-07-16 14:24:07

2014-07-18 09:18:58

2014-07-16 12:03:34

2014-07-07 10:12:59

SyScan360

2014-07-17 21:22:39

2014-07-16 18:47:05

2014-07-16 16:14:13

2014-06-20 15:02:46

2014-07-17 15:43:35

2014-07-16 12:06:26

SyScan360

2014-07-16 09:45:58

2014-06-24 09:37:32

点赞
收藏

51CTO技术栈公众号