iOS 世界顶级黑客大会 议题详解 DEFCON 11.4 一分钟越狱 (iphone世界)

苹果公司在 macOS 和 iOS 中都采用了沙盒机制保护系统不受恶意软件的攻击。在世界著名的黑客大会DEFCON 的这次演讲中,来自阿里安全的安全研究员分析了最新版的 iOS 中的沙盒机制和以及如何获取沙盒配置文件。然后,讨论了 iOS 上的 IPC 机制,并回顾几个经典的沙盒逃逸漏洞。随后,安全研究员展示了 iOS 11.4 上的两个沙箱逃逸 0day 漏洞。

0x01 沙盒简介

苹果公司在macOS 10.5中把沙盒作为“SeatBelt”引入,它提供了MACF策略的第一个全面实现。在macOS上成功试用后,苹果公司又将沙盒机制应用于iOS 6中。随着新的系统的发布或新的威胁出现,沙盒的钩子数量一直在稳步的增长。如下是iOS/macOS每个版本中钩子的数量: 一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

一开始,苹果的沙盒使用黑名单方式,这意味着苹果将已知的危险API整合在一起,并阻止它们,默认情况下允许所有其他人使用。随着苹果沙盒的发展,它采用了一种白名单的方式,拒绝所有的API,只允许苹果信任的安全接口。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

在MacOS中,配置文件可见并存储在/System/Library/Sandbox/PROfiles中。在iOS中,配置文件被硬编译到了/usr/libexec/sandboxd中。解码沙箱配置文件很困难,但我们可以遍历所有Mach服务根据返回值获取mach-lookup列表(例如,通过Jonathan Levin的sbtool)。 一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

为了找到漏洞,我们需要反汇编和分析包含相关Mach服务的处理函数的二进制文件。/System/Library/ LaunchDaemons包含了大多数Mach服务的配置plist。在plist文件中,“ProgramArguments”字段显示了二进制文件的路径,“MachServices”显示了相关的mach服务。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

0x02 iOS IPC: Mach, XPC and NSXPC

Mach消息包含类型化数据,可以包括端口权限和对大内存区域的引用。XPC消息建立在Mach消息之上,NSXPC消息建立在XPC消息之上。通过Mach消息,沙盒应用程序可以与未被沙盒的Mach(MIG)服务,XPC服务和NSXPC服务进行通信。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

0x03 从老的漏洞到新的漏洞

bluetoothd的“com.apple.server.bluetooth”Mach服务中有132个函数(从0xFA300开始)。 蓝牙通过“com.apple.server.Bluetooth”与沙盒应用程序和其他非沙盒的进程(例如,SpringBoard)进行通信。进程可以使用BTSessionAttach为bluetoothd创建session_token,然后使用BTLocalDeviceAddCallbacks 为事件通知注册回调。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

但是,Bluetoothd仅使用会话令牌来识别进程,这意味着我们可以使用沙盒应用程序通过会话令牌来劫持蓝牙和沙盒外的进程之间的通信(CVE-2018-4087)。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解 漏洞形成的原因是ses_token太容易被暴力破解了。它只有0x10000(0x0000 - 0xFFFF)个可能的值。Apple通过向每个会话添加user_id (= arc4random()) 来修复此问题,只有进程本身知道user_id,并且bluetoothd将检查map[ses_token] == user_id。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

如前所述,user_id = arc4random()= [0x00000000-0xFFFFFFFF]。如果我们知道session_token,我们仍然可以通过user_id暴力劫持通信。 但这需要很长时间(约12小时)。如果没有user_id验证的话,还有没有其他的回调注册函数呢?答对了!0xFA365 BTAccessoryManagerAddCallbacks()!

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

但是,通过BTAccessoryManagerAddCallbacks()向bluetoothd发送消息后,没有任何反应! 最后,我发现了这个问题。 仅当iOS设备连接到新设备时才会触发回调事件,这意味着我们需要通过手动单击蓝牙设备来触发回调。

CallBacks 1(需要的时间很长),CallBacks 2(很难触发),再来一次CallBacks 3! 这次,我们又发现了一个可以注册回调函数的新函数,并且它很容易触发!

0xFA329 BTDiscoveryAgentCreate()可以为发现代理创建回调,然后我们可以使用0xFA32B BTDiscoveryAgentStartScan()来触发回调而无需手动点击!

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

0x04 从PC到ROP

我们的目标不仅是控制PC指针,还控制要控制整个进程。下一步是创建ROP链并对目标进程执行堆喷射。在这种情况下,我们使用MACH_MSGH_BITS_COMPLEX Mach消息以及MACH_MSG_OOL_DESCRIPTOR格式。如果我们发送消息并且没有接收消息,则ROP链将持续保留在目标的内存空间中。经过多次测试,我们可以找到一个MAGIC_ADDR 在 0x105400000这个地址。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

我们可控制的寄存器:X3,X4,X5,X19,X20。 最后一个BR是X4。到目前为止,我们只能做BOP(JOP)。但是这样的话,我们很难控制程序流程。因此,我们需要一个stack pivot来控制堆栈并且从BOP 转换为 ROP。 一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

在libsystem_platform.dylib中可以找到一个很棒的stack pivot gadget。如果我们可以控制x0,那么我们就可以控制sp。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

0x05 从ROP到task port

端口为IPC提供了端点。消息可以发送到端口或从端口接收。端口可以包含权限,并且端口权限可以在消息中传递。一个进程最重要的端口是mach_task_self()。可以通过其任务端口来控制进程的内存和所有寄存器。

我们可以使用mach_vm_allocate(target_task_port,&remote_addr,remote_size,1)在远程进程中分配内存。mach_vm_write(target_task_port,remote_address,local_address,length)可用于将数据复制到远程进程中。 thread_create_running(target_task_port,ARM_THREAD_STATE64,&thread_state,stateCnt和thread_port)可用于在远程进程中创建新线程。因此,如果我们可以获得一个进程的任务端口。 我们可以通过mach msg轻松控制整个过程。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

一些从Mach_portal学习到的技巧:

1. 我们可以使用mach_port_insert_right(mach_task_self(),port,port,MACH_MSG_TYPE_MAKE_SEND)向端口插入发送权限。此类端口可以通过具有MACH_MSG_PORT_DESCRIPTOR类型的OOL消息发送。

2. 在大多数情况下,mach_task_self()返回0x103,所以我们可以在不使用ROP的情况下使用0x103(调用mach_task_self())。

3. 为了将任务端口发送到我们的pwn应用程序,我们需要知道我们的pwn应用程序的端口号。但是我们不能用launchd来帮助我们。幸运的是,端口号可以通过(0x103 + 0x100 * N)猜测。这就是我们向远程进程发送0x1000端口的原因(为了提高成功率)。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

但是在iOS 11中,苹果加入了一个新的缓解机制用来控制沙盒中的app获取task port:

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

虽然我们无法很容易的获取task port,但是我们可以利用下面的ROP gadget来调用任意函数:

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

使用这些ROP,我们可以打开更多的攻击面并进一步的攻击内核。

一分钟越狱  11.4|世界顶级黑客大会 DEFCON 议题详解

0x07 参考文献

1. MacOS and *OS Internals

2. Pangu 9 Internals

3. triple_fetch

4.

5. Mach portal

0x08 更新

在6月份的时候,文章中提到的两个“0day”漏洞被我们提交给了苹果,在iOS 11.4.1和iOS 12 beta中被修复了 (CVE-2018-4330和CVE-2018-4327)。但是在iOS 11.4以及之前版本中都可以被利用,请尽快升级您的iOS以避免潜在的攻击。

via 雷锋网,雷锋网,雷锋网,重要的事情说三遍。

原创文章,未经授权禁止转载。详情见 转载须知 。

全局中部横幅
平面设计

平面设计,平面设计提供平面设计教程,photoshop,fireworks,Illustrator,coredraw,painter,Freehand等教程

同花顺问财

同花顺旗下专业的智能选股平台,通过AI技术致力于为股民提供智能选股、量化投资、技术分析、快速选股等服务,覆盖股票、指数、美股、港股、行情、基金、新三板、债券、期货、外汇、科创板、保险、理财、宏观、资讯、百科等信息,从而有效提高投资者的投资逻辑和效能

防爆电机

江苏双云防爆电机有限公司是一家专业生产防爆电机厂家,主要防爆电机类型有防爆变频电机,防爆掘井电机.矿用防爆电机等防爆电机产品,主要用于石油、煤炭、化工、冶金、交通、水利、电力、造船等领域。欢迎来电咨询!

环保木地板

信达天下,步入辉煌!湖北名牌地板,信步地板是湖北知名地板生产厂家,湖北艾文迪木业有限公司生产的符合国家标准和企业标准的优质木地板!公司组建于2002年,一直遵循“奉精工艺术,献卓越品质”的宗旨,向消费者奉献优质的产品,创造完善的服务。致力于“提升生活品质、传播家居文化”是企业一份义不容辞的责任和义务。

息宽17年

山东济南老牌idc服务商

pon
pon

海荻威专业光通信设备ODM代工厂家,提供ONU光猫,光模块,交换机,OLT代工服务,9段代工体系,10+年行业经验,10000家运营商优选代工厂家共同选择。

财经姗

财经姗是一家专业的财经网站,致力于为用户提供全面、准确的财经资讯和深入的投资分析。我们汇集了一支由行业内资深专家组成的团队,为用户提供权威可靠的财经信息和精准的投资建议。

激光焊接机

惠州市镭凌激光科技有限公司,是一家研发、生产、销售、服务为一体的激光智能设备公司,产品有激光打标机,激光焊接机,激光切割机等近百种工业激光设备。服务热线:4000752499

星座运势

【星座运势】专业的占星学星座网,提供星座知识、星座个性分析、星座开运方法、星座运势、配对、查询以及心理测试、塔罗牌、先天命格、气运、生肖等星相运数相关内容。

寰球国际展览(GIE),上海国际车展

寰球国际展览,广东寰球国际会展有限公司、GIE、议题策划、专家会议、高层峰会、学术会议、新闻发布、行业会议、商业活动、巡演活动、赛事活动、推广活动、媒介活动、年活动、颁奖活动、奠基仪式、签约仪式、启动仪式、开业仪式、展览会议、展会搭建、新能源汽车、智能汽车、无人驾驶汽车、自动驾驶、5G、人工智能、无人驾驶大会、智能驾驶大会

汽车乐园

汽车乐园提供汽车相关资讯、评测、购车指导等服务的网站平台。用户可以在汽车网上获取最新的汽车新闻、车型信息、技术动向、汽车保养知识以及汽车市场行情等内容

全局底部横幅