近日,CyberArk安全研究员Eviatar Gerzi发现Windows终端和基于Chrome的网页浏览器上存在多个高危DoS(拒绝服务)漏洞。
Gerzi在2003年的一个通过修改窗口标题执行代码的旧安全公告(https://marc.info/?l=bugtraq&m=104612710031920&q=p3)尝试了各种潜在的滥用途径,并发现了一种在PuTTY上诱导快速窗口标题更改的方法。
这种非典型的攻击方式导致测试设备进入一种被称为“白屏死机”的状态,除了鼠标光标外,屏幕上所有的应用程序界面都冻结了(失去响应)。
研究人员对存在类似漏洞的本地应用程序的实施攻击后,导致程序调用过多的操作系统内核,系统立即进入白屏死机状态。
被滥用的函数是“SetWindowText”,可用于更改指定窗口标题栏的文本。
需要注意的是,这个简单的攻击技巧可以导致大量“无辜”应用程序也一并被拖入白屏死机状态,而摆脱白屏死机状态的唯一方法是重新启动计算机。
研究人员还发现,“SetWindowText”并不是唯一导致白屏死机的手段,在其中一个案例中,研究人员测试了MobaXterm终端,令我惊讶的是它没有使用SetWindowText函数来更改窗口标题,而是使用了一个名为GdipDrawString的函数。
在这种情况下,有趣的是GdipDrawString并没有像SetWindowText那样导致整个计算机失去响应。它只影响了最终崩溃的应用程序。
Gerzi确认以下Windows终端受到白屏死机漏洞的影响:
主流浏览器未能幸免
意识到几乎所有的GUI图形界面应用程序都使用SetWindowText函数,研究人员尝试了针对Chrome等流行的网络浏览器的攻击。
研究人员创建了一个HTML文件,该文件会导致标题在无限循环中快速变化,从而迫使浏览器冻结。
结果Edge、Torch、Maxthon、Opera和Vivaldi等所有基于Chromium的主流浏览器,全部中招,失去响应,而Firefox和Internet Explorer虽然没有瘫痪,但性能也受到了影响。
由于现代浏览器都是基于沙盒技术,因此滥用SetWindowText函数并不会影响到底层操作系统,让整个系统白屏死机。但是,当研究者尝试在虚拟机内进行浏览器攻击时,会出现资源耗尽问题,导致虚拟化系统显示“蓝屏死机”。
厂商回应:不是漏洞
研究人员指出,除了实验已经验证的Windows终端模拟器和主流浏览器以外,任何使用SetWindowText或GdipDrawString函数的应用程序都可能受此攻击影响。
有些应用例外,例如Slack。像Slack这样的应用程序在函数调用上具有速率限制器,因此它们能够抵御这种DoS攻击。
Gerzi联系了受影响的供应商并收到以下回复:
虽然谷歌和微软都否认白屏死机是漏洞,但是安全研究人员指出,可以通过在远程服务器上创建恶意文件并从在存在漏洞的终端中打开来远程触发攻击。
本文由梁桂钊于2023-08-30发表在梁桂钊的博客,如有疑问,请联系我们。
本文链接:https://720ui.com/10441.html