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

news2025/1/31 11:22:00

文章目录

    • 简介
    • 议题分析
      • 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系统的漏洞进行攻击,提供了一种新的攻击思路。然而,这也提醒我们,即使是最先进的安全系统,也可能存在漏洞,需要我们时刻保持警惕,及时更新和修复系统,以防止被攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科技云报道:汽车云,云计算换挡后的下一个“赛点”?

科技云报道原创。 从去年开始,汽车云似乎成为了云计算赛道的“香饽饽”。 尤其是在下半年,无论是阿里、腾讯、华为三大云巨头,还是百度云、京东云、字节云等奋力争夺“第四朵云”的玩家,均已各种形式“刷新”了其汽车云战略。玩…

Revit中窗族的立面出图设置和构件显隐

​  一、窗族的立面出图设置 Revit中,除了平面的出图设置以外还有立面的出图设置。 例如:如何在立面中,使窗户在精细详细程度显示的是窗的全部主体结构而在粗略/中等详细程度下是显示这样的样式呢? 在窗族样板中,打开立面&…

unity uitoolkit学习

使用UI Toolkit Debugger查看元素 1、打开面板 2、找到元素 在UI Builder窗体,别忘了打开Preview再选择元素 3、可以选择不同类型的窗体 4、查看元素的样式 需要注意的是下面的样式会覆盖上面的 5、调试 修改内置控件样式 1、找到PanelSettings>Theme St…

如果STM32/GD32一类的ARM单片机解除读写保护的方法

文章目录 前言一、打开软件二、连接到目标芯片1.连接2.若目标芯片无写包含3. 若存在读写保护 三、解除读写保护的操作:1. 打开Options Bytes对话框2. 操作步骤 四、工具下载链接 前言 有时候啊,使用ST-Link给STM32一类的ARM单片机下载程序的时候&#x…

Fastjson过滤器用法

fastjson git地址:https://github.com/alibaba/fastjson/wiki SimplePropertyPreFilter 用法 用于过滤某个属性 SimplePropertyPreFilter filter new SimplePropertyPreFilter();filter.getExcludes().add("gender");A a new A(1,"zhangsan"…

CSS样式的三种引入方式及优先级

说明:网页开发有三种技术,分别是html、css和js,分别对应页面的结构、表现和动作。css样式引入,是指把对页面的渲染作用到html上,有以下三种方式:行内式、内嵌式和外联式。 第一种:行内式&#…

噶了呀,现在的00后这么卷的吗?

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪20K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家里…

KDZD自动脱扣型绝缘靴(手套)耐压试验装置支架

一、概述 KDZD自动脱扣型绝缘靴(手套)耐压试验装置支架是根据《DLT 976-2017 带电作业工具、装置和设备预防性试验规程》、《DLT 1476-2015电力安全工器具预防性试验规程》、《GBT 17622-2008带电作业用绝缘手套》、《CB21148 2020足部防护 安全鞋》等相…

VBA学习-循环语句

目录 一、基础知识学习 二、单元格格式 三、循环语句与判断语句 一、基础知识学习 1、对单元格赋值 Sub 赋值()对单元格进行赋值Range("A1").Value 100End Sub 2、多区域赋值 Sub 多个区域赋值() 多区域赋值Range("B1:C2").Value 200 End Sub 3、不…

2023年10月自考本科如何报名,报考流程是怎样的?

自考本科报名条件: 自考本科没有条件与要求,国家规定:凡中华人民共和国公民,不受性别、年龄、民族、种族和已受教育程度的限制,均可参加自学考试。但是,需要注意的是,办理本科毕业证书者&#x…

2023年,真的别裸辞....

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

【TellMeCode】使用VSCODE + ChatGPT辅助分析推测源码

【TellMeCode】使用VSCODE ChatGPT辅助分析推测源码 0x00 功能简介 根据代码上下文相关信息,如工作区文件夹名称,代码所在路径等一系列信息,提供给大模型更多元和尽可能多的信息,利用其自身优势去检索相关的文档和博客&#xf…

WSL 双系统端口映射,网络穿透最新教程

目录 1 进入wsl 1.1 进入root模式 1.2 随便安装个东西 2 打开win的PowerShell 2.1 查看虚拟机的ip地址 2.2 端口映射转发 2.3 验证是否成功 2.4 删除映射端口命令 1 进入wsl 这里使用的是ubuntuLiunx操作系统 打开wsl,搜索即可。 1.1 进入root模式 命令 …

SSM 如何使用 Redis 实现缓存?

SSM 如何使用 Redis 实现缓存? Redis 是一个高性能的非关系型数据库,它支持多种数据结构和多种操作,可以用于缓存、队列、计数器等场景。在 SSM(Spring Spring MVC MyBatis)开发中,Redis 可以用来实现数…

同一个Service类中非事务方法 调用 事务方法,事务失效 解决方法

同一个Service类中非事务方法 调用 事务方法,事务失效 解决方法 在平时开发中,同一个Service类中非事务方法调用事务方法,事务会失效,这里简单解释一下原因: spring采用动态代理机制来实现事务控制,而动态…

开发小程序流程

小程序的诞生,是继微信公众号之后的又一款火爆的 APP,并且小程序的市场需求也是非常大的。在小程序出现后,很多商家都想开发自己的小程序,但是因为不知道怎么开发,所以对此感到迷茫。下面就由爱尚网络科技来为大家介绍…

成功上岸奇安信!这份零基础入门网络安全的学习路线你一定要看,学长带你网络安全从入门到就业!

作为一个实用型技术博主,​由于我之前写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人在后台问我: 现在转行学网络安全是一个正确的选择吗?我刚入门网络安全,该…

如何在华为OD机试中获得满分?Java实现【取出尽量少的球】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 某部门开展 Family Day …

震惊!吊打面试官,必备的 SpringCloud 微服务面试题(VIP典藏版)

目录 福利:文末有分享SpringBoot教程及源码哦《【imooc-java2021】体系课-Java工程师 》 Spring Cloud微服务面试题 1、Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件 2、Nacos是CP还是AP? 3、Nacos作为注册中心应该选择是CP还是AP? 4、…

ImageBind与Stable diffusion使用记录

参考代码 ImageBind:GitHub - facebookresearch/ImageBind: ImageBind One Embedding Space to Bind Them All ImageBind stable-diffusion-2-1-unclip:GitHub - Zeqiang-Lai/Anything2Image: Generate image from anything with ImageBind and Stabl…