导语:以前查木马靠扫文件,可现在的攻击者学聪明了——干脆不落地文件。用 PowerShell、Office 宏、内存注入来干活,全程磁盘上找不到任何可疑文件。杀软扫了个寂寞,攻击早就完成了。这就是无文件攻击(Fileless Attack),现代攻击的主流手法之一。
一、为什么无文件攻击能绕过传统杀软
四个特点决定了它天生对"文件特征"免疫:
不落地文件:恶意逻辑直接在内存里跑,磁盘上无文件可扫;
借用合法程序:PowerShell、WMI、rundll32 都是系统自带、白名单级别的工具;
行为隐蔽:单条执行命令看起来和运维人员的日常操作无异;
持久化多样:通过注册表 Run 键、WMI 事件订阅、计划任务等自启,不留可执行文件。
只要防护引擎还在以"文件哈希 / 特征码"为核心,这类攻击就基本是隐身的。
startupdefense.io
+1
二、什么是「终端无文件攻击拦截链」
对付无文件攻击,思路必须反转:不看文件,看行为。完整的拦截链由四环组成:
脚本管控——收紧脚本执行入口,从源头减少恶意脚本被跑起来的机会;
内存行为监控——盯住进程注入、反射式加载(Reflective Loading)、空进程替换等典型内存动作;
调用链阻断——识别"Office 启动 PowerShell 下载执行"这类异常父子关系并当场掐断;
取证留痕——保留完整行为链,为事后溯源与跨设备关联提供证据。
四环相扣,形成从入口到执行的完整防线。
securityscientist.net
三、四环怎么落地
落到工程实践,每一环都有对应的技术抓手:
脚本环:启用 PowerShell 约束语言模式、脚本块日志(ScriptBlock Logging)与 AMSI 接口,禁用未签名脚本与高风险 Office 宏,对 wscript/cscript 等脚本宿主做白名单;
内存环:监控 WriteProcessMemory、CreateRemoteThread、NtMapViewOfSection 等敏感 API 的跨进程调用,比对内存中的 PE 头与磁盘映像是否一致,识别 hollowing;
调用链环:以"父进程 → 子进程 → 行为"为单位做判定,例如 WINWORD.EXE 直接派生 powershell.exe 并出现外联,即便命令行看似正常也应当作可疑链处理;
取证环:留存完整的命令行、内存操作、网络连接、注册表与计划任务变更记录,并具备跨设备关联能力,把分散在多台主机上的同源攻击线索串起来。
四、构建行为基线的通用思路
不依赖某一款具体产品,企业可以按以下清单组合能力,搭建自己的拦截链:
终端侧遥测采集:通过 Sysmon、ETW(Event Tracing for Windows)等系统级机制,采集进程创建、命令行参数、网络连接、镜像加载、注册表修改等事件;
脚本与宏治理:结合组策略(GPO)或终端管理平台,统一收紧 PowerShell 执行策略、Office 宏默认值与脚本宿主权限;
行为规则与威胁情报:将"父-子进程异常组合"“敏感 API 调用序列”"可疑命令行特征"固化为告警规则,并对接 MITRE ATT&CK 映射做覆盖度评估;
日志汇聚与关联分析:把终端事件统一汇入 SIEM/日志平台,做时间线还原与跨设备同源追踪,弥补单机视角的盲区;
响应闭环:为高危调用链配置自动化处置动作——隔离进程、断开网络、回滚持久化项——做到告警即可处置。
这套思路对上云、混合办公环境同样适用,关键在于遥测的完整性和调用链分析能力,而非依赖某个特定工具。
结语
攻击者不落地文件,防守者就不能只盯着文件。无文件攻击拦截链把防护重心从「文件特征」转向「行为链条」——从脚本入口、内存动作到调用关系、取证留痕,环环相扣。这才是防住现代攻击的正确姿势。
10个来源