windows 任意文件读取漏洞复现

在复现windows 的最新0day(任意用户下,可以读取任意文件)之前,先简单介绍下windows 下用户管理需要的基本命令。

文章首发公众号,欢迎大家关注,并进技术交流群(363034250),共同进步哈。

windows 用户管理基本命令

查看用户

net user

查看所有用户:

查看用户权限

net user xxx

该命令可以查看用户的权限,如下图,在本地组成员处可以看到该用户的权限:

users组 为普通用户权限;

administrator组 为系统管理员权限,可以修改其他用户权限,比如将users组中成员添加到administrator 中。

添加用户

net user username password /add

默认创建的是user组权限用户。

提升用户权限

net localgroup administrators username /add

删除用户

net user username /delete

windows中最高权限用户是,真正拥有“完全访问权”的“SYSTEM”成员,关于用户权限问题,可参考该博客


任意文件读取漏洞背景介绍

该漏洞是国外一个叫做SandboxEscaper的安全研究人员发现的,poc公布于其博客(目前其博客访问设置了权限)和github中,该漏洞位于MsiAdvertiseProduct函数中。该函数具备生产产品推送脚本或者将产品信息通告给计算机的功能。常用于安装程序向注册表写入一些产品信息以及快捷方式时。

调用这个函数可以导致安装程序服务进行任意文件的复制操作,而攻击者可以控制这个调用过程。尽管在这个函数的调用过程中做了一些检查,但是可以通过TOCTOU来绕过这个防御。

TOCTOU: 文件竞态访问条件攻击(time of check time of use)一个程序先通过 access 判断用户是否有权限访问一个文件,然后通过 open 打开该文件。这样,攻击者可以在时间间隙中间改变这个文件。 攻击者可以给进程发送信号使进程阻塞。

原文描述如下:

The bug is in “MsiAdvertiseProduct”

Calling this function will result in a file copy by the installer service.

This will copy an arbitrary file that we can control with the first parameter into c:\windows\installer … a check gets done while impersonating, but using junctions there is still a TOCTOU .. meaning we can get it to copy any file as SYSTEM, and the destination file will always be readable. This results an in arbitrary file read vulnerability.

To reproduce:

Make sure to copy both readfile.exe and “file” (found under folder PoC-Files)… and put them in the same directory.

Useage: readfile.exe targetfile (where targetfile is the file to read, IE: “readfile.exe c:\users\test\desktop\desktop.ini”)

Run on 2 cores or more, this should work on one core with some modifications.. since you should be able to hit the timing with oplocks too (but I'm lazy).. you should be able to see something like this if it works: https://www.youtube.com/watch?v=x4P2H64GI1o

The easiest way to confirm the bug is to make two local accounts and read the desktop.ini of the other account.

Even without an enumeration vector, this is still bad news, because a lot of document software, like office, will actually keep files in static locations that contain the full path and filesnames of recently opened documents.. thus by reading files like this, you can get filenames of documents created by other users.. the filesystem is a spiderweb and references to user created files can be found everywhere.. so not having an enumeration bug is not that big of a deal.

If shadow copies are enabled you can obviously steal the SAM and SYSTEM hive I assume...

Maybe there's some other usecases.. but I'm not very smart, so I don't know.

复现

测试环境

  • windows 7

  • test用户为administrator权限

  • striveben为users(普通用户)权限

首先使用test用户创建一个test.txt文件,如下图:

切换到striveben用户,这时候去访问该test文件为无权限,如下图:

使用任意文件读写的poc,可以读取到在test用户下创建的test.txt文件内容,如下图:

该poc已在Windows 7、10、server 2008 r2测试成功

有了这个poc,想必在某些场合会比mimikatz方便好用。

 

祝大家新年快乐,2019 事事顺利.

<think>好的,我现在需要处理用户关于泛微E-Cology系统中getE9DevelopAllNameValue2接口任意文件读取漏洞的问题。首先,我需要回顾用户提供的引用内容,确保准确理解漏洞的细节。 用户提供了三个引用,其中引用[1]和[2]具体描述了漏洞复现方法和路径,而引用[3]列出了多个泛微系统的其他漏洞。用户主要关心的是getE9DevelopAllNameValue2接口的漏洞原因、利用方式以及修复方法。 首先,漏洞的原因。根据引用[1]和[2],问题出在接口未对输入的fileName参数进行严格的路径校验,导致攻击者可以通过路径遍历(如使用../)读取系统敏感文件。这说明开发时可能存在输入验证不严或未实施白名单机制。 接下来,利用方式。引用[2]给出了具体的URL示例,攻击者通过构造fileName参数访问配置文件,如weaver.properties,这通常包含数据库连接信息。因此,攻击者可以未授权访问该接口,利用路径遍历读取任意文件。 修复方案方面,需要从输入验证、权限控制和补丁更新入手。例如,对fileName参数进行规范化处理,限制可访问的目录,或者升级到官方修复版本。引用[3]提到多个泛微漏洞,说明厂商可能已有相关补丁,需建议用户及时更新。 另外,用户可能还关心如何检测是否存在该漏洞,可以建议检查接口是否存在未授权访问和路径遍历的可能。同时,提醒用户检查系统日志是否有异常文件读取请求。 需要确保回答结构清晰,分点说明原因、利用方式和修复方法,并引用提供的资料。同时,生成相关问题时要围绕漏洞分析、检测和修复展开,避免偏离主题。</think>### 泛微getE9DevelopAllNameValue2接口任意文件读取漏洞分析 #### 一、漏洞原因 1. **路径遍历漏洞**:接口`/api/portalTsLogin/utils/getE9DevelopAllNameValue2`未对`fileName`参数进行严格的路径校验,攻击者通过`../`实现目录穿越,例如构造`fileName=portaldev_/../weaver.properties`可读取系统配置文件[^2]。 2. **权限控制缺失**:接口未实施身份验证机制,允许未授权访问敏感文件(如数据库配置、系统配置文件)[^1]。 3. **输入过滤不足**:未对用户输入的文件名进行规范化处理或白名单限制,导致任意文件读取风险[^2]。 #### 二、漏洞利用方式 1. **直接构造恶意请求**: 攻击者发送HTTP请求,通过路径穿越访问目标文件: ```http GET /api/portalTsLogin/utils/getE9DevelopAllNameValue2?fileName=portaldev_/../../WEB-INF/classes/database.properties HTTP/1.1 Host: [目标域名/IP] ``` 可获取数据库连接信息(如账号、密码)。 2. **读取系统关键文件**: 例如`/etc/passwd`(Linux)或`C:\Windows\win.ini`(Windows),进一步探测服务器环境[^3]。 #### 三、修复方案 1. **输入验证与过滤** - 对`fileName`参数进行规范化处理,禁止包含`../`等路径穿越字符。 - 使用白名单机制,仅允许访问指定目录下的合法文件。 2. **权限加固** - 对接口增加身份验证,限制未授权访问。 - 遵循最小权限原则,限制应用服务器的文件读取权限。 3. **官方补丁升级** - 升级至泛微E-Cology官方修复版本(参考泛微安全公告或联系技术支持)。 4. **安全监测与日志审计** - 监控`/api/portalTsLogin/utils/getE9DevelopAllNameValue2`的异常访问日志。 - 部署WAF规则拦截包含`../`的恶意请求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StriveBen

写字不易,给点动力吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值