欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

RobbinHood:利用Windows驱动程序漏洞关闭杀软的勒索软件

来源:本站整理 作者:佚名 时间:2020-02-16 TAG: 我要投稿

近期,Sophos安全团队发现了一起新型勒索软件攻击事件,该勒索软件能通过合法且经过数字签名的硬件驱动程序,在恶意文件加密部分执行之前禁用目标计算机中的安全产品。
该驱动程序曾由台湾主板制造商技嘉(Gigabyte)使用(当前已弃用),它具有一个已知的漏洞CVE-2018-19320,利用此漏洞,攻击者能够尝试访问设备并部署第二个驱动程序,进而杀死系统中的杀毒产品。
该漏洞于2018年被发现,技嘉曾否认此漏洞并表示其产品不受影响,后来才决定撤销此驱动程序。但由于用于对驱动程序进行数字签名的Verisign代码签名机制尚未撤销签名证书,Authenticode签名仍然有效,因此它当前仍能存在且具有威胁性。

图1.勒索告示
Sophos将此次观察到的勒索软件称为RobbinHood。试图绕过杀毒产品的勒索软件并不少见,例如Nemty使用常规的taskkill杀死进程和服务,而Snatch勒索软件则将电脑重新引导到安全模式以解决端点保护的问题。显然,从内核模式执行进程终止具有许多优势。
本文将对此次攻击的操作方式作探讨,并提出一些在未来面对这类情形的威胁时的防御措施。
击破Windows防御
在不深入研究勒索软件或数据加密本身的情况下,我们将专注于攻击者用来杀死端点保护软件的模块。攻击的这一部分由STEEL.EXE中嵌入的几个文件组成,所有文件都被提取到到C:\WINDOWS\TEMP。

STEEL.EXE
STEEL.EXE负责终止进程并删除杀软文件。为此,STEEL.EXE应用程序首先部署ROBNR.EXE,后者安装恶意的未签名驱动程序RBNL.SYS。该驱动程序以内核模式运行,处于提取进程和文件最佳位置,不受诸如端点保护之类的安全控制措施的阻碍。
RBNL.SYS安装完成后,STEEL.EXE读取PLIST.TXT文件,指示RBNL.SYS删除该文件中列出的所有应用程序并终止其关联进程。如果进程作为服务运行,则服务也会因为关联文件被删除而不再自动重启。
STEEL.EXE进程退出后,勒索软件程序就可以畅通无阻地执行加密攻击。
ROBNR.EXE
ROBNR.EXE是一个便捷的应用程序,可植入并安装易受攻击的GDRV.SYS驱动程序和恶意RBNL.SYS驱动程序。
64位Windows计算机具有为驱动程序签名实施的机制,这意味着Windows仅允许加载由制造商和Microsoft正确签名的驱动程序。
恶意软件作者没有费心为驱动程序寻找签名,因为它涉及购买证书,购买的证书也可能随时被颁发机构吊销,导致驱动程序不再可用。这里作者选择了另一条途径,利用正确签名的第三方GDRV.SYS驱动程序中的提权漏洞,该漏洞允许读写任意内存,作者的目的是为了(暂时)禁用Windows内核内存中的驱动程序签名机制。一旦禁用了驱动程序签名机制,攻击者便可以加载其未签名的恶意驱动程序。
禁用驱动程序签名执行
攻击者可以通过更改内核空间中的单个变量(单个字节)来禁用驱动程序签名强制实施。在Windows 7(或更早版本)中,此变量称为nt!g_CiEnabled (NTOSKRNL.EXE);在Windows 8和10上,此变量称为ci!g_CiOptions(CI.DLL)。为了找到变量所在位置,攻击者使用了一种来自DSEFix的策略。
在Windows 8或10上步骤如下:首先在进程中调用DONT_RESOLVE_DLL_REFERENCES来加载标准的Windows组件CI.DLL,并将其作为一个数据库。加载CI.DLL后通过GetModuleBaseByName函数查询CI.DLL在内核内存中的位置,使用NtQuerySystemInformation(SystemModuleInformation…)来获取所有已加载内核模块的内核地址。
 

图2.找到控制驱动程序签名实施的变量
 

图3.获取模块的内核地址
一旦知道了这些内核地址,攻击者便会从模块的导出地址表中解析导出的CiInitialize函数。然后反汇编该函数找到call CipInitialize()的指令mov dword ptr [address],ecx。下图中展示了地址g_CiOptions。
 

图4.使用HDE反汇编程序查找g_CiOptions的位置
知道了g_CiOptions变量在内核空间中的位置,就可以将易受攻击的第三方驱动程序放到磁盘上启动。有关此漏洞的确切信息请参阅此篇文章(https://www.secureauth.com/labs/advisories/gigabyte-drivers-elevation-privilege-vulnerabilities)。
除了技嘉驱动程序之外,还有其他许多具有类似漏洞的易受攻击的驱动程序,可能会在将来被攻击者滥用,例如VirtualBox (CVE-2008-3431), Novell (CVE-2013-3956), CPU-Z (CVE-2017-15302), ASUS (CVE-2018-18537)。
 

图5.恶意驱动程序的部署方式
恶意驱动程序
成功部署和启动恶意驱动程序后,ROBNR.EXE进程退出,STEEL.EXE开始处理PLIST.TXT文件,列出所有要杀死的应用程序。
该恶意内核驱动程序用于终止进程并删除关联的文件。它采用了多种技巧来杀死这些应用程序,即使它们正在使用中并受到安全产品篡改保护机制的保护。
 

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载