与基于文件的攻击不同,无文件恶意软件不利用传统的可执行文件,而是通过滥用操作系统内置的工具来执行攻击。这从本质上来讲,Windows是一个矛盾体。如果没有可执行文件,防病毒软件就没有可检测的特征码,使得无文件攻击能够轻松地避开防病毒产品。无文件攻击使用离地攻击(Living-off-the-land)技术,攻击者通过合法工具进行恶意活动。而被滥用的、合法的工具被称为LOLBins(离地攻击二进制文件),可以包括Microsoft Office宏、PowerShell、WMI等系统工具。1. 无文件恶意软件是如何工作的
无文件恶意软件利用运行在操作系统上的可信合法进程(LOLBins)来执行恶意活动,如横向移动、权限提升、规避、侦察和传递Payload。仅2019年,就检测到许多攻击者在使用一系列默认Windows进程进行无文件攻击的案例,包括。PowerShell:OperationCobalt Kitty,Ramnit银行木马,TripleThreat of Emotet,rickBot,Ryuk,Fallout Exploit Kit。WindowsManagementInstrumentation(WMI):Operation Soft Cell,Shade Exploit Kit,Adobe Worm Faker,GandCrabs Evasive Infection Chain。注:上述进程并不是用于无文件攻击的详尽列表,而是我们可以有效阻止无文件攻击的LOLBins。2. 攻击中使用无文件恶意软件的原因
隐蔽性:无文件恶意软件使用合法的工具,意味着我们几乎不可能禁用无文件攻击中使用的工具。离地性:用于无文件恶意软件的合法工具是默认安装的,攻击者不需要创建或安装任何自定义工具即可使用它们。可信且日常:这些工具经常被使用和信任,在企业环境中被用于合法目的的无文件恶意软件工具并不罕见。3. 无文件恶意软件利用的LOLBINS
有约100多个Windows系统工具可以作为LOLBins来利用和滥用。
3.1 POWERSHELL
PowerShell是由微软创建的一个跨平台、开源的任务自动化和配置管理框架。基于.NET的PowerShell框架由命令行shell和脚本语言组成。PowerShell有对许多Windows系统功能的完全访问权限,包括WMI、组件对象模型(COM)对象,以及Microsoft Exchange server和其他服务器的管理功能。此外,它能够直接从内存执行Payload,这使得攻击者能够利用它来处理无文件恶意软件。为什么使用POWERSHELL进行无文件攻击?
PowerShell使攻击者能够快速访问操作系统的系统功能,并被视为合法、可信的工具。攻击者使用PowerShell进行无文件攻击的原因主要包括:默认安装:在Windows上默认安装PowerShell。可信且日常:系统管理员经常使用和信任PowerShell,在企业环境中PowerShell进程并不罕见。易混淆:PowerShell脚本很容易混淆,并且难使用安全工具进行检测。提供远程访问:PowerShell默认具有远程访问功能,攻击者可以远程使用它。哪些攻击使用了POWERSHELL?
Operation Cobalt Kitty(2017年):在一场针对亚洲企业的大规模活动中,攻击者使用基于无文件的PowerShell基础设施和自定义Payload,窃取专有业务信息。Ramnit银行木马(2019年):攻击者从远程服务器执行PowerShell命令,最终会过滤包括银行凭据在内的敏感数据。针对日本的新Ursnif变种(2019年):此变种使用PowerShell的无文件技术来检查目标计算机上的语言设置,PowerShell命令由利用.NET Framework的恶意宏执行。此攻击特别是针对银行客户窃取邮件客户端的数据和浏览器中存储的电子邮件凭据。三重威胁(2019年):Emotet部署TrickBot窃取数据并传播Ryuk:变种使用恶意宏来执行下载Emotet的PowerShell命令。这一攻击不仅过滤了一系列敏感数据,而且还传播了Ryuk勒索软件,造成进一步的损害。Fallout Exploit Kit(2019年):攻击使用PowerShell执行最终的信息窃取器AZORult。通过PowerShell绕过Windows中的反恶意软件扫描接口保护机制,InfoStealer过滤个人数据,如比特币、敏感文件、登录数据等。Sodinokibi(2019年):新型勒索软件Sodinokibi使用PowerShell和.NET加载和执行恶意软件。此攻击用于部署勒索软件,可能会对组织和个人造成严重损害。3.2 WINDOWSMANAGEMENT INSTRUMENTATION(WMI)
Windows Management Instrumentation(WMI)是用于访问企业环境中设备管理信息的Microsoft标准。自从WindowsNT4.0和Windows95以来,WMI已经在Windows操作系统中根深蒂固。为什么使用WMI进行无文件攻击?
WMI最早、最主流的恶意用途是在Stuxnet中,被攻击者经常用于侦察、检测防病毒软件、执行代码、检测虚拟机、横向移动、维持持久性和窃取数据。攻击者使用WMI攻击的原因主要包括:可信且日常:系统管理员经常使用和信任WMI。在企业环境中使用WMI并不罕见。作为System运行:任何永久性的WMI事件订阅都作为System运行,使它们更可靠。易触发:几乎每个操作系统的操作都可以触发一个WMI事件,这使得它非常容易与操作系统操作一起使用。哪些攻击使用WMI?
GandCrab’s Evasive Infection Chain(2019年):此攻击使用恶意宏作为触发器解密Payload,并使用WMI对象设置环境变量。GandCrab勒索软件是全球40%勒索感染的罪魁祸首。Adobe Worm Faker(2019年):该攻击使用WMI方法收集有关目标计算机的信息及现有AV产品信息。此攻击的主要目标是过滤客户信息,如财务数据和密码。Operation Soft Cell(2019年):攻击使用WMI命令在网络中横向移动,该攻击过滤了电信提供商多年的通话记录等数据后才被发现。Exploit Kits(2019年):攻击使用WMI成功执行其Payload,被用于点击欺诈,这与勒索软件的根源有所不同。3.3 .NET框架
.NET是一个开源框架,由Microsoft开发。它有两个主要组件供开发人员一起使用来创建应用程序:公共语言运行库和.NETFramework类库。.NET于2000年底首次发布beta版起,不仅作为一个框架,还作为一个开放源代码开发平台构建web、移动和桌面应用程序,以及更具体的应用程序模型。
为什么使用.NET进行无文件攻击?
.NET应用程序可以在多种平台和体系结构上运行。攻击者使用.NET进行无文件攻击的原因主要包括:可信及日常:.NET用于许多受信任和经常使用的应用程序,从日常操作中删除它并不容易。节省时间:.NET使许多普通任务变得更容易执行,该框架有成千上万个攻击者可以用来与系统交互的函数。易于实现:.NET易于使用,有大量的文档可供开发人员构建合法的应用程序,攻击者也可以利用这些信息达到自己的目的。
哪些攻击使用.NET?
3.4 宏
在Microsoft Office中,宏用于自动执行频繁的任务。它们通常在Word文档或Excel电子表格中创建,作为一系列命令组合在一起以自动完成任务。
为什么使用宏进行无文件攻击?
使用宏进行无文件攻击非常方便,因为它们可以很容易地与网络钓鱼和社会工程学相结合来欺骗用户。在企业中,接收Microsoft Word或Excel文档是很常见的事情。大多数人会毫不犹豫地打开公司或潜在客户的Word、Excel文档。恶意宏还可以执行各种任务,包括运行PowerShell实例执行各种任务,包括下载恶意Payload。攻击者使用宏进行无文件攻击的原因主要包括:默认安装:Microsoft Office在默认情况下可以使用宏。但是,默认情况下不会启用宏。受信且日常:企业经常使用和信任Microsoft Office。在企业环境中接收Microsoft Word、Excel文档并不罕见。易于实现:关于如何编写宏有太多可用的文档,任何人(无论技术背景如何)都可使用它们。与操作系统无关:宏是在特定的应用程序中实现的,通常是Microsoft Word、Excel,这意味着宏在很大程度上与操作系统无关,并且会感染运行任何操作系统的计算机。
哪些攻击使用宏?
GandCrab’s Evasive Infection Chain(2019年)TA505 Targets Financial Enterprises(2019年):此变体使用恶意宏执行Windows进程以连接到远程C&C服务器。这一攻击为系统设置了一个后门,用来悄悄地过滤尽可能多的数据。4. 为什么检测和预防无文件恶意软件具有挑战性
无文件恶意软件依赖于作为企业专业人员日常工作流程一部分的工具,这些工具对企业的日常运营至关重要。无文件恶意软件还会减少磁盘上的文件数量,意味着基于签名的预防和检测方法将无法识别这些文件,分析员或安全产品很难确定该工具是用于恶意目的还是正常的日常操作,必须对环境有深入的了解,才能识别出LOLBins。本文由金睛安全研究团队整理并翻译,不代表金睛安全研究团队任何观点和立场。来源:https://www.cybereason.com/blog/fileless-malware