这些年无文件(Fileless)和不落地(Living off the Land)攻击已经非常流行,几乎成为攻击者的标配。理想的无文件攻击是只存在于内存中的后门,网络上有很多无文件攻击的验证性代码,比如最早的powershell downloadstring,远程文件是被当成字符串直接下载到powershell进程内存中执行,然后发展到利用mshta、rundll32等执行脚本的各种奇技淫巧,再到现在流行的各种.NET assembly托管代码注入技术,当然还有一些完全脱离操作系统的高端无文件攻击。而微软有一个无文件攻击模型能够非常好的解析这些无文件攻击,我给大家做个简单的参考解读。
这个攻击模型按磁盘文件的活动将攻击分成了3个类型
- Type1,没有任何的文件活动。简单说就是攻击活动没有任何的磁盘文件落地和磁盘文件的操作行为,一般这种攻击的实施都脱离了操作系统,是由更上层的硬件固件和软件层发起的。
- Type2,没有磁盘落地文件,但通过文件间接活动,恶意代码一般通过白文件间接加载到内存中执行。这类攻击恶意代码的载体大多数都是脚本,通过程序命令执行,也有通过磁盘引导记录等特定机制的执行。
- Type3,需要操作文件进行活动。比较容易能理解的意思是恶意代码变成了数据,利用文件相关的程序漏洞或功能特性将恶意数据转换为恶意代码执行。
接着是颗粒度更细的分类描叙,是基于被攻击宿主进行