分类内核技术下的文章

360vulcan 发布于 05月23, 2017

Pwn2own漏洞分享系列:利用macOS内核漏洞逃逸Safari沙盒

背景

在Pwn2own 2017 比赛中,苹果的macOS Sierra 和 Safari 10 成为被攻击最多的目标之一。在此次比赛过程中,尽管有多支战队成功/半成功地完成了对macOS + Safari目标的攻破,然而360安全战队使用的漏洞数量最少,而且也是唯一一个通过内核漏洞实现沙盒逃逸和提权,并完全控制macOS操作系统内核的战队。在这篇技术分享中,我们将介绍我们所利用的macOS内核漏洞的原理和发现细节。

阅读全文 »

mj0011 发布于 11月15, 2015

Edge Sandbox绕过后续及Windows 10 TH2新安全特性

在11月6日的韩国PoC(Power of Community)安全会议上,笔者介绍了一些Windows 10 RTM中的一些新安全特性,以及他们在过去的TP版本中发生的安全问题,同时,笔者还重点介绍了一个Windows 10 Edge沙箱的逃逸漏洞,以及如何将其(结合一个RCE漏洞)组装成彻底攻破Edge浏览器的方法和演示,包括笔者同微软长达半年沟通最终促成他们决定修复漏洞的过程。

因为这个漏洞目前仍然是未修复的0day状态,在微软的要求下, 在PoC的演讲中笔者对关键部分做了一些mask,议题Slides也并未公开,因此这里也不会过多讨论这个漏洞。

阅读全文 »

mj0011 发布于 07月13, 2015

Hacking Team攻击代码分析Part5: Adobe Font Driver内核权限提升漏洞第二弹+Win32k KALSR绕过漏洞

作者:360Vulcan Team成员: MJ0011、pgboy

前言

继360Vulcan上周分析了Hacking Team泄露信息中曝光的三个Flash漏洞和一个Adobe Font Driver内核漏洞后(链接见文后)。 Hacking Team泄露信息中仍在不断被发现存在新的攻击代码和0day漏洞。7月12日,Twitter上安全研究人员@vlad902公布了Hacking Team的邮件(https://wikileaks.org/hackingteam/emails/emailid/974752)中可能的一处Windows权限提升漏洞,并将其攻击代码上传到Github上(https://github.com/vlad902/hacking-team-windows-kernel-lpe)。

经过我们的分析,该攻击代码中包含了两个Windows内核模式驱动的0day漏洞,其中一个是针对Windows内核驱动Win32k.sys的一处安全特性(KASLR)的绕过漏洞,另一个是针对Adobe字体驱动(atmfd.dll)的一处内核池溢出引发的内核代码执行漏洞。

阅读全文 »

mj0011 发布于 05月13, 2015

谈谈15年5月修复的三个0day

北京时间2015年5月12日, 微软推送了5月的补丁日补丁,包含IE、Windows内核、Windows内核驱动、Office等多个组件的安全更新。

本次补丁日修复了360Vulcan Team的Hao linan报告的Internet Explorer中存在的ASLR绕过0day漏洞: CVE-2015-1685(https://technet.microsoft.com/en-us/library/security/MS15-043),同时,本月修复的另外两个0day漏洞,MS15-052中修复的Windows内核安全特性绕过漏洞:CVE-2015-1674 (https://technet.microsoft.com/en-us/library/security/MS15-052)和MS15-051中修复的Windows内核模式驱动权限提升漏洞:CVE-2015-1701(https://technet.microsoft.com/en-us/library/security/MS15-051) 也引起了我们的注意。

阅读全文 »

mj0011 发布于 01月25, 2015

Windows10安全增强:Build 9926引入的两个字体安全特性

概要

微软在北京时间2015年1月22日,公布了其新一代操作系统Windows 10的新技术预览版,并在随后的北京时间1月24日向公众开放了该预览版本的下载(Build:9926)。在这个新的Windows10预览版中,内核版本直接从6.4提升到了10.0,同时也带来了一些新的产品形态和用户体验上的诸多改进。

阅读全文 »

mj0011 发布于 01月06, 2015

NtApphelpCacheControl漏洞分析

起因:

Google Project Zero团队的新晋成员James Forshaw在9月30日向微软提交了名为“Windows: Elevation of Privilege in ahcache.sys/NtApphelpCacheControl”的安全问题,并且在Google的漏洞公开期限(90天)后,也就是2014年12月29日(北京时间的12月30日)公开了此问题的细节。

阅读全文 »

pjf 发布于 09月30, 2013

从Blue Pill、硬件虚拟化谈安全防护完备性上的一个小原则

多年没写博客了,就先捡点剩菜剩饭炒炒,没啥营养,同学们可以随便看看。另外就是文笔真心烂,阅读的同学们需要点耐心。

这篇博客说说一个安全防护系统完备性上所需的一个小原则:防护系统与被防护对象所用资源的完全隔离,包括防护系统自身工作所依赖的资源不能依赖被防护对象。听起来是原理很简单的一个点,实现中往往很复杂。例如操作系统隔离应用程序、虚拟机监视器隔离客户机,需要考虑方方面面、还需要处理器/芯片组硬件的大量支持。分析、设计系统时遵循许多这类小原则是必要的。

阅读全文 »

mj0011 发布于 06月13, 2013

端午节蓝屏之谜:金山系列软件同微软KB2839229冲突技术分析

蓝屏冲突事件来历

在2013年6月12日,也就是端午节当天,微软发布了6月例行补丁日的Windows/Office相关补丁,国内各大安全厂商也向用户及时推送了这些补丁,而在补丁发布后,各大安全厂商、电脑厂商却接到了大量的用户反馈,说安装了微软KB2839229补丁后,导致系统蓝屏,无法开机。

经过对蓝屏DUMP深入分析,可以明确这是金山系列软件中的驱动程序,在挂钩Windows内核时处理不当引发的蓝屏问题,受影响的软件包括金山毒霸、金山卫士、猎豹浏览器、驱动精灵(被金山收购)和WPS Office,受影响的驱动程序组件是:kisknl.sys(金山毒霸)、 KsDef.sys(金山卫士)、knbdrv.sys(猎豹浏览器)、dgsafe.sys(驱动精灵)和WpsSafe.sys(WPS Office)。金山毒霸于12日下午1点紧急更新了新版驱动解决此问题,其他的产品升级状况暂时还不清楚。

阅读全文 »

ftofficer|张聪 发布于 11月04, 2012

谈一个Kernel32当中的ANSI到Unicode转换的问题

众所周知,Windows的几乎所有带有字符串参数的API都是有W和A两个版本,分别对应于Unicode和ANSI版本。同时,Windows内部是使用Unicode的,因此所有的A版本的API函数都是实际上调用了一次ANSI到Unicode的字符集转换之后,再调用Unicode版本的函数。 你真的清楚这中间的这一步转换吗?普通的工程师确实不需要了解太深刻,但是我们是做安全软件的,安全软件的一个基本实现机制就是Hook,就是在原本的API调用路径上面拐一个弯,改变原本的API执行流程,以便在其中插入安全检查等逻辑。 这当中,如果没有对于所要Hook的函数的深刻理解,也许会有很多看似灵异的事件出现。在我们的代码当中,我们就使用了Hook的机制,然后很幸运的(很不幸?),遇到了这样一个灵异问题: 在测试当中,发现某个软件一旦被我们Hook,就总是崩溃。必现的崩溃总是很容易解决的定位的,很快,我们发现崩溃来源于下面一个调用序列:

HMODULE hMod = LoadLibraryA("Kernel32");
PROC pfxIsWow64Process = GetProcAddress(hMod, "IsWow64Process");

对LoadLibrary的调用返回没有检查返回值,进而继续调用GetProcAddress。那么,当hMod = NULL的时候,GetProcAddress并不检查hMod是否是0,而直接试图去寻找其中的导出表,于是导致了非法的内存访问。

阅读全文 »