看我如何挖到 Dropbox Windows 版的这个 0day(微补丁发布)
聚焦源代码安全,网罗国内外最新资讯!
编译:奇安信代码卫士团队
博主 Decoder 又分享了一篇如何挖到 Dropbox 0day 漏洞的文章。如下是原文翻译:
又是硬链接!是的!我们可以利用很多机会,结合不正确的权限设置和很多软件中的硬链接来提升权限。
在本文中,我将展示如何使用 DropBoxUpdater 服务作为普通的 Windows 用户获取系统权限。和往常一样,这个“漏洞”是我和“业务搭档”@padovah4ck一起发现并利用的。
注意:我将不会发布任何源代码,我的目的是分享知识而非工具。
DropBoxUpdater是 Dropbox Client 软件套件的一部分,该软件制造商表示它用于将客户端维护至最新状态:
该更新器以一种服务和2个调度任务的形式进行安装,实话说我也没搞懂为何要这么做……不过我们继续。需要记住的是,在标准的安装过程中,它们以系统身份运行,其中一个dropboxupdate 任务由任务调度程序每隔一小时运行。
每次触发 dropboxupdate 时,它都会在如下目录中写入日志文件:
c:\ProgramData\Dropbox\Update\Log
权限如下:
如你所见,用户可在该目录中增加文件。
日志文件的格式较为特殊:
而文件命名约定为:
DropboxUpdate.log-<YYYY>-<MM>-<DD>-<HH>-<MM>-<SEC>-<MILLISEC>-<PID>
用户可覆写并删除这些文件:
更有意思的是系统在这些文件上的 SetSecurity 调用:
是不是有点眼熟?如果你曾阅读过我之前的文章,就会知道可通过“硬链接”进行利用。
(上篇文章即一周前推送的《如何利用Printconfig dll:从 iPhone 到 NT AUTHORITY\SYSTEM 的真实案例》)
但这里有一个问题,我们必须“猜测”日志文件名称,它由确切的时间(包括毫秒)和更新器进程的 PID组成。
听起来好像很有挑战性!
经过测试后,我们提出如下解决方案:
确保“DropBoxUpdate.exe”进程未运行(作为标准用户:c:\>tasklist | find /I “dropboxupdate”)
通过将如下DLL 上的机会排它锁在启动时拦截DropBoxUpdate.exe 进程:
C:\ProgramFiles(x86)\Dropbox\Update\1.3.241.1\goopdate.dll
该进程将挂起,而由用户定义的回调函数将被触发
找到dropboxupdate 进程的PID。
通过此前提到的命名约定创建999个链接,执行“硬链接喷射”,把当前时间(hhmmss) +10秒(timeA) 作为起始点。
所有这些链接都指向我们想要拥有的目标文件。我们可以为一个文件设置的最大的硬链接数量为1024个。
等待,直到当前时间(hhmmss) 等于timeA。
释放锁定。
如果一切运行正常,那么我们应该匹配999毫秒范围内的正确的文件名称。
效果怎么样?我们必须进行测试,通常license.rtf 位于system32 文件夹中。为进行测试,你可以直接以管理员权限调用调度任务,而不必等到下一次为期一小时的运行期间。
有效果!现在你可以覆写系统具有完整权限的任意文件并获取最高权限了!
不过,我们可以再进一步……我们可以只通过 Dropbox Client 软件就获取系统 shell 吗?
是的,当然可以!还记得第二个调度任务吗?
这个任务以系统权限运行,并且可被任意用户登录时触发。在测试中我们注意到在登录时,DropboxCrashHandler.exe可被调用(只有当其它会话中未运行其它dropboxupdate 进程时):
那我们的想法是什么?就是将DropboxCrashHandler.exe 设置为目标文件,启动exploit,用“恶意的”可执行文件覆写该文件,登出,再次登录,这样应该就能够触发可执行文件了!
可在如下地址查看可运行的POC。我想应该还有其它提权路径,请自行思考吧!
https://www.youtube.com/watch?v=kGAtRvm8KCQ&feature=youtu.be
边界条件
必须以“标准的”方式以管理员权限安装Dropbox。
我们通过最新的Windows Dropbox Client 发布版本(当时是87.4.138)进行了测试。
披露时间轴
9月18日,我们将问题告知 Dropbox。他们答复称已发现该问题的存在(但并非通过这些技术和完整的提升路径),表示将于10月末之前修复。如今90天的期限已过,于是我们发布本文。
可能的解决方案
在等待新版本(希望是修复版本)之时,用户可以删除Log文件夹上的“User”的“Createfiles” / write data”权限和“Create folders/append data”权限,应该没什么不好的情况发生。
旁注
通用的硬链接“滥用”将不再适用于未来的 Windows版本。在最新的“Insider”预览版本中,微软已经增加了一些补充检查,因此如果你没有目标文件的写入权限,那么当你尝试创建硬链接时会收到拒绝访问的错误消息提示。
漏洞补丁
Dropbox 尚未发布任何补丁。
不过0patch 平台的CEO Mitja Kolsek 表示,“我们在分析该问题后认为最可靠的解决方案是从DropBoxUpdater 中去除日志写入代码。这样做似乎既不影响DropBox 的功能也不影响更新进程,它只会让日志文件为空,可能导致DropBox 难以解决用户计算机上的故障问题(很显然不易受攻击比这个问题更重要)。”
0patch 平台已推出临时短期补丁,不过仅解决了易受攻击的部分,适用于运行系统时的内存中,因此无需重启机器即可打上补丁。不过要使用这个免费的微补丁,必须先安装并注册0patchAgent。
推荐阅读
如何利用Printconfig dll:从 iPhone 到 NT AUTHORITY\SYSTEM 的真实案例
原文链接
https://decoder.cloud/2019/12/18/from-dropboxupdater-to-nt-authoritysystem/
https://www.bleepingcomputer.com/news/security/dropbox-zero-day-vulnerability-gets-temporary-fix/
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
点个“在看”,bounty 多多~
看我如何挖到 Dropbox Windows 版的这个 0day(微补丁发布)相关推荐
- 严重的 Windows DNS RCE漏洞 SIGRed PoC 已现身,微补丁发布
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 前几天,Windows DNS 服务器被曝一个严重的 RCE 漏洞 SIGRed,目前不具有 ESU(扩展安全更新)许可的服务器已收到 ...
- Xamarin.Forms教程下载安装Windows版的Xamarin开发工具
Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...
- nat123软件windows版
转自:http://www.nat123.com/pages_8_565.jsp 同时支持内网和公网IP.只要可以上网,即可将所有应用发布外网. >>nat123客户端windows版本软 ...
- 微信windows版_刚刚微信内测更新!可以批量管理好友,太方便了
微信清理好友一直是一个世纪难题,不知道大家有没有跟小雷一样的烦恼,每次清理好友都要一个个点,着实太麻烦,特别是像小雷我这种"交际王",微信四五千好友,每次清理都要花大半天的时间.想 ...
- 苹果或推出Windows版Safari浏览器;微软正“取下”Chromium版Edge浏览器的Beta标签;亚马逊申请新专利……...
关注并标星星CSDN云计算 速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周两次,打卡即read 更快.更全了解泛云圈精彩news go ...
- C语言实现2048游戏(Windows版)
本文是Windows版的C语言实现2048小游戏,嵌入式版的请移步 C语言实现2048小游戏-粤嵌GE6818嵌入式系统实训 C语言实现电子音乐相册-粤嵌GE6818嵌入式系统实训 一.游戏介绍 所谓 ...
- edge安装包_Chromium版Edge浏览器将支持多平台,Windows版支持IE模式
在昨天的微软西雅图Build 2019开发者大会上,微软表示Chromium版Edge浏览器不止会登录Windows系统(包括Win7),还会登录安卓.iOS和MacOS系统,此外会带来包括更好的安全 ...
- 炸!微信Windows版可以刷朋友圈了
本文转载自不正经程序员 3月11日,微信Mac版悄悄更新了两个功能:刷朋友圈和看视频号,这让微信WIndows版的用户也开始期待刷朋友圈的功能了. 但是很长一段时间,微信Windows用户等待的电脑刷 ...
- 计算机上的mac是什么意思啊,Mac版是什么意思,Windows版是什么意思?
Mac版是什么意思,Windows版是什么意思?这方面的内容,除了只能显出笔者的弱智之外!是不是纯属多余?!来看下下面的图片,一般在下载站经常会见到,软件下载界面会提示:For Windows或者Fo ...
最新文章
- js base64编码解码 btoa atob 函数简介
- 教育部:对于要求家长批改作业,发现一起严处一起
- python web后端和vue哪个难_全栈开发用纯后端模板与Vue+后端框架组合哪个好?
- MFC小笔记:父子窗口传递消息
- typescript接口使用
- activimq java集成_Java消息队列-Spring整合ActiveMq
- java创建xml文件 编码_Mybatis Generator 1.4.0 通过java编码和xml文件配置
- sodp软件如何导入多个工作面信息_平方英尺和面积计算软件:Metes and Bounds for Mac...
- 快速排序C语言递归代码实现
- 详解AVL树(平衡二叉树)
- 芳菲也迷人,玩转北京大周边
- python中数组常用的统计方法
- 写好的java项目如何部署在公司服务器上,并能让局域网内其他同事访问到,以及遇到的坑!
- 抖音怎么知道自己上热门 手机视频md5值修改
- 渲染测试软件 d15,Apophysis 7X V15D详细图文使用教程
- C2678 二进制“<“:没有找到接受“ const_Ty“类型的左操作数的运算符
- AVPlayerItem的播放时间
- 计算机bios设置系统安装教程,z590主板装win7系统及bios设置教程(支持11代cpu驱动)...
- 数据库:一条sql语句查询每门课程都大于80分的学生姓名
- [思维模式-13]:《复盘》-1- “知”篇 - 认识复盘