无文件攻击

news2024/10/5 15:26:34

无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行,难以被发现和清除。

在这里插入图片描述

根据受感染计算机上的指纹数量来收集三种主要类型的无文件威胁。

类型 I:未执行文件活动

完全无文件恶意软件可以视为永远不需要在磁盘上写入文件的恶意软件。 此类恶意软件首先会如何感染计算机? 例如,目标计算机接收恶意网络数据包,这些数据包会利用 EternalBlue 漏洞。 此漏洞允许安装 DoublePulsar 后门,该后门最终仅驻留在内核内存中。 在这种情况下,没有文件或文件上写入的任何数据。

受攻击的设备可能还具有隐藏在设备固件 ((如 BIOS) 、USB 外围 ((如 BadUSB 攻击) )或网络卡固件中的恶意代码。 所有这些示例不需要磁盘上的文件才能运行,理论上只能在内存中生存。 恶意代码会在重新启动、磁盘重新安装和 OS 重新安装后生存下来。

这种类型的感染可能特别难以检测,因为大多数防病毒产品都无法检查固件。 如果产品确实能够检查和检测恶意固件,则此级别的威胁修正仍存在重大挑战。 这种类型的无文件恶意软件需要高度复杂,并且通常取决于特定的硬件或软件配置。 这不是一个可以轻松可靠地利用的攻击向量。 虽然存在危险,但此类威胁并不常见,对大多数攻击并不实际。

类型 II:间接文件活动

恶意软件可以通过其他方式在计算机上实现无文件状态,而无需大量的工程工作。 此类的无文件恶意软件不会直接在文件系统上写入文件,但最终可能会间接使用文件。 例如, 使用 Poshspy 后门 攻击者在 WMI 存储库中安装了恶意 PowerShell 命令,并将 WMI 筛选器配置为定期运行该命令。

可以通过命令行执行此类安装,而无需在文件上已有后门。 可以安装恶意软件并在理论上运行,而无需接触文件系统。 但是,WMI 存储库存储在 CIM 对象管理器管理的中央存储区域中的物理文件上,通常包含合法数据。 尽管感染链在技术上确实使用物理文件,但它被视为无文件攻击,因为 WMI 存储库是一个多用途数据容器,无法检测和删除。

类型 III:操作所需的文件

某些恶意软件可以有一种无文件持久性,但不能不使用文件进行操作。 此方案的一个示例是 Kovter,它在注册表中为随机文件扩展名创建 shell 打开谓词处理程序。 打开具有此类扩展名的文件将导致通过合法工具mshta.exe执行脚本。

在这里插入图片描述
调用打开的谓词时,将启动注册表中的关联命令,从而导致执行小型脚本。 此脚本从其他注册表项中读取数据并执行它,进而导致加载最终有效负载。 但是,若要首先触发打开的谓词,Kovter 必须删除具有上述示例中谓词 (所针对的具有相同扩展名的文件,扩展名为 .bbf5590fd) 。 它还必须设置配置为在计算机启动时打开此类文件的自动运行密钥。

Kovter 被视为无文件威胁,因为文件系统没有实际用途。 具有随机扩展名的文件包含在验证威胁是否存在时不可用的垃圾数据。 存储注册表的文件是无法检测到的容器,如果存在恶意内容,则无法将其删除。

按感染主机对无文件威胁进行分类

在介绍了广泛的类别后,我们现在可以深入了解详细信息,并提供感染宿主的细目。 此综合分类涵盖通常称为无文件恶意软件的全景。 它推动我们努力研究和开发新的保护功能,以消除攻击的类,并确保恶意软件不会在军备竞赛中占上风。

利用

  • 基于文件 的 (类型 III:可执行文件、Flash、Java、文档) :初始文件可以利用操作系统、浏览器、Java 引擎、Flash 引擎等执行 shellcode 并在内存中传递有效负载。 虽然有效负载是无文件的,但初始条目向量是一个文件。
  • 基于网络的 (类型 I) :利用目标计算机中的漏洞的网络通信可以在应用程序或内核上下文中实现代码执行。 例如 WannaCry,它利用 SMB 协议中以前修复的漏洞在内核内存中传递后门。

硬件

  • 基于设备的 (类型 I:网卡、硬盘) :硬盘和网卡等设备需要芯片集和专用软件才能正常运行。 在设备的芯片集中驻留在和运行的软件称为固件。 虽然任务很复杂,但固件可能受到恶意软件的感染,就像 公式间谍组织被抓到一样。

  • 基于 CPU 的 (类型 I) :新式 CPU 很复杂,可能包括用于管理目的运行固件的子系统。 此类固件可能容易被劫持,并允许执行从 CPU 内部运行的恶意代码。 2017 年 12 月,两位研究人员报告了一个漏洞,该漏洞允许攻击者执行 管理引擎内的代码 (ME) 存在于 Intel 的任何新式 CPU 中。 同时,观察到攻击者组 PLATINUM 能够使用 Intel 的 Active Management Technology (AMT) 绕过安装的操作系统执行 不可见的网络通信。 ME 和 AMT 本质上是位于 CPU 内部且在极低级别运行的自主微计算机。 由于这些技术的目的是提供远程可管理性,因此它们可以直接访问硬件,独立于操作系统,即使计算机已关闭,也可以运行。

  • 除了在固件级别易受攻击外,CPU 还可以使用直接插入硬件线路的后门进行制造。 这种攻击在过去已经 研究并证明是可能的 。 据报道,x86 处理器的某些模型包含一个类似于 RISC 的辅助嵌入式 CPU 核心,可以 有效地提供后门 ,通过该后门,常规应用程序可以获得特权执行。

  • 基于 USB 的 (类型 I) :可以使用恶意固件重新编程各种 USB 设备,这些固件能够以邪恶的方式与操作系统交互。 例如, BadUSB 技术 允许重新编程的 USB 摇杆充当键盘,通过击键将命令发送到计算机,或作为网络卡,可以随时重定向流量。

  • 基于 BIOS 的 (类型 I) :BIOS 是在芯片集中运行的固件。 它在计算机上启用电源、初始化硬件,然后将控制权传输到启动扇区时执行。 BIOS 是一个重要组件,在低级别运行并在启动扇区之前执行。 可以使用恶意代码重新编程 BIOS 固件,就像过去使用 Mebromi rootkit 一样。

  • 基于虚拟机监控程序的 (类型 I) :新式 CPU 提供硬件虚拟机监控程序支持,使操作系统能够创建可靠的虚拟机。 虚拟机在封闭的模拟环境中运行,理论上不知道仿真。 接管计算机的恶意软件可能会实现小型虚拟机监控程序,以隐藏在正在运行的操作系统领域之外。 此类恶意软件过去已被理论化,最终 观察到真正的虚拟机监控程序根基,尽管迄今鲜为人知。

执行和注入

  • 基于文件 的 (类型 III:可执行文件、DLL、LNK 文件、计划任务) :这是标准执行向量。 可以将简单的可执行文件作为第一阶段恶意软件启动,以在内存中运行额外的有效负载,或注入其他合法运行的进程。

  • 基于宏 的 (类型 III:Office 文档) : VBA 语言 是一种灵活而强大的工具,旨在自动编辑任务并向文档添加动态功能。 因此,攻击者可能会滥用它来执行恶意操作,例如解码、运行或注入可执行有效负载,甚至实现整个勒索软件,如 qkG。 宏在 Office 进程的上下文中执行 (,例如,Winword.exe) 并使用脚本语言实现。 防病毒无法检查任何二进制可执行文件。 虽然 Office 应用需要用户的明确同意才能从文档中执行宏,但攻击者使用社交工程技术来欺骗用户允许执行宏。

  • 基于脚本 的 (类型 II:文件、服务、注册表、WMI 存储库、shell) :默认情况下,Windows 平台上提供 JavaScript、VBScript 和 PowerShell 脚本语言。 脚本与宏具有相同的优势,它们是文本文件 (不是二进制可执行文件) 并在解释器的上下文中运行 (如wscript.exe、powershell.exe) ,这是一个干净而合法的组件。 脚本是通用的,可以通过双击) 或直接在解释器的命令行上执行,从文件 (运行脚本。 在命令行上运行允许恶意软件将恶意脚本编码为 自动启动注册表项 内的服务,作为 WMI 存储库中的 WMI 事件订阅 。 此外,获得受感染计算机访问权限的攻击者可能会在命令提示符上输入脚本。

  • 基于磁盘 的 (类型 II:启动记录) :启动记录是磁盘或卷的第一个扇区,包含启动操作系统启动过程所需的可执行代码。 Petya 等威胁可以通过使用恶意代码覆盖启动记录来感染该记录。 启动计算机时,恶意软件会立即获得控制。 启动记录位于文件系统外部,但操作系统可访问它。 新式防病毒产品能够对其进行扫描和还原。

无文件攻击的原理:

  • 无文件攻击是指不向磁盘写入可执行文件的攻击方法,难以被常规方法检测出来。无文件攻击通常利用系统中内置的可信程序或工具,通过执行恶意的脚本或代码,或者利用系统的漏洞,将恶意代码注入到内存中,实现攻击的目的。
  • 无文件攻击可以分为不同的类型,根据执行代码的角度,可以分为基于文件、基于宏、基于脚本、基于磁盘等。根据攻击的持久化,可以分为一次性的无文件攻击和持久化的无文件攻击。持久化的无文件攻击通常会利用系统的计划任务、注册表、启动项等,实现恶意代码的自启动。

无文件攻击的常见手法有

  • 利用Office文档的宏功能,通过嵌入恶意脚本或下载远程代码,启动系统可信程序(如Rundll32、Powershell等),并对其进行远程线程注入,将恶意代码植入内存中。
  • 利用系统的计划任务或注册表,创建自启动项,调用系统可信程序执行恶意脚本,实现攻击的持久化。
  • 利用系统的命令行工具(如Mshta、Certutil等),执行恶意的HTML或VBScript代码,或者下载恶意文件并执行。
  • 利用.NET框架,通过托管代码注入技术,将恶意的.NET程序集加载到内存中,并执行。
  • 利用缓冲区溢出漏洞,将恶意代码注入到目标进程的内存中,并执行。

无文件攻击的检测方法有

  • 监控进程内存,利用已知的远控、Shellcode、无文件攻击框架等特征,匹配正在运行进程的内存数据,查找恶意代码。
  • 监控系统行为,利用行为检测技术,分析系统进程的启动、注入、网络通信等异常行为,发现可疑的攻击活动。
  • 监控系统日志,利用日志分析技术,收集和分析系统的事件日志、安全日志、应用日志等,发现可疑的攻击痕迹。
  • 监控系统配置,利用配置管理技术,检查系统的计划任务、注册表、服务等,发现可疑的自启动项或恶意修改。

无文件攻击的防御方法有

  • 禁用或限制系统内置的工具或脚本,如关闭Office文档的宏功能,禁用或限制Rundll32、Powershell、Mshta等程序的执行。
  • 安装和更新系统的补丁,修复已知的缓冲区溢出漏洞,防止恶意代码的注入。
  • 安装和更新系统的杀毒软件,利用杀毒软件的实时防护、行为防护、内存防护等功能,阻止恶意代码的执行。
  • 安装和更新系统的EDR软件,利用EDR软件的行为检测、日志分析、配置管理等功能,检测和清除无文件攻击;使用最新的安全软件,及时更新系统的补丁和防护规则,提高系统的安全性能和抵抗能力。
  • 应用白名单策略,限制可信程序或工具的执行权限,防止恶意代码的注入或执行。
  • 启用系统的安全设置,禁用不必要的服务或功能,如PowerShell、宏、WMI等,减少攻击的攻击面。
  • 使用行为分析技术,监测系统的异常行为,如进程注入、注册表修改、网络连接等,及时发现和阻止攻击。
  • 使用内存取证技术,分析内存中的恶意代码,提取攻击的特征和证据,追踪攻击的来源和目的。

无文件攻击是一种隐蔽而危险的攻击方式,需要我们提高警惕,加强防护,及时应对。

无文件攻击的案例:

  • 一种利用Office文档的宏功能,通过嵌入恶意脚本或下载远程代码,启动系统可信程序(如Rundll32、Powershell等),并对其进行远程线程注入,将恶意代码植入内存中的无文件勒索病毒攻击¹²。
  • 一种利用系统的计划任务或注册表,创建自启动项,调用系统可信程序执行恶意脚本,实现攻击的持久化的无文件远控攻击²³。
  • 一种利用系统的命令行工具(如Mshta、Certutil等),执行恶意的HTML或VBScript代码,或者下载恶意文件并执行的无文件下载器攻击²³。
  • 一种利用.NET框架,通过托管代码注入技术,将恶意的.NET程序集加载到内存中,并执行的无文件.NET注入攻击²³。
  • 一种利用VMware ESXi服务器的漏洞,通过一个shell脚本文件执行,该脚本文件使用各种命令删除虚拟机的快照,并将其替换为加密的文件的无文件勒索软件攻击⁴。

参考资料:

¹: 防病毒技术:无文件攻击 - .Ding - 博客园
²: 无文件攻击 - 百度百科
³: 浅谈无文件

源: 与必应的对话, 2023/2/16(1) 防病毒技术:无文件攻击 - .Ding - 博客园. https://www.cnblogs.com/meandme/p/10337267.html#:~:text=%E6%9C%80%E5%88%9D%EF%BC%8C%E2%80%9C%E6%97%A0%E6%96%87%E4%BB%B6%E6%94%BB,%E6%96%87%E4%BB%B6%E6%81%B6%E6%84%8F%E8%BD%AF%E4%BB%B6%E2%80%9D%E3%80%82 访问时间 2023/2/16.
(2) 防病毒技术:无文件攻击 - .Ding - 博客园. https://www.cnblogs.com/meandme/p/10337267.html 访问时间 2023/2/16.
(3) 百度百科-验证. https://baike.baidu.com/item/%E6%97%A0%E6%96%87%E4%BB%B6%E6%94%BB%E5%87%BB/60205622 访问时间 2023/2/16.
(4) 浅谈无文件攻击_CanMeng’Blog的博客-CSDN博客_无文件攻击. https://blog.csdn.net/weixin_41679427/article/details/104920331 访问时间 2023/2/16.
(5) 常见的windows下无文件落地攻击手法 - 腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/1802231 访问时间 2023/2/16.
(6) 无文件攻击,如何被EDR在1分钟内自动检出?_wx5fb4cb72234a5的技术博客_51CTO博客. https://bing.com/search?q=%e6%97%a0%e6%96%87%e4%bb%b6%e6%94%bb%e5%87%bb+%e5%a6%82%e4%bd%95%e5%8f%91%e7%8e%b0 访问时间 2023/2/16.
(7) 浅谈无文件攻击_CanMeng’Blog的博客-CSDN博客_无文件攻击. https://blog.csdn.net/weixin_41679427/article/details/104920331 访问时间 2023/2/16.
(8) 无文件攻击,如何被EDR在1分钟内自动检出?-安全客 - 安全资讯平台. https://www.anquanke.com/post/id/286389 访问时间 2023/2/16.
(9) 解密无文件攻击的各种姿势及最新检测方法_systemino的博客-CSDN博客. https://blog.csdn.net/systemino/article/details/106538783 访问时间 2023/2/16.
(10) 如何检测无文件恶意软件攻击? - TechTarget安全. https://searchsecurity.techtarget.com.cn/11-26239/ 访问时间 2023/2/16.

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

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

相关文章

ce认证机构如何选择?

CE认证想必大家都已经有所了解,它是产品进入欧盟销售的通行证,那么我们在办理CE认证时该怎么进行选择?带大家了解一下CE认证机构,以及该怎么去进行选择? 以下信息由证果果编辑整理,更多认证机构信息请到证果果网站查看。找机构…

Python版本的常见模板(二) 数论(一)

文章目录前言质数相关质数判断求约数求取区间质数埃氏筛法线性筛法分解质因数欧拉欧拉函数求取单个数线性筛法求取欧拉定理求逆元快速幂/幂取模欧几里得算法求最小公约数拓展欧几里得算法求解同余方程前言 本文主要是提供Python版本的常见的一些与数论相关的模板,例…

SQL中常见的数据类型

SQL中常见的数据类型 目录概述一、整型分类特点二、小数分类特点三、字符型四、日期型分类特点概述 数值型 整数:整型 小数:定点数、浮点数字符型 较短的文本:char、varchar 较长的文本:text、blob(用于保存较长的二进制数据&…

GEE学习笔记 八十二:湖北旱情分析(2019年8月-9月)

2019年8月1日至9月15日,湖北平均雨量为近53年来同期最少,仅69.4毫米。尤其是中东部地区降水异常偏少,一个半月里大多数地方的累计降水量均不足70毫米,其中洪湖、英山降水仅4毫米。鄂西东部一直到鄂东地区的降水量均比常年同期偏少…

IP协议相关特性

日升时奋斗,日落时自省 目录 1、地址管理 1.1、子网掩码 2、路由选择 针对网络层的IP协议理解 TCP/IP协议栈TCPIP 此处详细解析IPv4协议(v4版本) 4位版本:此处的取值只有两个v4 ,v6 4位首部长度 :描…

【WPF】WindowChrome 自定义窗口完美实现

WindowChrome 自定义窗口完美实现简介效果图自定义最小化、最大化、关闭按钮布局实现结语简介 Microsoft官网关于 WindowChome 的介绍 截取Microsoft文章的一段话:   若要在保留其标准功能时自定义窗口,可以使用该 WindowChrome 类。 该 WindowChrome…

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序) 目录 多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)预测结果评价指标基本介绍程序设计参考资料预测结果 评价指标 训练结束: 已完成最大轮…

新建一个完整的react项目和完善初始项目

一:新建一个完整的react项目 1.环境准备 目前我的环境是 node:16.17.1 npm: 8.15.0 查看环境:1):打开命令提示符工具,利用node -v和npm -v 查看一下自己的环境,如果觉得重新卸载、安装node比较…

用记事本实现“HelloWorld”输出

一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意:文件命名必须与代码中类的名称相同…

为什么伟大的产品只专注做一件事

uber 不允许你预订出租车。亚马逊一开始只是卖书。谷歌只是一个搜索引擎。麦当劳没有餐具。不知为什么,我们仍然相信一个产品要想成功,它必须做很多事情。这通常发生在两种情况下:当新产品试图让市场相信它们是值得的,或者当公司提…

儿童蜡笔出口美国CPC认证CPSIA+ASTM963测试

蜡笔是将颜料掺在蜡里制成的笔,可有数十种颜色,画画用。蜡笔没有渗透性,是靠附着力固定在画面上,不适宜用过于光滑的纸、板,亦不能通过色彩的反复叠加求得复合色。它是儿童学习色彩画的理想工具,一些画家用…

【Spark分布式内存计算框架——Spark SQL】5. DataFrame(下)

3.3 Row DataFrame中每条数据封装在Row中,Row表示每行数据,具体哪些字段位置,获取DataFrame中第一条数据。 如何构建Row对象:要么是传递value,要么传递Seq,官方实例代码: import org.apache.…

百分点科技宣布接入百度文心一言能力

2月16日, 百分点科技宣布成为百度文心一言(英文名:ERNIE Bot)首批生态合作伙伴。后续,百分点科技将全面体验并接入文心一言的能力。百分点科技专注于数据科学理论和技术的创新实践,长期坚持基础技术和行业应…

初始QML

Qt Quick的介绍 : Qt Quick是QML的标准类型和功能库。它包括视觉类型,交互类型,动画,模型和视图,粒子效果和着色器效果。QML 应用程序开发人员可以通过单个导入语句访问所有这些功能,简单来说Qt Quick是一…

使用 Hashnode API、Typescript 和 GraphQL 将博客文章添加到您的 React 站点

在本文中,我们将:使用 Next.js 引导一个 React.js Typescript 项目。设置 Apollo GraphQL 客户端并将其集成到我们的项目中。设置 GraphQL Codegen 以生成我们可以在整个应用程序中使用的类型、类型安全查询和自定义挂钩。创建一个索引页面,其…

Failed at the node-sass@4.14.1 postinstall script

vue项目启动,安装node14.18.0版本,构建时报错: Failed at the node-sass4.14.1 postinstall script 其实在构建过程中,还出现了其他组件的各种报错,最后反思了一下,觉得是nodeJs的版本问题,最…

BIM技巧 | Revit中如何给房间填充颜色?就5步

大家在Revit平面创建好房间后,有没有觉得各房间因为没有着色而区分不明显、视觉效果一般呢? 一、今天就教给大家如何给房间填充上颜色。 01 第一步 首先,将各个房间创建好; 02 第二步 在【建筑】-【房间和面积】单击下拉菜单…

深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy

前言 vue2.x中数据的双向绑定主要通过Object.defineproperty()方法实现,data中的数据改变通过Object.defineProperty()对属性设置set属性,获取通过get属性,Object.defineProperty的作用就是劫持一个对象的属性,通常我们对属性的getter和sett…

魔兽世界私服架设教程——如何搭建魔兽世界私服

TrinityCore是一个魔兽世界服务端模拟器,我们可以通过TrinityCore来学习大型网络游戏服务端的编写,从中汲取营养来编写我们自己的游戏。一、前期准备工作CPU需要支持SSE2指令集Boost版本大于等于1.59.0MySQL数据库版本大于等于5.1.0OpenSSL版本为1.0.xCM…

基于机器学习LSTM的古代汉语切分标注算法及语料库研究 完整代码+数据+论文

完整代码:https://download.csdn.net/download/qq_38735017/87382302摘 要近年来,深度学习的浪潮渗透在科研和生活领域的方方面面,本文主要研究深度学习在自然语言处理,尤其是古汉语自然语言处理方面的应用。本文旨在利用计算机帮…