这期内容当中小编将会给大家带来有关如何进行GeForce ExperienceOS命令注入漏洞分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
漏洞概述
在这篇文章中,我们会跟大家介绍这个NVDIA GeForce Experience(GFE)中的远程命令执行漏洞-CVE-2019-5678。版本号在3.19之前的GFE都会受到该漏洞的影响,攻击者可以通过诱骗目标用户访问钓鱼网站来利用该漏洞。
NVIDIA GFE
NVIDIA官方网站将GeForce Experience描述为“捕获和共享视频、屏幕截图和与朋友的实时流,并使您的驱动程序保持最新并优化您的游戏设置”的一种方式,它是与Geforce产品一起安装以给用户提供更多丰富功能的应用程序。
漏洞的发现
MWR实验室在其发布的安全报告中指出,GFE在运行时会开启一台本地API服务器,并允许控制GFE的各个功能。当你在GFE的GUI接口中修改一个设置之后,程序便会调用这个本地API。接下来,我们需要研究一下这个API服务器的运行机制,看看有没有什么有趣的功能。由于GFE启动的服务器为NodeJS Express,因此我们可以在“C:/Program Files (x86)/NVIDIA Corporation/NvNode”中找到大量相关的JavaScript源文件。
为了向服务器发出有效的请求,这里需要一个包含了随机令牌的自定义HTTP头,这个随机令牌会在程序启动的时候生成,并存储在“%LOCALAPPDATA%/NVIDIACorporation/NvNode/nodejs.json”中。文件名nodejis.json是静态命名,存储位置不会改变,因此定位这个文件会非常容易,文件内容大致如下:
分析认证Header
首先,我们需要弄清楚是否可以绕过身份验证机制来向API发送未经身份验证的有效请求。查看index.js文件的第185行代码,我们发现这里所谓的header检测,只是通过对比文件中包含的密钥值和自定义安全Header值来实现的。如果对比失败,则会返回403错误响应。
暂时我还没找到绕过它的方法,因为这种验证机制比较直接。不过值得注意的是,CORS的使用方法。在第181行代码,“Access-Control-Allow-Origin”头在所有的请求中都会被设置为“*”,这也就意味着如果我们能够以某种方式获取到秘密令牌,那么攻击者就可以控制服务器能接收的请求来源了,并且直接向服务器发送有效请求。此外,攻击者还可以使用XHR请求以及自定义安全Header来发送请求。
API测试
如果想要成功向API发送请求(例如执行任意代码),我们就可以充分利用和控制这些API了,通过grep命令搜索所有源文件中关于“exec”的代码,我们找到了NvAutoDownload.js这个文件:
大家可以看到,节点“/gfeupdate/autoGFEInstall/”可以接收一个POST请求,Content-Type会被设置为“text/*”,并最终向请求body中注入任意文本内容,而childProc函数会将这些命令以操作系统命令的形式执行:
上述请求可以成功转型calc.exe,这都不是什么问题,因为攻击者只需要知道文件中的秘密令牌即可。所以,下一步就是要找出一种方法来读取文件中包含的秘密令牌值。
漏洞利用
如前所述,由于这里的CORS策略的实现方式,即允许接收任何来源的请求,攻击者就可以通过浏览器来执行攻击了。当然了,攻击的前提是知道秘密令牌值,而唯一的方法就是欺骗用户上传包含了秘密令牌值的文件。由于这个文件使用的是静态路径以及静态文件名,所以攻击者可以轻松利用浏览器来实现这一点,而且只需要用户按几个键就可以实现命令注入的。
漏洞利用详细步骤
在Chrome浏览器中,可以直接通过快捷键来将任意内容复制到剪贴板中,但是在Firefox中,就需要额外的鼠标点击操作了。最终,针对Chrome的漏洞利用方式需要按下组合键:“CTRL+V+Enter”。
具体步骤如下:
1、“CTRL”-将包含秘密值的文件路径拷贝到剪贴板,“%LOCALAPPDATA%/NVIDIACorporation/NvNode/nodejs.json”,它还会打开文件输入窗口,并上传文件。
2、“V”-剪贴板的值会被拷贝到文件输入窗口中。
3、“Enter”-上传nodejs.json文件之后,页面将会读取文件中的内容。
4、页面会通过一个XHR请求向GFE API发送请求,并使用文件中读取到的内容来在目标主机中执行任意命令。
漏洞利用的过程确实需要一些用户交互,但是需要进行的操作非常少。目前,NVIDIA已经在最新版本的GFE v3.19中修复了这个问题,因此我们强烈建议广大用户尽快安装最新版本的GFE。当然了,如果你不需要使用GFE的话,最好还是把它卸载掉,以减少额外的攻击面。
上述就是小编为大家分享的如何进行GeForce ExperienceOS命令注入漏洞分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/221732.html