Dropbox 0day权限提升漏洞
导语:本文将分析如何利用DropBoxUpdater服务来从一个简单的Windows用户实现到SYSTEM权限的提升。
漏洞分析
DropBoxUpdater是Dropbox Client 软件套件的一部分,根据软件厂商的说明,该软件的作用是进行客户端更新,保持客户端是最新版本:
Updater是以服务和2个计划任务的形式安装的,但不清楚为什么这样安装。但一般情况下是以SYSTEM权限运行的,其中一个dropboxupdate任务是有计划任务每小时运行1次。
每当dropboxupdate被触发,就会尝试在以下目录中写入log文件:
c:\ProgramData\Dropbox\Update\Log
权限如下所示:
从上图可以看出,用户有在目录中添加文件的权限。
Log文件有一个特殊的格式:
文件命名规则为:
DropboxUpdate.log-
用户可以覆写和删除这些文件:
有意思的是SYSTEM在这些文件上的一个SetSecurity调用:
这是可以通过硬链接来利用的。
但是有一个很大的问题就是需要猜测logfile名,也就是updater进程的精确时间和PID
看似很难,研究人员经过测试发现了一个解决的办法,那就是:
· 确保没有进程DropBoxUpdate.exe正在运行,对标准用户来说是:c:\>tasklist | find /I “dropboxupdate”
· 可以通过在DLL C:\Program Files(x86)\Dropbox\Update\1.3.241.1\goopdate.dll中设置来拦截DropBoxUdate.exe进程
· 进程会暂停,用户定义的回调函数不会被触发
· 找出dropboxupdate进程的PID
· 根据命名规则创建999个链接,并从当前时间(hhmmss)+10s(timeA)开始执行硬链接喷射(hardlink spraying)。
· 这些文件链接都指向目的文件。因此可能设置的文件的硬链接的最大值为1024。
· 等待当前时间等于timeA
· 释放oplock
· 如果一切都工作正常的话,可以在999ms的范围内匹配正确的文件名
研究人员用System32文件夹中的文件license.rtf进行了测试。测试中可以直接用admin权限来调用计划任务,无需等到运行1小时结束。
测试表明可以覆写任何文件,也就获取了系统中最高的权限。
这还只是第一个计划任务,还有第二个……
该任务是以SYSTEM权限运行的,也可以由任何登陆的用户来触发。在测试中研究人员发现在登陆过程中,DropboxCrashHandler.exe也会被调用:
研究人员计划将 DropboxCrashHandler.exe作为目标文件,发起漏洞利用,用恶意可执行文件来覆写该文件,登出,然后再次登陆,恶意可执行文件就可以被触发了。POC视频参见:https://www.youtube.com/watch?v=kGAtRvm8KCQ&feature=youtu.be
时间轴
研究人员发现该漏洞后在9月18日就将漏洞提交给了Dropbox,Dropbox回应称也发现了该漏洞,但没有完全掌握该技术和完整的提权路径,并称将在10月底修复该漏洞。截止目前过去了90天,Dropbox还没有修复该漏洞,因此研究人员将该漏洞公开了。
应对措施
研究人员建议用户移除Log文件夹的Users的Create files” / write data” 和“Create folders /append data”权限。
发表评论