从CVE-2016-7644回到CVE-2016-4669

古人学问无遗力,少壮功夫老始成。纸上得来终觉浅,绝知此事要躬行。

—陆游《冬夜读书示子聿》

0x00 摘要

本文是第三篇基于漏洞分析来学习Mach IPC的方面知识的记录。

阅读顺序如下。

1.再看CVE-2016-1757—浅析mach message的使用

2.CVE-2016-7637—再谈Mach IPC

3.从CVE-2016-7644回到CVE-2016-4669(本文)

CVE-2016-7644这个漏洞,本身是一个很简单的漏洞,但是通过一些技巧,可以做一些更有意思的事情。

pocwriteup这里

CVE-2016-4669的POC,之前我已经分析过了,详见CVE-2016-4669分析与调试。在做完这一系列的IPC相关的漏洞研究与学习之后,尝试的对CVE-2016-4669这个漏洞实现一个提权的利用。

并不能稳定触发,不过也加深了对内核的内存布局与IPC模块的理解。代码在这里

CVE-2016-7637---再谈Mach IPC

为学大病在好名。

0x00 摘要

​ 去年在分析CVE-2016-1757时,初步的接触了MachIPC系统中使用的Message,在分析最近的一系列与IPC模块相关的漏洞时,又加强对IPC模块的理解,所以通过一到两篇文章梳理一下最近的学习总结与心得体会。

​ 关于CVE-2016-7637这个漏洞的描述有很多资料了,是一个攻击Mach的内核IPC模块的漏洞,本文最后会对漏洞做出比较详细的解释,这里给出几个链接,不熟悉这个漏洞的读者可以先了解一下。

黑云压城城欲摧 - 2016年iOS公开可利用漏洞总结

mach portal漏洞利用的一些细节

Broken kernel mach port name uref

PassiveFuzz框架试用与调试小记

0x00 摘要

​ 前段时间TREND的研究员在POC安全大会上介绍了一款OS X系统上面的Fuzz框架,并且开源了。github这里。我记得看雪好像已经有翻译成中文版的PPT,找了一下没找到:-(。网上能找到的信息,这里就不复述了,有兴趣的读者可以自行阅读。

​ 简单来说就是通过内核扩展,对一系列内核函数进行inline hook,在这些被hook的函数被调用的时候,对参数进行一些随机的修改。所以叫做被动式Fuzz,而不是传统的主动调用内核函数传入不同的参数。

XNU内核中task_t相关漏洞分析笔记(Part I)

0x00 摘要

​ 前两天Project Zero的blog上面,Ian Beer发表了一篇新的文章,讨论了在xnu 的内核在设计上存在的一个问题,从而可以导致提权,沙箱逃逸等一洗了的问题。并且提供了相应的的POC与EXP源码。这篇文章是调试与分析其中第一个漏洞CVE-2016-4625的部分。

task_t considered harmful

OS X/iOS kernel use-after-free in IOSurface

CVE-2016-4656分析与调试

0x00 摘要

Pegasus – 针对iOS设备的APT攻击分析- PanguTeam

iOS“远程越狱”间谍软件Pegasus技术分析

关心IOS安全的技术人员最近一定都关注了这一次的安全事件,不需要多做描述了,想了解具体细节的可以自行google

本文内容

  • 了漏洞所在的函数OSUnserializeBinary,了解其二进制格式
  • 理解POC,分析POC执行的流程

具体的技术背景,可以参考下面这篇文章

PEGASUS iOS Kernel Vulnerability Explained

PEGASUS iOS Kernel Vulnerability Explained - Part 2

iOS三叉戟漏洞补丁分析、利用代码 公布(POC)

再看CVE-2016-1757---浅析mach message的使用

0x00 摘要

CVE-2016-1757是一个OS X系统上通过条件竞争实现任意代码在root权限执行的漏洞。在这篇文章之前,我已经分析过了这个漏洞的原理,以及EXP代码的实现。

CVE-2016-1757简单分析

CVE-2016-1757利用程序分析

利用patch绕过kextload对内核签名的检测

syscan2016上又有国外的安全研究人员放出自己的利用代码。学习之后,这个利用代码确实比之前的更加清晰、明确。更加容易理解。

而两个利用本质上面的不同是对mach port的不同的利用方法。下面主要结合两个不同的POC,来分析一下mach message的使用,同时也是研究xnuIPC的基础。

,