SandboxEscaper披露漏洞POC研究报告是什么

事件概述

近日,安全研究人员SandboxEscaper在GitHub上发布了针对Windows 10的5个零日漏洞的演示利用代码。

代码分别是:

Windows错误报告

Windows任务计划

Windows安装程序

IE11沙箱逃离

Windows AppX部署服务

其中除一、五俩个零日漏洞外,其他三个都是在2018年就已爆出。

漏洞详情

Windows错误报告零日

1. 利用条件:

可以通过精心放置的DACL(自主访问控制列表)操作来利用:

当我们触发报告队列任务时,WER服务将尝试删除两个文件。它会为这两个文件写一个DACL,以确保SYSTEM对它们进行“删除”。这种方式的工作方式分为两步:

a. 调用GetFileSecurity并获取安全描述

b. 向安全描述符添加了一些内容,因此具有SYSTEM删除权限,然后使用SetFileSecurity将其写回文件

它还关闭两个函数调用之间的文件句柄,这意味着如果在两个函数调用之间我们生成一个硬链接,它将首先从正常文件获取安全描述符,用户可以写入该文件。

然后,它将复制这些权限,并将此安全描述符应用于指向完全不同文件的硬链接。

成功的运行将如下所示:

SandboxEscaper披露漏洞POC研究报告是什么

您可以在QuerySecurityFile之后和SetSecurityFile之前看到正在创建的硬链接。可以使用IDA查看(wer.dll)并确认。很明显遭受攻击的功能是:UtilAddAccessToPath

2. 重现步骤:

a. 将AngryPolarBearBug.exe和report.wer复制到同一文件夹中

b. 运行AngryPolarBearBug.exe

此漏洞由于触发条件难以把控导致成功几率较低(触发错误可能需要15分钟,如果花了太长时间,需要关闭程序,清理缓存数据文件夹),并且早些时候已被修复。

Windows任务计划零日

1. 利用条件

Windows10有两个tasks文件夹:

a. C: Windowstasks

b. C:WindowsSYSTEM32tasks

名列前茅个是由于历史遗留问题保留使用。第二个被win10任务调度程序使用。在过去(即windows xp),任务 “.job”文件格式将放在”c: windows tasks”中。

如果在Windows 10上要将.job文件导入任务计划程序,则必须将旧的“.job“文件先复制到”c: windowstasks”中,并使用从旧系统复制的schtasks.exe和schedsvc.dll运行以下命令:

schtasks /change /TN”taskname” /RU username /RP password”

这将导致调用RPC“_SchRpcRegisterTask”,它由任务调度程序服务公开。触发这个错误,可以直接调用这个函数,而不是必须要从windows xp复制schtasks.exe。

它首先在当前用户权限下运行,但是当它遇到以下功能时:

int __stdcalltsched :: SetJobFileSecurityByName(LPCWSTRStringSecurityDescriptor,const unsigned __int16 *,int,const unsigned __int16 *)

它开始在NT AUTHORITY SYSTEM权限下运行

然后在c: windowssystem32tasks中创建的任务上调用SetSecurityInfo:

SandboxEscaper披露漏洞POC研究报告是什么2. 重现步骤

a. 将polarbear.exe,bear.job,schtasks.exe,schtasks.dll从“poc files”文件夹复制到测试VM

b. 运行polarbear.exe,传递本地非管理员帐户的用户名和密码。

要触发此漏洞首先需要拥有正确的用户名及密码。但是,这并非什么难事,有很多黑客工具可以做到这点.

Windows安装程序零日

1. 利用条件

在修复安装Windows程序时,如果可以劫持该进程以将文件写入Windows操作系统的未授权区域,则会有很短的时间间隔(竞争条件)。

这个msiexec / fa(修复安装)操作的漏洞可用于植入恶意软件并接管黑客最初只能访问低权限帐户的计算机。

2. 重现步骤

a. 运行polarbear.exe (确保 test.rbf 和 test.rbs 在同一目录下)

b. 打开命令行安装.MSI安装程序 必须是 c:windowsinsatller 目录下的,例如命令:”msiexec/fa c:windowsinstaller123123213.msi”

此漏洞复现也存在运气成分,需要安装时竞争条件恰到好处的触发,同时快速点击返回按钮。

IE11沙盒逃离零日

1. 利用条件

整个执行流程较为简单,通过com组件与ie通信执行硬编码”<html><body><script>alert(‘wtf’);</script></body></html>”, 执行在此之前需要将target.link写入到windows自带的“%USERPROFILE%Favorites“目录下

2. 重现步骤

a. InjectDll.exe PID TestDll.dll

此漏洞关键首先得成功获取IE11进程句柄并成功注入目标模块,从而执行恶意代码。显然这个零日不可被远程利用,应被视为影响较小的问题。

Windows AppX部署服务零日

1. 利用条件

这是Windows AppX部署服务(AppXSVC)不正确处理硬链接的方式中的一个错误。来自于CVE-2019-0841,

利用漏洞首先检查目标文件是否存在,如果存在,它将检查其权限。由于我们使用Microsoft Edge进行此攻击,因此它将终止Microsoft Edge以访问settings.dat文件。

在Microsoft Edge被杀后,它将检查“setting.dat”文件并将其删除,以便创建指向所请求的目标文件的硬链接。一旦创建了硬链接,Microsoft Edge再次启动以触发漏洞。最后检查是否确实为当前用户设置了“完全控制”权限。

2019.4月份微软推送补丁修复,但是仍可被利用。

2. 重现步骤

a. 运行polarbear.exe

b. 运行windowsappslpe.exe

此漏洞绕过微软修复的CVE-2019-0841补丁。通过提前创建硬链接而后执行漏洞补丁之前EXP进行攻击。

Windows AppX漏洞复现及详细原理剖析

我们现在直接运行可执行文件polarbear.exe并对其利用原理进行剖析:

a. 目的是在系统数据目录“%LOCALAPPDATA%”创建指定子目录\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\Microsoft.MicrosoftEdge_44.17763.1.0_neutral__8wekyb3d8bbwe

以供攻击利用

SandboxEscaper披露漏洞POC研究报告是什么

成功执行:

SandboxEscaper披露漏洞POC研究报告是什么

b. 使用NtOpenFile以对象属性为OBJ_CASE_INSENSITIVE打开文件

SandboxEscaper披露漏洞POC研究报告是什么

c. 使用ZwSetInformationFile设置文件属性需要将FILE_LINK_INFORMATION结构体ReplaceIfExists字段设置为TRUE并将 FILE_INFORMATION_CLASS传递值为FileLinkInformation

SandboxEscaper披露漏洞POC研究报告是什么

d. 最终调用已封装好的函数CreateNativeHardlink,好的传递需要创建的硬链接文件 L”\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\Microsoft.MicrosoftEdge_44.17763.1.0_neutral__8wekyb3d8bbwe\bear3.txt”以及

需要修改权限的文件”C:\Windows\win.ini”

SandboxEscaper披露漏洞POC研究报告是什么

此时我们便可以看到创建硬链接成功:

SandboxEscaper披露漏洞POC研究报告是什么

至此,整个绕过补丁的利用环境已构建完毕。 但我们仍需使用CVE-2019-0841来达到本地提权的攻击效果。

此漏洞主要围绕着DCAL引发的事件,简单地来说,如果Windows对象没有自主访问控制列表(DACL),则系统允许每个人完全访问它。如果对象具有DACL,则系统仅允许DACL中的访问控制条目(ACE)明确允许的访问。

让我们关注“settings.dat” 这是Microsoft Edge 的文件,也是此漏洞利用过程起到关键作用的文件,所有WindowsApps用户配置文件都存储在当前用户的AppData文件夹下:

SandboxEscaper披露漏洞POC研究报告是什么

Windows 10已经安装了许多默认应用程序,每个包都有一个settings.dat文件,如前所述。

NT AUTHORITYSYSTEM使用此文件来写入任何配置更改。启动Windows应用程序后,系统会使用OpLock操作(独占锁定)来阻止其他进程在应用程序运行时使用/访问该文件。

在我们启动Microsoft Edge的情况下,settings.dat文件会被进程以NT AUTHORITYSYSTEM打开,可以在下面的屏幕截图中看到:

SandboxEscaper披露漏洞POC研究报告是什么SandboxEscaper披露漏洞POC研究报告是什么

打开后,将按以下方式执行一些基本完整性检查:

a. 检查文件权限,如果文件权限不正确,使用正确的文件权限更正

b. 读取文件内容,如果内容已损坏,则删除该文件

c. 通过从“CWindowsSystem32settings.dat”复制设置模板文件来重新配置

d. 继续启动Windows相关应用程序

所以执行POC的程序至少会做到以下三点:

(1) 利用漏洞首先检查目标文件是否存在,如果存在,它将检查其权限。由于我们使用Microsoft Edge进行此攻击,因此它将终止Microsoft Edge以访问该settings.dat文件。

(2) 在Microsoft Edge被杀之后,它将检查“setting.dat”文件并将其删除,以便创建到所请求的目标文件的硬链接(win.ini)

(3) 一旦创建了硬链接,Microsoft Edge再次启动以触发漏洞。最后检查是否确实为当前用户设置了“完全控制”权限。

以下为执行结果示意图:

执行前:

SandboxEscaper披露漏洞POC研究报告是什么

执行后:

SandboxEscaper披露漏洞POC研究报告是什么

漏洞总结及安全建议

通过上述分析我们可以知道,以下是触发漏洞的最基本先决条件:

NT AUTHORITYSYSTEM应对目标文件具有“完全控制权”

低权限用户或Users组应具有“读取/执行”权限

安全建议:

下载并更新Windows系统补丁修复漏洞

不随意运行来历不明的程序

安装知名杀毒软件并保持最新版

感谢你的阅读,相信你对“SandboxEscaper披露漏洞POC研究报告是什么”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注亿速云网站!小编会继续为大家带来更好的文章!

文章标题:SandboxEscaper披露漏洞POC研究报告是什么,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/25378

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云亿速云认证作者
上一篇 2022年9月15日 下午11:15
下一篇 2022年9月15日 下午11:16

相关推荐

  • python标准库模块之json库怎么使用

    前言 json,全称为JavaScript Object Notation,也就是JavaScript对象标记,通过对象和数组的组合表示数据,虽然构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。 作用 主要用于将python对象编码为json格式输出或存储,以及将json格式对象解码为py…

    2022年9月21日
    43100
  • unlocker软件有什么作用

    unlocker是什么软件: 答:解锁软件 1、相信很多人都遇到过删除或移动文件时,出现提示被锁定无法删除的问题。 2、unlocker这款软件就是为这种情况设计的,能够一键帮助我们解锁这些文件。 3、这款软件在安装完成后,会自动进入右键菜单之中,方便用户快速使用。 4、我们只需要右键被锁定的文件,…

    2022年9月24日
    19600
  • 知识库软件有哪些

    这里整理了国内外较好用的10款知识库软件,适用对象从团队到个人,他们分别是:1、PingCode Wiki;2、Baklib;3、有道云笔记;4、印象笔记;5、RemNote;6、石墨文档;7、Notion;8、语雀;9、幕布;10、Obsidian。具体功能我们将在文章中介绍。 一、团队知识库软件…

    2022年3月18日
    4.7K00
  • Python如何用NumPy读取和保存点云数据

    前言 最近在学习点云处理的时候用到了Modelnet40数据集,该数据集总共有40个类别,每个样本的点云数据存放在一个TXT文件中,每行的前3个数据代表一个点的xyz坐标。我需要把TXT文件中的每个点读取出来,然后用Open3D进行显示。怎么把数据从TXT文件中读取出来呢?NumPy提供了一个功能非…

    2022年9月2日
    50300
  • windows中c盘怎么扩大

    c盘可以扩大容量。方法:1、利用“win键+X键”选择“磁盘管理”,删除C盘右侧的分区,使其变为未分配分区;2、右键c盘点击“扩展卷”,系统会自动计算出最大扩容量,没特殊扩展需求点击下一步,完成即可。 本教程操作环境:windows10系统、DELL G3电脑。 c盘可以扩大吗 C盘可以扩容,只需要…

    2022年9月6日
    19100
  • html和xhtml有哪些区别

    HTML超文本标记语言,是一种基于标记的网页设计语言,专门用来设计和编辑网页。XHTML是为了适应XML而重新改造的HTML,也是一种标记语言,它可以看作是从HTML到XML的过渡;XHTML要求在网页中出现的任何元素都应该被标记出来。 什么是HTML HTML 英文全称是 Hyper Text M…

    2022年9月16日
    30900
  • mysql适合分表的情况有哪些

    mysql中适合分表的情况:1、数据量过大,正常运维影响业务访问时,例如对数据库进行备份需要大量的磁盘IO和网络IO、对一个表进行DDL修改会锁住全表、对大表进行访问与更新出现锁等待;2、随着业务发展,需要对某些字段垂直拆分;3、单表中的数据量快速增长,当性能接近瓶颈时,就需要考虑水平切分。 本教程…

    2022年9月20日
    23800
  • Redis常见分布锁的原理是什么和怎么实现

    常见的分布式锁的实现如下图: 基于数据库 悲观锁 悲观锁(Pessimistic Lock)顾名思义为很悲观的锁,每次在拿数据的时候都会上锁。这样别人想拿数据就被挡住,直到悲观锁被释放,悲观锁中的共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程,但是在效率方面,处理加锁的机制…

    2022年8月30日
    20600
  • MySQL乐观锁和悲观锁如何实现

    锁分类 MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行锁,在一定程度上也支持表锁。按照行为可以分为共享锁(读锁)、排他锁(写锁)和意向锁。按照思想分为乐观锁和悲观锁。 表结构 下面的SQL语句是表的结构: CREATE TABLE `…

    2022年9月8日
    20500
  • Input标签自动校验功能去除怎么实现

    自动校验 注:以下输入框包含input、textarea 事情是这样的,上个星期,接到了一个需求,要求去除掉项目中的输入框的自动拼写检查功能,也就是下图出现的红线,这个检查是浏览器自带的 解决方法 其实是有解决方法的,而且也不难,很简单,只需要在输入框标签上加上一个属性spellcheck=fals…

    2022年9月20日
    37200
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部