[RSA议题分析] Aikido Turning EDRs to malicious wipers using 0-day exploits

2023-10-22 06:59

本文主要是介绍[RSA议题分析] Aikido Turning EDRs to malicious wipers using 0-day exploits,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 简介
    • 议题分析
      • wiper
      • EDR
      • Windows of Opportunity
    • 总结

简介

本篇议题是由SafeBreach实验室的Or Yair带来的,主要通过利用EDR的删除恶意软件的能力和windows软连接与延迟删除文件的能力去制造一个可以在普通户权限下删除任意文件的恶意软件 - Aikido。这本质上是EDR实现的漏洞,所以作者将其称之为利用0day漏洞实现擦除器。

议题分析

wiper

wipers background

在信息安全-主机安全领域,wiper(擦除器)是一种恶意软件,旨在擦除它感染的计算机的硬盘驱动器,恶意删除数据和程序,使得系统无法正常运行。这种恶意软件通常用于破坏攻击,而不是为了盗取数据或者控制系统。

deletion(删除) 和wpe(擦除)是两回事,当一个进程调用windows 操作系统提供的删除文件API时,他要求内核删除某个文件,内核会将硬盘上的MFT(主文件列表,记录NTFS文件系统中所有的文件信息),将特定文件的条目标记为空,这个条目是一个指向特定文件内容的指针,将其置空代表我们无法访问到该文件了,而文件的真实内容并没有被删除,仍然在磁盘上仍可以被恢复。而擦除则是删除文件本身,找到文件内容所在并将其擦除或覆盖导致无法恢复。

在这里插入图片描述

目前大部分擦除器都直接替换文件内容,而不是删除文件。擦除器为了能造成更大的破坏,需要覆盖系统中比较重要的文件,比如擦除管理员的文件、系统文件以至于让系统无法正常启动,但这需要权限。除此之外,还有一些擦除器采用了驱动破坏的技术,它们将硬盘驱动作为设备打开,向其中写入随机字符,覆盖MBR(主引导记录,主要功能是帮助计算机启动操作系统。)等重要结构。或者覆盖其他NTFS的结构或者文件等。

这种方式的缺点在于可以被发现你正在搞破坏:

在这里插入图片描述

next-gen wiper

下一代擦除器,不适用上述方式中的api来进行擦除,比如可以使用非特权用户执行所有工作,作者开发了这个工具:Aikido(合气道,使用对手的力量对付他们)。这里的"对手"是指EDR。

EDR

EDR,全称Endpoint Detection and Response,中文通常翻译为端点检测与响应,是一种网络安全技术,主要用于保护计算机网络的端点(如PC、服务器和移动设备)免受恶意软件和黑客攻击。

EDR系统通过实时监控和收集端点设备的各种活动数据,然后使用各种分析技术(如机器学习和行为分析)来检测、调查和防止潜在的安全威胁。当EDR系统检测到威胁时,它可以自动采取一系列响应措施,如隔离受影响的设备、终止恶意进程、或者回滚恶意改动,以最小化威胁对网络的影响。

最主要的是EDR通常具有操作系统中的最高权限,有能力删除任何文件:

  • EDR会根据配置来决定自己的删除文件的判断逻辑,如默认配置下大部分EDR会自动删除认为是恶意的文件。
  • 有些EDR会在恶意文件打开的时候检测并删除他们
  • 有些是在恶意文件关闭或者写入的时候
  • 有些是主动扫描发现恶意文件删除

作为非特权用户,我们其实对EDR也是有一定的控制能力的。换句话说我们可以控制触发EDR的删除目标文件逻辑,比如我们可以主动创建一个恶意文件,让EDR删除。接下来思考如何让EDR删除指定文件即可。

  • 向无辜的文件中写入一些恶意内容,等待EDR删除。不行,这需要拥有写权限
  • 使用链接文件,让EDR误以为自己删除了恶意文件。但是windows默认只能管理员创建链接

但NTFS文件系统中有所不同,NTFS文件系统有三种类型的链接,有一种链接方式是junction points,连接点。类似于目录的硬链接,可以理解为普通用户可以创建的将一个目录链接到另一个目录的链接方式。

Windows of Opportunity

方法1

EDR文件删除过程中,有两个主要事件,第一个是恶意文件出现的时间,说白了就是恶意文件被检测以及确定是恶意文件的时间。这时EDR决定的时间。第二个是文件被删除的时间,而在这两个时间之间存在一个时间窗,我们可以将文件改写为一个链接文件,以至于让EDR删除链接文件指向的文件。

在这里插入图片描述

比如我们要使用EDR删除的目标文件是下图中的左面的ndis.sys,我们在C盘中创建一个临时的temp目录,并在下面创建和上面完全一样的路径,其中也有一个ndis.sys文件,但这个文件中我们含有任意内容,这样EDR就会将其标记为恶意文件,尝试删除。

在这里插入图片描述

在这之后和实际删除操作开始之前,我们将temp下面的文件全部删除,并且创建一个目录链接,将temp目录链接到C盘,则EDR在尝试删除的时候就会删除真正C盘中的驱动文件。如下:

在这里插入图片描述

但有些EDR会及时控制住恶意文件,导致我们无法删除自己创建的恶意文件,自然也无法进行后续的junction 链接。还有一些EDR,在我们删除恶意文件之后,就发现自己不再被威胁了,就取消了后续动作。

方法2

那么我们可以使用windows的createfile api创建一个文件,我们可以得到一个文件句柄。文件句柄是一个用于识别打开的文件或者其他I/O资源(如管道、设备、网络套接字等)的抽象标识符。比较重要的一个性质是:**如果还有某文件的文件句柄正在被使用,则无法删除该文件。**除此之外,我们还可以设置文件句柄的共享模式属性,它可以指定其他进程可以读写该文件,我们可以开放读文件的共享模式,然后在这个文件中添加一些恶意内容。这样EDR就可以读取到这个恶意文件并尝试删除。但由于其文件句柄一直在我们手里没有释放,所以EDR也无法删除该文件。大部分EDR会在尝试删除失败多次之后启动延迟删除的方案。比如弹窗告诉我们无法解决电脑的威胁,需要重启来解决。然后再重启之后尝试删除:

在这里插入图片描述

一部分EDR使用windows的API MoveFileEx 来延迟删除文件,另一些EDR使用windows defender来延迟删除,这意味着他们保留了一份要删除的文件列表,等重启后根据列表删除文件,但原理和上面类似。

  • 调用该API可以在第三个参数指定MOVEFILE_DELAY_UNTIL_REBOOT 标志位来让操作系统重启后延迟删除该文件。

  • 使用上述API需要拥有管理员权限,因为会在注册表项PendingFileRenameOperations中写入你想要操作的文件路径

  • 还是按照上面类似的方法,创建文件,写入任意内容,但不释放文件句柄,这样EDR删除几次失败之后就会放弃删除,而使用MoveFileEx 延迟删除,这时删除恶意文件创建junction链接,等到下次重启就会删除成功:

    在这里插入图片描述

总结

本议题主要探讨了如何利用EDR系统的0-day漏洞,将其转变为恶意的数据擦除器。报告首先介绍了wiper(擦除器)的基本概念,它是一种恶意软件,旨在擦除感染的计算机的硬盘驱动器,恶意删除数据和程序,使系统无法正常运行。然后,报告详细分析了EDR系统的工作原理,以及如何利用EDR系统的漏洞进行攻击。

报告提出了两种利用EDR系统进行攻击的方法。第一种方法是在EDR系统决定删除恶意文件和实际删除文件之间的时间窗口中,将文件改写为一个链接文件,使EDR系统删除链接文件指向的文件。第二种方法是利用Windows的createfile API创建一个文件并获取文件句柄,然后在文件中添加恶意内容,使EDR系统尝试删除文件。但由于文件句柄一直在攻击者手中,EDR系统无法删除文件,最终可能会启动延迟删除的方案。

总的来说,这篇报告详细地分析了如何利用EDR系统的漏洞进行攻击,提供了一种新的攻击思路。然而,这也提醒我们,即使是最先进的安全系统,也可能存在漏洞,需要我们时刻保持警惕,及时更新和修复系统,以防止被攻击。

这篇关于[RSA议题分析] Aikido Turning EDRs to malicious wipers using 0-day exploits的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259841

相关文章

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n = 1005; // n根据题目中节点数量而定,一般比节点数量大一点就好vector<int> father = vector<int> (n, 0); // C++里的一种数组结构// 并查集初始化void init() {for (int i = 0; i < n; ++i) {father[i] = i;}

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

BD错误集锦1——[Hive]ERROR StatusLogger No log4j2 configuration file found. Using default configuration:

错误描述:在使用IDEA进行jdbc方式连接到hive数据仓库时,出现以下错误:                ERROR StatusLogger No log4j2 configuration file found. 问题原因:缺少log4j2.xml文件   <?xml version="1.0" encoding="UTF-8"?><Configuration><Appender

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

Java中的大数据处理与分析架构

Java中的大数据处理与分析架构 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论Java中的大数据处理与分析架构。随着大数据时代的到来,海量数据的存储、处理和分析变得至关重要。Java作为一门广泛使用的编程语言,在大数据领域有着广泛的应用。本文将介绍Java在大数据处理和分析中的关键技术和架构设计。 大数据处理与

段,页,段页,三种内存(RAM)管理机制分析

段,页,段页         是为实现虚拟内存而产生的技术。直接使用物理内存弊端:地址空间不隔离,内存使用效率低。 段 段:就是按照二进制文件的格式,在内存给进程分段(包括堆栈、数据段、代码段)。通过段寄存器中的段表来进行虚拟地址和物理地址的转换。 段实现的虚拟地址 = 段号+offset 物理地址:被分为很多个有编号的段,每个进程的虚拟地址都有段号,这样可以实现虚实地址之间的转换。其实所谓的地

mediasoup 源码分析 (八)分析PlainTransport

mediasoup 源码分析 (六)分析PlainTransport 一、接收裸RTP流二、mediasoup 中udp建立过程 tips 一、接收裸RTP流 PlainTransport 可以接收裸RTP流,也可以接收AES加密的RTP流。源码中提供了一个通过ffmpeg发送裸RTP流到mediasoup的脚本,具体地址为:mediasoup-demo/broadcaste

Java并发编程—阻塞队列源码分析

在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。   在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了D

线程池ThreadPoolExecutor类源码分析

Java并发编程:线程池的使用   在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:   如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。   那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?