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每个版本中钩子的数量: 一分钟越狱 iOS 11.4|世界顶级黑客大会 DEFCON 议题详解

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

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

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

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

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

0x02 iOS IPC: Mach, XPC and NSXPC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0x04 从PC到ROP

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

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

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

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

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

一分钟越狱 iOS 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轻松控制整个过程。

一分钟越狱 iOS 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端口的原因(为了提高成功率)。

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

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

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

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

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

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

一分钟越狱 iOS 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 雷锋网,雷锋网,雷锋网,重要的事情说三遍。

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


本文地址: https://www.gpxz.com/article/98d4a5d8cad10b31d38f.html
全局中部横幅
全局中部横幅
网易公开课

网易公开课汇集清华、北大、哈佛、耶鲁等世界名校共上千门课程,覆盖科学、经济、人文、哲学等22个领域,在这里你可以开拓视野看世界,获取有深度的好知识。

萝卜丝(原微客服)

萝卜丝(原微客服)卓越的在线客服系统微信客服系统智能客服系统即时通讯云企业协作系统工单系统androidios苹果安卓微信微信公众平台微服务萝卜丝(原微客服)App在线客服App在线咨询androidiOS安卓移动开发者服务平台一款跨平台的在线客服工具。支持多个微博、绑定多个账号。通过获取微博用户关系链、粉丝、好友,挖掘潜在客户。

羊肉的功效

羊肉是一种常见的食材,豆果美食食材百科为您整理了羊肉的别名,基本信息,适宜人群,不宜人群,搭配禁忌,羊肉的功效与作用,羊肉的烹饪技巧等信息,让您做出美味的羊肉。

连云塑料

连云塑料网是一个专注于塑料行业的综合性资讯平台,致力于为广大塑料厂家、采购商和从业者提供最新的塑料行情、塑胶资讯、塑料颗粒价格等信息。同时,该网站还详细介绍了各种塑料材质,包括pp材质、pvc塑料、abs材质和pc材质等,帮助用户更好地了解各种塑料的性能、用途和市场情况。

PCBA水清洗机

深圳市捷科精密设备有限公司是一家致力于高端PCB板焊接与清洗行业领域的高新技术公司,为客户提供高端品质的钢网清洗机、PCBA水清洗机、毛刷清洗机、线路板清洗剂、清洁度测试仪等设备及配套服务。产品广泛应用于IGBT/IMP/SIP封装、半导体封装、MINILED封装、汽车电子、医疗电子、军工、汽车制造等领域并获得好评

融金侠

融金侠、口子部落 提供2024年最新最靠谱的贷款借钱口子,无需查征信大数据也可申请贷款。融金侠、口子部落,2024年网贷平台,2024年靠谱贷款,2024年最新贷款口子,2024年网贷下款口子,2024年借钱放款口子,2024年不看大数据的口子,2024年不查征信的口子,2024年黑户贷款口子,2024年大数据花也能做的口子,2024年申请必下口子。

爱股圈

爱股圈是股市高手知识付费社群,致力于打造专业股票私域流量变现工具。基于微信公众号、手机APP为财经知识博主、KOL们搭建专属的私域流量管理平台,更轻松的实现私域流量变现

粉籹游戏网

粉籹游戏网(www.fennve.cn)致力于打造成洛克王国游戏攻略百科网站!

睿达智联SCRM系统

北辰SCRM,智能化全渠道营销工具,基于企微的客户管理系统,客户行为分析,线索培育转化,商机跟进,精细化私域运营管理,高效、精准触达客户,提升转化留存复购,打造专业的客户全生命周期管理

字库网

字库网收录各种免费字体下载和商业字体库的网站,为设计师日常设计作品中会用到各种字体提供服务,本站支持在线字体预览生成下载和字体厂商帐号注册上传原创字体

环保生物降解塑料袋厂家

无锡纯宇环保制品有限公司致力于全生物降解环保材料应用和研发,开发满足各市场领域需要的生物降解袋产品,服装包装降解袋,物流快递包装袋,商超购物袋等产品为各领域环保包装袋提供降解方案,印刷定制环保包装袋厂家选纯宇。

首页

哈尔滨市不动产登记交易

全局底部横幅