未加星标

Windows 0day任意文件读取漏洞POC分析

字体大小 | |
[系统(windows) 所属分类 系统(windows) | 发布者 店小二04 | 时间 2019 | 作者 红领巾 ] 0人收藏点击收藏
漏洞名称

windows任意文件读取

漏洞简介

12月20日,国外安全研究员 SandboxEscaper又一次在推特上公布了新的Windows 0 day漏洞细节及PoC,点击查看 详情 。这是2018年8月开始该研究员公布的第三个windows 0 day漏洞。此次披露的漏洞可造成任意文件读取。该漏洞可允许低权限用户或恶意程序读取目标Windows主机上任意文件的内容,但不可对文件进行写入操作。从放出的POC代码看,在微软官方补丁发布之前,所有windows用户都将受此漏洞影响。

漏洞本质

Time of Check Versus Time of Use (TOCTOU)

TOCTOU原理

该漏洞主要原理为应用运行的过程中,在某个操作之前,比如读文件,都会检查一下文件是否存在与是否具有权限,在检查与真正的读取之间的间隔就是一个可以被利用的竞争条件(Race Condition),在这个间隔中我们可以将需要越权读取的文件替换成自己的文件,使其检查过程通过,这样就可以越权读取其他用户的文件。

漏洞原因

当调用MsiAdvertiseProduct这个函数时会导致windows安装服务复制一个文件,在复制文件时我们可以通过TOCTOU的攻击方式控制传进MsiAdvertiseProductA的第一个参数,将该参数在检查通过后被替换成我们实际需要读取的文件,达到越权的效果

漏洞POC使用

看不到?点 这里

POC源码简要分析

该漏洞已经存在POC,作者SandboxEscaper开源在github中 https://github.com/SandboxEscaper/randomrepo/blob/master/Readfile.rar ,不过源码部分没有注释,为了方便阅读与理解,我这边给出了部分注释。并对主要代码做如下分析。

1、首先从stdafx.h预编译头文件中一直跟进targetver.h,再跟进SDKDDKVer.h头文件,该poc可应用于如下windows版本,几乎可以应用与所有:


Windows 0day任意文件读取漏洞POC分析

其中main函数获取用户输入的参数并解析,取出需要读取的文件路径(targetfile)与文件名(filename)备用


Windows 0day任意文件读取漏洞POC分析

2、调用MsiSetInternalUI进行静默安装,在安装前需要获取文件file(产品包)的路径,用于MsiAdvertiseProductA进行广告推送,在获取路径与启动中间,调用了函数runme(),该函数即为TOCTOU攻击的实现过程


Windows 0day任意文件读取漏洞POC分析

3、查看runme()函数,该函数创建了一个自定义的线程MyThreadFunction


Windows 0day任意文件读取漏洞POC分析

4、查看线程MyThreadFunction函数,首先获取c:\windows\installer的句柄hDir,然后又读取了我们的目标文件targetfile,用于下面的替换


Windows 0day任意文件读取漏洞POC分析

5、然后便是循环判断该句柄hFile有没有被调用,假如被调用了,就说明MsiAdvertiseProductA就开始读取上面我们指定的file位置了,并且已经检查通过


Windows 0day任意文件读取漏洞POC分析

这时便将其路径替换为我们需要读取文件的路径:


Windows 0day任意文件读取漏洞POC分析

最后再在终端将读到的文件内容输出,并设置succeed参数为true,然后退出main函数


Windows 0day任意文件读取漏洞POC分析

从POC中可以看出文件替换的时候使用了软链接的技术,POC运行时会在系统C盘目录下临时创建blah2文件夹与链接到blah2的快捷方式blah,最后POC运行结束又删除了这两个文件。


Windows 0day任意文件读取漏洞POC分析

由于该漏洞利用的是TOCTOU这种方式,在POC运行时会不停的创建线程,故系统CPU占用会达到100%


Windows 0day任意文件读取漏洞POC分析

本文系统(windows)相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术

代码区博客精选文章
分页:12
转载请注明
本文标题:Windows 0day任意文件读取漏洞POC分析
本站链接:https://www.codesec.net/view/627843.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(windows) | 评论(0) | 阅读(81)