聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

博主 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(微补丁发布)相关推荐

  1. 严重的 Windows DNS RCE漏洞 SIGRed PoC 已现身,微补丁发布

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 前几天,Windows DNS 服务器被曝一个严重的 RCE 漏洞 SIGRed,目前不具有 ESU(扩展安全更新)许可的服务器已收到 ...

  2. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

    Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...

  3. nat123软件windows版

    转自:http://www.nat123.com/pages_8_565.jsp 同时支持内网和公网IP.只要可以上网,即可将所有应用发布外网. >>nat123客户端windows版本软 ...

  4. 微信windows版_刚刚微信内测更新!可以批量管理好友,太方便了

    微信清理好友一直是一个世纪难题,不知道大家有没有跟小雷一样的烦恼,每次清理好友都要一个个点,着实太麻烦,特别是像小雷我这种"交际王",微信四五千好友,每次清理都要花大半天的时间.想 ...

  5. 苹果或推出Windows版Safari浏览器;微软正“取下”Chromium版Edge浏览器的Beta标签;亚马逊申请新专利……...

    关注并标星星CSDN云计算 速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周两次,打卡即read   更快.更全了解泛云圈精彩news   go ...

  6. C语言实现2048游戏(Windows版)

    本文是Windows版的C语言实现2048小游戏,嵌入式版的请移步 C语言实现2048小游戏-粤嵌GE6818嵌入式系统实训 C语言实现电子音乐相册-粤嵌GE6818嵌入式系统实训 一.游戏介绍 所谓 ...

  7. edge安装包_Chromium版Edge浏览器将支持多平台,Windows版支持IE模式

    在昨天的微软西雅图Build 2019开发者大会上,微软表示Chromium版Edge浏览器不止会登录Windows系统(包括Win7),还会登录安卓.iOS和MacOS系统,此外会带来包括更好的安全 ...

  8. 炸!微信Windows版可以刷朋友圈了

    本文转载自不正经程序员 3月11日,微信Mac版悄悄更新了两个功能:刷朋友圈和看视频号,这让微信WIndows版的用户也开始期待刷朋友圈的功能了. 但是很长一段时间,微信Windows用户等待的电脑刷 ...

  9. 计算机上的mac是什么意思啊,Mac版是什么意思,Windows版是什么意思?

    Mac版是什么意思,Windows版是什么意思?这方面的内容,除了只能显出笔者的弱智之外!是不是纯属多余?!来看下下面的图片,一般在下载站经常会见到,软件下载界面会提示:For Windows或者Fo ...

最新文章

  1. js base64编码解码 btoa atob 函数简介
  2. 教育部:对于要求家长批改作业,发现一起严处一起
  3. python web后端和vue哪个难_全栈开发用纯后端模板与Vue+后端框架组合哪个好?
  4. MFC小笔记:父子窗口传递消息
  5. typescript接口使用
  6. activimq java集成_Java消息队列-Spring整合ActiveMq
  7. java创建xml文件 编码_Mybatis Generator 1.4.0 通过java编码和xml文件配置
  8. sodp软件如何导入多个工作面信息_平方英尺和面积计算软件:Metes and Bounds for Mac...
  9. 快速排序C语言递归代码实现
  10. 详解AVL树(平衡二叉树)
  11. 芳菲也迷人,玩转北京大周边
  12. python中数组常用的统计方法
  13. 写好的java项目如何部署在公司服务器上,并能让局域网内其他同事访问到,以及遇到的坑!
  14. 抖音怎么知道自己上热门 手机视频md5值修改
  15. 渲染测试软件 d15,Apophysis 7X V15D详细图文使用教程
  16. C2678 二进制“<“:没有找到接受“ const_Ty“类型的左操作数的运算符
  17. AVPlayerItem的播放时间
  18. 计算机bios设置系统安装教程,z590主板装win7系统及bios设置教程(支持11代cpu驱动)...
  19. 数据库:一条sql语句查询每门课程都大于80分的学生姓名
  20. [思维模式-13]:《复盘》-1- “知”篇 - 认识复盘

热门文章

  1. ASP.NET MVC3 系列教程 - 目录
  2. 高级恶意软件技术新挑战——突破主动防御
  3. 华为交换机S5700系列配置通过STelnet登录设备示例
  4. 二维(字符)数组输入(转载)
  5. Nginx+Keepalived实现站点高可用
  6. PHP对象和接口抽象类注意事项
  7. java读取某个文件夹下的所有文件
  8. 谨记这10条,就能给别人留下好印象?
  9. Oracle Tuning ( instance 级别 ) 01
  10. 在 Android* 平台上设置原生 OpenGL ES*