ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

内存马:藏在进程里的后门

内存马:藏在进程里的后门 内存马藏在进程里的后门前言传统恶意程序大多会落地文件到磁盘比如 exe、dll、脚本文件。杀毒软件、EDR 很容易通过扫描磁盘文件发现它。而内存马全程不在硬盘留下持久化文件代码直接注入到正常进程内存中运行像幽灵一样藏在合法进程体内隐蔽性极强也是红蓝对抗、内网渗透里最常使用的后门技术。本文从原理、分类、常见利用方式、检测思路几个维度讲解内存马适合安全初学者建立基础认知。免责声明本文内容仅用于网络安全学习、企业安全防御自查严禁用于未经授权的系统入侵、攻击行为任何非法操作带来的法律责任由操作者自行承担。一、什么是内存马内存马全称内存型木马核心特点恶意代码只存在进程内存不写入磁盘持久文件。普通木马流程恶意文件落地磁盘 → 执行 → 运行恶意逻辑磁盘上会留下样本杀毒扫描磁盘就能捕获。内存马流程利用漏洞/脚本加载 → 将恶意代码写入目标进程内存 → 在内存中执行磁盘没有对应的恶意文件常规静态查杀很难直接抓到样本。它寄生在系统正常进程中例如explorer.exe、svchost.exe、w3wp.exe、powershell.exe。任务管理器看起来进程完全正常但是进程内存里面已经被植入后门可以接收攻击者指令、执行命令、窃取数据、横向移动。一句话理解正常程序外壳没变但是内存里偷偷塞了后门代码。二、内存马的核心优势无文件落地规避静态查杀没有恶意文件写到硬盘传统基于磁盘文件扫描的杀毒引擎直接失效。寄生合法进程伪装性强依托系统自带进程运行进程名、签名都是微软官方很难一眼分辨异常。重启即消失大部分内存马属于非持久化服务器重启后进程销毁内存数据清空后门随之消失。这一点既是优点也是弱点攻击者想要长期控制需要搭配其他持久化手段。适配多种语言灵活多变支持 C/C 编写的原生 DLL 内存马也有 PowerShell、C#、Java、PHP 等脚本型内存马。三、内存马常见分类按照载体和运行环境常见分为这几类1. Windows 原生内存马DLL 注入类最经典的一类将 DLL 的二进制数据读入内存不把 dll 保存到硬盘直接调用 Windows 原生 APIVirtualAlloc、WriteProcessMemory、CreateRemoteThread等注入到其他进程。细分注入方式远程线程注入、APC 注入、反射注入、幽灵注入、Process Hollowing进程镂空。Process Hollowing 简单理解创建一个合法进程在进程初始化阶段清空原本内存替换成恶意代码进程对外名称不变内存内容被偷换。2. PowerShell 内存马内网渗透最常见利用 PowerShell 特性通过Invoke-Expression(IEX)直接在内存执行脚本。命令一般会 base64 编码混淆不会写脚本文件到本地。很多经典工具如 Cobalt Strike 的 powershell 加载器就是这个思路。弱点会留下 powershell 日志高级 EDR 会监控 powershell 行为。3. .NET 内存马C#利用.NET 的 Assembly 加载内存中加载程序集不需要把 exe/dll 保存到磁盘。常和 Sharp 系列工具搭配在内存执行 C# 后门。4. Web 内存马Java/PHPWeb 环境的内存马和主机内存马概念略有区别。比如 Java 内存马利用 Tomcat、Spring 等容器漏洞动态注册恶意 Filter/Listener/Servlet恶意类只存在 JVM 内存不写入磁盘服务器上找不到 jsp、class 恶意文件。PHP 内存马一般利用 PHP 的动态代码执行将后门代码驻留在 PHP 进程内存。这类内存马专门针对 Web 服务是 Web 渗透中高危攻击手段。四、攻击简易流程以 Windows 远程注入内存马举例攻击者拿到目标机器初始权限获取目标进程 PID如 explorer.exe在本机读取恶意 DLL 二进制不落地文件通过网络传输二进制数据调用 Win32 API在目标进程分配可执行内存将恶意 DLL 字节写入目标进程内存创建线程执行内存中的恶意代码内存马成功上线攻击者可以执行系统命令、读取文件。整个过程恶意 DLL 从来没有出现在目标机器磁盘。五、内存马的检测难点磁盘无恶意样本静态扫描无效进程名称、数字签名正常任务管理器肉眼看不出恶意代码在内存加密运行时解密静态 dump 也可能绕过很多注入 API 是系统原生合法 API正常软件也会调用很难一刀切拦截。六、内存马防御与检测思路1. 内存层面检测重点不能只扫硬盘要做进程内存扫描进程内存 dump对内存中的代码做特征匹配、行为分析监控异常 API 调用异常的 VirtualAlloc、WriteProcessMemory、远程线程创建检测内存中异常的可执行段标记内存中突然新增的可执行代码。2. 日志审计开启 PowerShell 详细日志、模块日志监控 IEX、base64 编码执行行为监控 wmi、schtasks、远程创建进程等高危行为Web 服务器监控 JVM、Tomcat 异常类加载行为防御 Java 内存马。3. EDR / 主机防护现代 EDR 核心能力之一就是内存行为检测可以识别异常注入、进程镂空、反射加载等内存马经典行为。传统杀毒软件在内存马场景下能力偏弱。4. 最小权限原则服务器、Web 容器账号尽量降权攻击者就算上传载荷也很难拿到足够权限去做进程注入。及时打系统漏洞、中间件漏洞从源头阻止攻击者获取初始权限。5. 应急排查小技巧排查异常进程查看进程内存模块、已加载模块列表排查可疑父进程、异常子进程关系排查是否存在未签名的内存模块。七、误区澄清❌ 内存马永久留在内存错误。绝大多数内存马是临时驻留机器重启、对应进程结束内存数据清空后门消失。攻击者想要持久控制必须额外配置持久化注册表、计划任务等。❌ 内存马无法被查杀错误。只是静态磁盘查杀无效。EDR、内存扫描工具、动态行为分析都可以捕获内存马。❌ 只有 Windows 才有内存马错误。Linux 下也有 LD_PRELOAD、ptrace 注入等内存型恶意代码Web 中间件 Java 内存马跨平台。八、总结内存马是攻防对抗中典型的无文件攻击技术它把战场从磁盘转移到进程内存利用合法进程和系统 API 隐藏恶意代码。它的核心不是多么高深的漏洞而是攻击思路的转变不落地文件直接在内存执行。对于防御方只依靠磁盘杀毒已经不足以抵御这类攻击必须转向动态行为监控、进程内存审计、API 行为监控。对于安全学习者理解内存马原理重点要吃透进程内存、Windows 注入原理、中间件代码执行机制同时守住底线只在自己授权环境做实验。网络安全的本质是攻防博弈技术本身无善恶但使用技术的人必须遵守法律法规。以上就是今天的分享觉得有帮助记得点赞收藏以上所说到的漏洞扫描工具都整理成压缩包了朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】同时还为准备学习网络安全黑客或者正在学习整理了一套360独家内部资料包含以下内容如有需要也可文末获取①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表