码迷,mamicode.com
首页 > 其他好文 > 详细

将无文件攻击分解为4种基本技术

时间:2020-12-22 12:15:37      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:doc   dos   apt   了解   run   vbscrip   事务   exchange   code   

我们如何将关于无文件攻击的模糊概念的讨论转变为建设性的特定对话?

安全性话语中的“无文件攻击”这个短语的存在表明了这类威胁的重要性。该术语源于讨论避免通过在磁盘上放置恶意文件来逃避检测的策略的需要。但是,为了应对无文件攻击的挑战,我们需要消除此术语的歧义,以了解其涵盖的各种技术,以便我们可以认识到它如何影响特定的环境和防御。

无文件攻击采用了多种策略,尽管存在反恶意软件控件(例如防病毒和应用程序白名单),攻击者仍可以通过这些策略来攻击端点。以下概述了此类攻击所涉及的方法,旨在为讨论无文件威胁带来清晰性和特异性。让我们研究一下构成无文件攻击的特定技术,以及为什么现有防御通常无法检测到它们。

技术#1:恶意文档

许多专业人士将其归类为无文件攻击,通常涉及文档文件。在这种情况下,对手出于以下目的之一提供恶意文档(通常作为电子邮件附件):

  • 文档可以充当其他文件的灵活容器。例如,攻击者可以将JavaScript文件嵌入Microsoft Office文档中,并对接收者进行社交工程,以双击嵌入的文件来执行脚本。可以携带文件的其他文档类型包括PDF和RTF。由于此功能是各个应用程序的功能,因此反恶意软件技术通常不会干扰其使用。
  • 文档可以带有执行恶意代码的漏洞。当今文档功能的复杂性为利用漏洞(例如解析错误)提供了广阔的攻击面。在这种情况下,漏洞利用可以触发受感染应用程序的内存中捆绑的shellcode的执行,即使没有将代码保存到文件系统,攻击者也可以在端点上立足。
  • 文档可以执行开始感染的恶意逻辑。现代文档支持强大的脚本功能,例如Microsoft Office执行VBA宏的功能。此类功能使攻击者无需编译的可执行文件即可实施恶意逻辑,从而利用了许多反恶意软件工具在区分恶意脚本和良性脚本方面的弱点。文档脚本功能包括启动程序和下载恶意代码。

尽管文档位于端点的文件系统上,但它们为对手提供了避免将传统的恶意可执行文件放置在磁盘上的机会。在许多情况下,作为无文件感染的一部分,文档直接导致在端点的内存中执行恶意代码。有关攻击者如何使用文档发起攻击的示例,请参阅Omri Moyal关于滥用Microsoft Office支持DDE的文章对于另一种情况,请查看有关攻击者将自己插入对话以传播恶意软件的帖子

技术#2:恶意脚本

与避免将恶意代码编译成传统可执行文件的目标一致,恶意软件作者在具有无文件属性的攻击期间依赖脚本。如上所述,除了文档本身支持的脚本之外,直接在Microsoft Windows上运行的脚本还为对手提供了以下优势:

  • 它们可以与OS进行交互,而不受某些应用程序(例如Web浏览器)可能施加在脚本上的限制。
  • 反恶意软件供应商比编译的恶意可执行文件更难检测和控制它们。
  • 它们提供了灵活的机会,可以将恶意逻辑分散到多个进程中,以逃避行为检测。
  • 它们可能会被混淆,以减慢分析人员的速度,并进一步逃避反恶意软件技术的检测。

Microsoft Windows包括用于PowerShell,VBScript,批处理文件和JavaScript的脚本解释器。攻击者为运行这些脚本而调用的工具包括powershell.exe,cscript.exe,cmd.exe和mshta.exe。通过增加适用于Linux的Windows子系统,Microsoft在端点上提供了更多脚本技术。有关企业限制滥用这些工具所面临挑战的示例,请参阅Gal Bitensky的帖子,其中讨论了Invoke-NoShell实用程序

攻击者可以使用混淆脚本的框架,而无需自己实施这种逃避策略。这些措施包括Daniel Bohannon针对PowerShellInvoke-ObfuscationInvoke-DOSfuscation框架。要查看实际行动中的此类策略,请查看密涅瓦对Emotet的脚本混淆的分析

技术三:与本地程序交互

关于无文件攻击的讨论通常包括滥用Microsoft Windows内置的众多实用程序。这些工具使攻击者可以从攻击的一个阶段跳到另一个阶段,而无需依赖已编译的恶意可执行文件。这种操作方式有时称为“搬离土地”。

一旦攻击者的恶意代码可以与本地程序进行交互(可能通过使用文档开始感染),攻击者就可以滥用操作系统内置的实用程序来下载其他恶意工件,启动程序和脚本,窃取数据,横向移动,保持持久性,和更多。攻击者为此目的而调用的许多工具包括regsvr32.exe,rundll32.exe,certutil.exe和schtasks.exe。有关攻击者以这种方式滥用的内置二进制文件,库和脚本的完整列表和说明,请参阅Oddvar Moe的LOLBAS项目

操作系统内置的Windows Management Instrumentation(WMI)为攻击者提供了额外的生存机会。WMI允许对手借助wmic.exe可执行文件(和一些其他功能)以及使用脚本(例如PowerShell)与端点的大多数方面进行交互。由于这些操作仅涉及受信任的内置Windows功能,因此反恶意软件技术很难检测和限制它们。有关WMI如何协助无文件攻击的全面说明,请参见Matt Graeber的论文“滥用WMI构建持久,异步和无文件后门”

攻击者依靠这种良性和受信任的实用程序,大大增加了逃避包括反病毒和应用程序白名单措施在内的反恶意软件工具的机会。有关此类技术的其他示例,请参阅Matthew Dunwoody对APT29使用WMI和PowerShell植入无文件后门程序的概述

技术#4:内存中的恶意代码

尽管检查磁盘上的文件是许多反恶意软件产品的强项,但它们常常与仅驻留在内存中的恶意代码作斗争。内存是易变的和动态的,使恶意软件有机会改变其形状或以其他方式在防病毒和类似技术的盲点运行。

一旦攻击者开始在端点上执行恶意代码(可能使用上述方法),攻击者就可以将恶意软件解压缩到内存中,而无需将工件保存到文件系统中。这可能涉及将代码提取到进程自己的内存空间中。在其他情况下,恶意软件会将代码注入受信任的流程,否则会将其注入良性流程。

内存中攻击技术的示例包括:

  • 内存注入利用Microsoft Windows的功能与操作系统进行交互,而不会利用漏洞。例如,经常被恶意软件滥用以进行注入的API调用包括VirtualAllocEx和WriteProcessMemory,它们允许一个进程将代码写入另一个进程。要了解这些技巧的实际效果,请阅读Gal Bitensky对AZORult攻击概述
  • 攻击者可以将编译后的可执行文件包装到脚本中,这些脚本在运行时将恶意负载提取到内存中。此类工具箱的一个示例是PowerSploit,您可以通过阅读Asaf Aprozper和Gal Bitensky的GhostMiner分析来查看实际情况。Chris Truncer的Veil框架是另一个示例。
  • ProcessDoppelg?nging是避免传统意义上不涉及内存注入的文件系统的一种方法示例相反,攻击者滥用Microsoft Windows内置的NTFS事务功能来临时修改内存中的受信任文件,而无需提交对磁盘的更改。如Anton Ivanov,Fedor Sinitsyn和Orkhan Mamedov所述,SynAck恶意软件使用了这种逃避技术。

内存中技术使攻击者可以绕过许多反恶意软件控制,包括应用程序白名单。尽管防病毒工具试图捕获内存注入,但对手感染端点的一致能力突出了它们的局限性。Asaf Aprozper的CoffeeShot工具通过在Java中实现注入方法演示了这种检测尝试的脆弱性。

技术图片

https://blog.minerva-labs.com/deconstructing-fileless-attacks-into-4-underlying-techniques

将无文件攻击分解为4种基本技术

标签:doc   dos   apt   了解   run   vbscrip   事务   exchange   code   

原文地址:https://www.cnblogs.com/mednspod/p/14149355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!