什么是无文件攻击

7 月 21, 2023 技术分享

背景

无文件攻击是一种通过滥用操作系统内置工具,完全在进程内存中执行恶意代码的技术,攻击者不会向文件系统中写入任何文件。

由于文件系统中没有任何可供检测的文件数据,所以,这种攻击方式在原理上可以完全绕过基于病毒文件特征库、沙箱和使用云查杀的网络安全产品。

无文件攻击场景

1.初始访问

在最初,攻击者可能会使用我们其他文章中介绍过的任何漏洞对目标系统进行攻击,获取系统的初始入口点。漏洞类型包括但不限于文件包含、代码执行和反序列化漏洞。
攻击者在这个阶段可能没有进行任何文件的写入。

2.执行

随后,攻击者会通过入口点进行恶意代码执行,例如:使用 PowerShell 或 Cmd 执行恶意代码、植入无文件内存 WebShell、使用 whoami 或 ipconfig 等命令收集系统信息等。
这些操作同样不会有任何的文件写入行为。

3.持久化

攻击者可能会使用镜像劫持、创建系统启动项、创建系统服务等方式,使得自己的恶意代码可以长期保留在目标系统中,并伺机执行。
大部分持久化技术都不需要写入任何可疑文件,而且他们是正常的系统功能,杀毒软件也无法进行检测。

4.特权提升

当攻击者已经可以在系统中执行恶意代码后,在权限不足的情况下,攻击者也有可能会通过在内存 ShellCode 或内存模块执行特权提升程序,例如 GodPotato 和其他提权技术。
ShellCode 和其他内存模块执行的方式本身就是无文件攻击技术。

5.防御绕过

通过在内存中执行系统功能,破坏或禁用反病毒程序,使其无法正常检测恶意文件。
这样可以更加肆无忌惮的通过无文件攻击在目标系统上活动。

6.凭据窃取

随着攻击技术的普及,在内存中执行 Mimikatz 和其他密码转储程序对攻击者而言,早已成为家常便饭。
在这个过程中,老练的攻击者通常没有任何文件写入操作。

7.横向移动

使用偷来的账号和密码,攻击者通常会使用 SmbExec、WmiExec 和 PsExec 等工具,通过滥用其他系统上运行在 445 或 135 端口上的正常服务,控制更多系统,实现内网横向移动。
这些远程执行方式是 Windows 自带的管理工具接口,不需要向目标系统写入任何文件也可以完全的控制目标系统。

8.重复 1-7

循环上面的这些步骤,
攻击者可以通过无文件攻击技术完全控制内部网络,且不会被反病毒程序发现。

如何检测无文件攻击

对于无文件攻击而言,使用任何反病毒软件都是毫无意义的,我们应该抛弃过时的基于病毒特征库的检测技术,从攻击指标(IOA)中寻找有效方案。

IOA 是一种可以主动对无文件攻击进行防御的方法,IOA 可以通过行为分析,关联行为序列,寻找可疑的无文件攻击行为;IOA 也更加侧重于找出那些 刻意隐藏自己攻击意图 的人,例如添加不必要的代码混淆、执行看似花哨而实则无用的命令。

程序是否有害,是否使用了某种特定的技术甚至是零日漏洞利用,这些都不重要。最重要的是识别出攻击者正在做的事情是什么,意欲何为,只要识别出了有害意图,无论怎样躲避都是徒劳的。

复杂之眼如何防御无文件攻击

通过对超万亿级别的行为分析,复杂之眼建立了针对各种终端场景下的 行为基线,可以识别到与正常操作有细微差别的可疑行为,这也被称为 行为偏差检测

在实战场景中,复杂之眼对于攻击者常用的 WmiExec、SmbExec 和 PsExec 等操作均可以进行灵敏检测,对于这些攻击可能延伸出的异常行为,复杂之眼均可以进行自动阻断,抵御基于无文件攻击的横向移动和内存执行操作。


复杂之眼 EDR 是新一代 EDR/DLP/XDR 融合解决方案,点击下方链接,申请 14 天免费试用:

https://www.mistiny.com/index.php/trial-submit/