- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一発入魂 - XNU内核漏洞分析与利用
蒸米@阿里移动安全
Outline
• XNU introduction
• iOS 9.3.4/macOS 10.11.6 OSUnserializeBinary() info leak UAF
• XNU kernel ROP
• iOS 10.2/macOS 10.12.2 mach_voucher() heap overflow
• iOS 10 port feng shui
• Conclusion
XNU简介
• XNU ,由苹果电脑发展的操作系统内核,被使用于macOS和iOS中。它是Darwin操作系统的一部
份,跟随着Darwin一同作为自由及开放源代码软件被发布。XNU是X is Not Unix的缩写。
• XNU for macOS是开源并且可以编译的:/source/xnu/
• XNU for iOS是闭源的并做了部分修改,但绝大多数实现和macOS是一样的。
iOS 9.3.4/macOS 10.11.6 内核漏洞: OSUnserializeBinary()
• 漏洞位置:xnu-source/libkern/c++/OSSerializeBinary.cpp
• 信息泄露:没有检查len的大小,导 • Use-after-free :OSString key转换为OSSymbol
致可以8 ,从而泄露内核栈上的信 的过程中OSString已经被free掉了,但这个
息。 OSString却被加入了对象列表里。
iOS 9.3.4/macOS 10.11.6 内核漏洞: OSUnserializeBinary()
• 如果攻击者将number的长度设置的非常长,并用io_registry_entry_get_property_bytes()去获取
number数据的话,就会造成内核的信息泄露。
• 因为OS number的长度被修改了,所以返回的数据不光有攻击者发送给内核的number ,还有栈上数
据,比如函数return时候的返回地址: 0xFFFFFF+kslide。
iOS 9.3.4/macOS 10.11.6 内核漏洞: OSUnserializeBinary()
• OSString key转换为OSSymbol的过程中OSString已经被free掉了,但这个OSString却被加入了对象
列表里。因此当一个OSObject类型去引用一个已经被释放了的OSString的时候,就会产生UAF。
• 因此,如果攻击者能够在OSString被free的时候,立刻申请一段和OSString一样大小的内存并且构造
好对应的vtable数据,当内核调用o-retain()的时候 ,内核的pc指针就能被攻击者控制。
XNU kernel ROP
• 在macOS上有一种取巧的方法,如果exp的bin是32位的程序的话,可以使用NULL page。因此 ,攻击
者可以使用vm_allocate()申请到NULL Page ,然后将vtable和ROP chain都保存在NULL page里。
• 随后利用ROP获得当前进程的ucred ,然后将cr_svuid设置为0 ,最后用thread_exception_return退出
进程,即可拿到root。
iOS jailbreak
• 在iOS上利用OSUnserializeBinary()漏洞会麻烦一些,因为不能利用NULL page (32位上和iPhone 7上kernel
不能执行用户态的代码, SMAP )。
您可能关注的文档
最近下载
- 2021版35kV~750kV 变电站通用设备技术规范第13部分:接地变压器及消弧线圈成套装置.pdf VIP
- 心脏横纹肌瘤的科普知识课件.pptx VIP
- 2021版35kV~750kV 变电站通用设备技术要求及接口规范第2部分:高压并联电抗器.pdf VIP
- 新概念英语二册Mp3教程附音频下载-英语听力_0.pdf VIP
- 2021版35kV~750kV 变电站通用设备技术规范第9部分:低压并联电抗器.pdf VIP
- 2021版35kV~750kV 变电站通用设备技术规范第第12部分:站用变压器.pdf VIP
- 初一有理数计算700题.docx VIP
- 市政供热管网施工技术的方案.doc
- 循环教材制度_使用登 记表.doc VIP
- 部编小学语文六年级上册第二单元《革命岁月》集体备课教材分析解读.pptx VIP
文档评论(0)