无文件恶意软件与驻留内存技术
分析基于 PowerShell 的恶意软件、进程注入和内存中执行等不会留下磁盘伪迹的技术。
无文件恶意软件与驻留内存技术 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
什么是无文件恶意软件
无文件恶意软件完全在内存中执行,不会将可执行文件写入磁盘。它会利用合法的操作系统工具、解释器环境(PowerShell、WScript)和内存注入来运行,同时只留下极少量取证痕迹,使传统 AV 和基于文件的扫描难以检测。
基于 PowerShell 的攻击
PowerShell 支持下载并执行的攻击模式:IEX(调用表达式)可以直接从互联网下载并运行脚本,而无需接触磁盘。混淆技术(字符替换、Base64 编码、字符串拼接)可以绕过针对恶意脚本内容的基于特征码的检测。
# Example obfuscation pattern (for awareness)
# IEX (New-Object Net.WebClient).DownloadString(url)
# Often base64-encoded to evade detection借地生存二进制文件
借地生存二进制文件是可以被武器化的合法操作系统二进制文件:certutil.exe(下载文件)、mshta.exe(执行 HTA 脚本)、regsvr32.exe(执行远程 COM 对象)、wmic.exe(执行命令)以及 PowerShell(几乎可以执行任何操作)。它们预装在系统中、带有签名,并且经常位于允许列表中。
进程注入技术
经典注入:VirtualAllocEx → WriteProcessMemory → CreateRemoteThread。进程空洞化:启动一个处于挂起状态的合法进程,取消映射其代码,然后替换为恶意代码。通过 SetWindowsHookEx 或 AppInit_DLLs 进行 DLL 注入。所有这些技术都会在受信任的进程内部运行恶意代码。
反射式 DLL 注入
反射式 DLL 注入可以从内存加载 DLL,而无需使用 Windows 加载器,也不会接触磁盘。该 DLL 包含自己的微型加载器,能够解析导入项并完成自身重定位。某些渗透测试工具会使用反射式加载,因此磁盘上不会留下 DLL 文件。
进程空洞化(RunPE)
进程空洞化会创建一个处于挂起状态的合法进程(svchost.exe),从内存中取消映射其原始可执行文件,将恶意可执行文件映射到相同的地址空间,然后恢复执行。该进程在任务管理器中看起来合法,但实际运行的是恶意代码。
AMSI 绕过技术
微软的反恶意软件扫描接口(AMSI)会拦截 PowerShell 脚本,供 AV 扫描。攻击者可以通过在内存中修改 AmsiScanBuffer(),使其始终返回未发现威胁的结果,或者将脚本混淆到低于 AMSI 检测阈值,从而绕过 AMSI。AMSI 修改本身可以被 EDR 检测。
检测:行为分析
无文件恶意软件不是通过文件是否存在来检测,而是通过行为来检测:PowerShell 创建网络连接,Office 应用程序生成异常子进程,存在具有可执行权限但没有对应文件的内存区域(可疑内存查找),以及借地生存二进制文件的命令行参数包含编码内容。
基于 ETW 的检测
Windows 事件跟踪(ETW)可以为 EDR 平台提供丰富的遥测数据:脚本块日志记录会捕获解码后的 PowerShell 内容,模块日志记录会记录已加载的 DLL,进程创建事件会包含完整命令行,网络连接事件也会被记录。恶意软件很难禁用 ETW 提供程序而不触发警报。
用于无文件检测的内存取证
内存取证工具可以识别可疑的可执行内存区域。进程内存中的字符串可能会暴露命令与控制网址或嵌入式脚本。进程空洞化会导致原始进程映像被取消映射,可以通过将进程内存映射与磁盘上的原始可执行文件进行比较来检测。
PowerShell 日志记录与受限语言模式
请启用 PowerShell 脚本块日志记录(事件 ID 4104)和模块日志记录,以捕获所有解码后的脚本内容。PowerShell 受限语言模式会限制危险操作。WDAC 应用程序允许列表可以阻止未经批准的借地生存二进制文件组合执行恶意脚本。
知识检查
为什么无文件恶意软件比传统恶意软件更难检测?
总结
无文件恶意软件会滥用 PowerShell、借地生存二进制文件和进程注入,完全在内存中执行。防御这类恶意软件需要启用脚本块日志记录,利用 EDR 平台开展行为分析,强制执行 AMSI,采用应用程序允许列表,并使用内存取证工具识别注入的代码。
常见问题解答
「无文件恶意软件与驻留内存技术」课时是免费的吗?
是的 — 「无文件恶意软件与驻留内存技术」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「无文件恶意软件与驻留内存技术」这节课中我会学到什么?
分析基于 PowerShell 的恶意软件、进程注入和内存中执行等不会留下磁盘伪迹的技术。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「无文件恶意软件与驻留内存技术」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- APT 生命周期:从初始访问到数据外泄
- 无文件恶意软件与驻留内存技术
- 基于 HTTPS 的 C2 与 DNS 隧道
- 威胁归因与活动追踪