【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)

序文

从西方APT组织的攻击历史及曾经泄露的网络攻击武器来看,高躲藏、高耐久化(Low&Slow)是曾经成为辨别要挟等级的关键特征,而Rookit则是达成此目的重要的技术手腕之一。

在之前的文章中,“序章:悬顶的达摩克利斯之剑”,带我们领略了Rootkit的前世今生,藏匿于Rootkit背后的影子以及针对Rootkit的根本检测思想。“Windows平台高藏匿、高耐久化要挟”和“Linux平台高藏匿、高耐久化要挟”各自从宏观角度讲述Windows平台和linux平台下,Rootkit技术原理、应用和开展现状以及攻防角度的总结。“Rootkit检测技术开展现状”让我们见识到了防御方对立Rootkit的技术。

本文则是在“Windows平台高藏匿、高耐久化要挟”的根底上,分离攻击者在攻击中应用到的技术手腕,对Windows平台上的rootkit的运转效果及应用方面停止引见。

Rootkit要挟情报-战火从未中止

2015年4月,平安研讨团队发表了关于Turla组织的Rootkit剖析报告。
2016年8月,平安研讨团队发布了索伦之眼(ProjectSauron)相关的技术细节。
2018年10月,平安研讨人员披露有驱动护体的挖矿病毒ProtectionX。
2019年4月,平安研讨团队发布关于跨平台特务Rootkit Scranos的文章。
2021年10月,平安研讨团队披露了DirtyMoe Rootkit 驱动程序。
2021年12月,平安研讨团队披露了方程式组织(Equation Group)的攻击框架DanderSpritz。
2022年1月,平安研讨团队披露了紫狐(Purple Fox)僵尸网络经过假装Telegram装置程序释放Rootkit的攻击事情。

紫狐-黑产中Rootkit技术应用的代表

紫狐是曾经持续多年的、以营利为目的的网络黑产组织,他们历来每次呈现在视野中,都会变化一种攻击方式或技术。
攻击者控制大量受害终端,经过刷量、推行用户不需求的软件来获利,这会拖慢设备性能,严重影响受害者的正常运用。
其歹意程序运用了Rootkit技术,以致于具有很高的荫蔽性,很难被受害者开掘和肃清。

在紫狐病毒释放器下载最终Purple Fox Rootkit载荷之前,我们留意到释放程序会装置一个名为“Driver.sys”的驱动程序,用于注销名为“360FsFlt”的Minifilter,并关闭名为“ZhuDongFangYu.exe”的进程,来躲避平安软件检测。
“ZhuDongFangYu.exe”的进程是从驱动启动的,用常规手腕是无法关闭的。

驱动效劳运转后,经过一个独立的命令行工具停止调用,经过I\O 通讯传送指令,具有四种命令,对应四种功用。

实践运转效果如下:
关闭指定文件过滤器
图片[1]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
拷贝文件
图片[2]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
删除文件
图片[3]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
完毕进程
图片[4]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
在剖析过程中我们发现,该驱动程序为了防止被检测,在文件拷贝和删除文件的过程中没有运用常规的API函数,而是经过IofCallDriver函数向文件设备发送带有操作的IRP数据,以此到达文件操作的目的。
图片[5]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
而在关闭进程功用上,更是提供了两种完毕进程的办法,来躲避检测。而且我们发现,该驱动目前仍是半废品的状态,也就是说,攻击者仍在停止功用的迭代晋级。
在完成平安软件进程关闭后,释放文件才会继续下载最后的Purple Fox Rootkit,经剖析,该Rookit是基于开源Rookit项目“Hidden”修正,具有躲藏注册表项和值、躲藏文件和目录、躲藏进程、维护指定进程等功用。

文件躲藏运转效果:
图片[6]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
图片[7]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
注册表躲藏运转效果:
图片[8]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
图片[9]-【Rootkit系列研究】Windows平台高隐匿、高持久化威胁(二)-孤勇者社区
进程维护运转效果:

由此可见,学习开源项目也是攻击者提升攻击才能的有效方式,他们也在不时汲取新的技术,应用与攻击活动之中。

APT组织的高对立利器

Turla组织最早能够追溯到2004年,曾经超越45个国度遭到相关攻击,触及政府、大使馆、军事、教育、研讨和制药公司等多个行业。其攻击运用的技战术不断都有着较高的技术程度,关于国度和行业秘密有着极大的要挟。

本领件中运用的Rootkit主要功用是经过HOOK一系列系统调用函数,躲藏和维护其用户态组件。然后经过修正Ntoskrnl.exe和Ndis.sys的内存数据,在0xc3处创立一个新的IDT条目并重定向一切的被HOOK的函数到一个简单的中缀句柄(ISR),每个被HOOK的函数都有一个独一的标识符与ISR中的派遣函数相对应。

由于可以该办法可以禁用任何主机内的HOOK机制,因而传统的针对Rookit的监测才能都遭到了限制。

Turla rootkit还运用了两个虚拟文件系统,一个NTFS文件系统和一个FAT文件系统,也就是说,受害者主机上有一个承载了文件系统的加密文件,攻击者将其作为工作空间运用。

这里突出了Turla组织攻击活动所运用的工具十分具有高对立性,可以做到从系统层面防止平安软件的检测和查杀。
除了Rootkit局部,还有一点值得留意,Turla在攻击过程中会运用一个名为“VBoxDrv.sys”的驱动程序,该驱动程序存在CVE-2008-3431破绽,攻击者可以应用该破绽完成权限提升。

这里就要说到一个概念“VulnDriver”,也就是带有破绽的驱动程序,比拟常见的VulnDriver还有GDRV.sys (CVE-2018-19320),Novell (CVE-2013-3956), CPU-Z (CVE-2017-15302), ASUS (CVE-2018-18537)。
挖矿木马常用的矿机所运用的WinRing0.sys也是一个十分常见的VulnDriver,这个驱动是一个名为NZXT CAM的计算机硬件性能监控产品内的一个便于程序访问Windows内核的组件。这个看起来不大的驱动程序上存在着多达11个CVE破绽,其中CVE-2020-13516能够越权直接从USB和PCI设备查询信息;CVE-2020-13515能够越权将数据写入I/O总线,可能会更改PCI配置信息或特定于供给商的数据存放器,协助其他程序完成提权;CVE-2020-13518能够越权直接访问rdmsr,恣意读取MSR内数据;CVE-2020-13519能够越权直接访问writemsr,向MSR内写入数据。

因而,应用这个驱动程序做很多事情,其应用本钱低,很受以营利为目的网络攻击者欢送。

在前段时间Log4j 曝出存在RCE破绽的时分,该破绽被大量的黑产攻击者应用,这个驱动程序也连带着呈现在了群众的视野之中。

这些VulnDriver带着官方的签名,而且自身没有什么歹意行为,因而很多平安厂商都不会告警。

在不久前被曝光的方程式组织的后浸透框架DanderSpritz中,也存在VulnDriver的应用,在其名为DoubleFeature的插件中,存在名为hidsvc.sys的驱动程序,该驱动程序存在 CVE-2017-0005 破绽,可以让攻击者经过用户层代码指定称号和参数来调用内核功用。

说到这,我们来简单理解一些方程式这个组织吧。

方程式组织被称为世界上最尖端的网络攻击组织之一,和恶名昭彰的震网(Stuxnet)和火焰(Flame)有着很深的联络。

震网是一个全球性质的工业病毒,是世界上首个网络“超级毁坏性武器”,曾被用来攻击伊朗核设备,手法极端阴险。
同时,我国的工业设备也遭到了一定的影响。

因而他们的存在,是国度秘密和关键根底设备宏大的要挟。

在这次被曝光的项目中存在一个远程访问工具,其下有一个名为MSNDSRV.sys的驱动程序。

该驱动程序曾在2015年的EquationDrug 组件中被提到,能够躲藏用户侧组件,另外能够在注册表遍历一切网卡,调用NdisRegisterProtocol函数注册一个NDIS流量监听器,能够接纳到受害主机一切流量,完成通讯流量监控。

在两个庞大的项目中,这个驱动程序显得微乎其微,和之前提到的Rootkit程序相比,方程式组织的Rootkit技术没有中心组件的位置,只是整个项目下某一个插件下的一个组件,是一个“随取随用”的位置。

但就是这样一个看起来不值一提的组件,在两个程序中都呈现了。

足以阐明,Rookit是方程式组织在攻击组件开发的过程中十分常用的技术,而关于这类常用的组件,攻击者也不会花太多心机停止二次开发。

但是就算是这样,平安厂商仍旧鲜有捕获到方程式组织的活动痕迹,该组织的高藏匿技术之强,不可思议。

检测-这是一场与攻击者的军备竞赛

业界对反Rootkit软件运用的技术停止了分类。签名的检测(Signature-based detection)、文件完好性监测(File integrity monitoring)、Rootkit Hook检测(Rootkit hooking detection)、穿插视图剖析(Cross-view analysis)以及基于网络的检测(Network-based detection)。

基于签名的检测就是匹配rootkit软件字节特征,缺陷是无法匹配新的rootkit,而且特征容易更改,关于已装置rootkit的系统再施行检测不理想。

文件完好性监测,该办法计算关键的、不变的操作系统文件的哈希,并将其与存储在数据库中的已知值停止比拟。这项技术关于在磁盘上修正系统二进制文件的rootkit很有效,但rootkit的作者很快运用hooking或DKOM技术,以此窜改执行结果,使得检测效果不理想。

Rootkit Hook检测,SSDT、IAT和IDT都有一组用于每个效劳或中缀的函数指针,它们都在内存中的特定范围内。当rootkit修正Hook指向歹意效劳或中缀例程时,函数指针所指向的位置简直总是位于特定内存地址范围之外。在这期间还开展了Inline Hook方式,来躲避这些关键表的检测,后来开展了FSD Hook、FSD Inline Hook。

穿插视图剖析,穿插视图剖析触及从“用户”或“API”视图查看系统,并将其与低级视图停止比拟,穿插视图办法能够检测基于DKOM和系统例程补丁的Rootkit,不能检测基于HOOK的Rootkit。

基于网络的检测,理论上,rootkit可能会试图躲藏其网络通讯,以逃避操作系统或用户的检测,但是从系统外部还是能看到流量的,这方面成了C2躲藏通讯和网络检测的比赛。

Windows也引进了一些防御技术,PatchGuard和DSE。PatchGuard用于内核完好性检测,守护容易被HOOK的中央。DSE用于检测驱动签名,限制未签名驱动加载。上文提到的Turla则绕过了这种限制,经过引入VulnDriver间接绕过。经过修正内存中的特殊变量就能关闭DSE功用,此时,加载第二个未签名的歹意驱动,直接HOOK PatchGuard告警的关键函数,在下一个内核完好性校验过程中不让异常表现出来,从而完成了PatchGuard功用的绕过。

总结

说了这么多,其实只想阐明一个问题,那就是Rootkit技术不断都没有过时,它不断都是攻击者喜爱的攻击技术。固然他的热度被形形色色的新型网络要挟所掩盖,但在那些网络攻击的事情中,我们又常常能见到它的影子。

在我们忙于研讨处置其他网络要挟技术的时分,它也在以某种的方式存在,并不时生长着。在平安厂商不时提升己方检测才能的同时,攻击者也在不时提升对立才能,传统的检测方式不时的接受着一轮又一轮的攻击。

关于高对立的Rookit技术的检测,关于传统的检测技术是一个很大的应战,平安厂商还有很多的工作要去完成。

参考链接

  1. https://decoded.avast.io/martinchlumecky/dirtymoe-rootkit-driver/
    2.https://blog.talosintelligence.com/2020/12/vuln-spotlight-NZXT-CAM-.html
    3.https://blog.minerva-labs.com/malicious-telegram-installer-drops-purple-fox-rootkit
    4.https://www.lastline.com/labsblog/dissecting-turla-rootkit-malware-using-dynamic-analysis/
    5.https://mp.weixin.qq.com/s/a1LgQqmkGFYYq7JQLQKmMQ
    6.《Eset-Turla-Outlook-Backdoor》
    7.https://securelist.com/operation-tunnelsnake-and-moriya-rootkit/101831/
    8.https://unit42.paloaltonetworks.com/acidbox-rare-malware/【Rootkit系列研讨】Windows平台高藏匿、高耐久化要挟(二)
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片