这些年无文件(Fileless)和不落地(Living off the Land)攻击已经很是流行,几乎成为攻击者的标配。理想的无文件攻击是只存在于内存中的后门,网络上有不少无文件攻击的验证性代码,好比最先的powershell downloadstring,远程文件是被当成字符串直接下载到powershell进程内存中执行,而后发展到利用mshta、rundll32等执行脚本的各类奇技淫巧,再到如今流行的各类.NET assembly托管代码注入技术,固然还有一些彻底脱离操做系统的高端无文件攻击。而微软有一个无文件攻击模型可以很是好的解析这些无文件攻击,我给你们作个简单的参考解读。java
攻击模型按磁盘文件的活动将攻击分红了3个类型shell
接着是颗粒度更细的分类描叙,是基于被攻击宿主**进行的分类windows
漏洞攻击,基于软件和操做系统安全漏洞的无文件攻击浏览器
各类各样的office、flash、java漏洞文件和浏览器漏洞,通常都是经过恶意文件触发漏洞使文件解析引擎、浏览器等执行恶意代码,经过shellcode直接在内存中执行恶意代码。安全
永恒之蓝是个好例子,直接经过网络协议的远程代码执行漏洞来执行恶意代码。网络
硬件攻击,脱离操做系统的无文件攻击less
经过网卡、磁盘固件执行恶意代码,经典的如方程式的KillSuit,基于硬盘固件、磁盘引导区执行恶意代码。ui
CPU本身自己也会有子系统,好比被白金改造的Intel cpu的主动管理技术(AMT)后门。操作系统
USB能够外接的设备类型不少,好比最多见的模拟键盘和网关的badusb设备。code
主板BIOS能植入恶意代码大伙也是耳熟能详了,象今年eset发现的LoJax Rootkit,经过改造 BIOS固件中的防盗功能植入的后门。
这是属于上帝视角的攻击了,虚拟机管理层执行恶意代码,已经脱离虚拟机操做系统以外了。
执行和注入,无文件攻击执行恶意代码的常见形式
从执行代码的角度看,这是无文件攻击最基础的执行向量,能够是可执行文件、dll、lnk快捷方式、计划任务等,它的攻击过程一般是将恶意代码远程注入到其余进程或加载到自身进程内存执行。
office文档相关的宏脚本,这是基于office文档类自身的脚本语言,在office进程中执行恶意代码。
基于js、vbs、powershell脚本执行恶意代码, 这个就再也不赘述了,大量的系统程序都有各类奇技淫巧能执行恶意脚本。
经过磁盘的引导记录执行恶意代码,恶意的mbr、vbr都在这一类里面。
以上就是这个攻击模型的大致状况,这个攻击模型将现代安全软件要应对的刁钻攻击展示得一览无遗。咱们能够看到微软在攻击模型和攻击知识库方面确实是业界标杆,我想不是一线技术专家,很难作出这样的攻击模型,一个安全产品所要经历攻防的点,是没有接触过攻防的人不可思议的。
参考: