【网安】內存马

概述:什么是内存马?

相关参考

简述

webshell 技术历程

在 Web 安全领域,WebShell 一直是一个非常重要且热门的话题。在目前传统安全领域, WebShell 根据功能的不同分为三种类型,分别是:一句话木马、小马,大马。二根据现在防火墙技术的更新迭代,随后出现了加密的木马技术,比如:加密一句话。最新的技术是使用无文件的 WebShell 类型:内存马。

一句话木马:通常指的是一段简短的代码,可以嵌入到网页或脚本中,用户一旦访问或执行,就会触发恶意行为,如远程控制、数据窃取等。

  • 代码短,只有一行代码
  • 使用场景大,可单独生成文件可插入文件
  • 安全性高,隐匿性强,可变形免杀
  • 框架不便,数据执行(数据传递)

小马:指的是较小的恶意程序,通常用于初步入侵系统,执行简单的命令,如创建后门、收集信息等,为后续的大马植入做准备。

  • 体积小,功能少
  • 只有一个上传功能

大马:指的是功能更全面、复杂的恶意程序,能够进行高级的恶意操作,如完全控制受害系统、进行数据破坏、横向移动等。

  • 体积大,功能全
  • 会调用系统的关键函数
  • 以代码加密进行隐藏

为什么会使用内存马

传统 WebShell 的连接方式,都是先通过某种漏洞将恶意的脚本木马文件上传,然后通过 WebShell 管理软件(中国猜到、蚁剑、冰蝎)进行链接。

这种方式目前仍然流行,但是由于近几年防火墙,IDS、IPS、流量分析等各种安全设备的普及和更新,这种连接方式非常容易被设备捕获拦截,而且由于文件是明文存放在服务器端,所以又很容易被杀毒软件所查杀。在今天看来这种传统连接方式已经过时,于是乎,进化了一系列的加密一句话木马,但是这种方式还是不能绕过有类似文件监控的杀毒软件,于是乎又进化了新一代的 WebShell——内存马。

内存马

内存马,也被称为无文件马,是一种无文件攻击的技术手段。

**表现:**它主要通过在系统内存中远程加载执行、驻留在注册表中或滥用常用的白名单工具来实现攻击,从而躲避传统安全软件的检测。

**行为:**内存马允许攻击者访问系统,进而启用后续的恶意活动,如破坏系统、提升特权或在网络上横向传播恶意代码。

**特征:**执行后不会留下任何痕迹,这使得内存马难以被检测和清楚。

内存马的类型

内存马的类型主要有以下几种:

Servlet-API 型

通过动态注册新的 listener、filter 或 servlet 来实现命令执行等功能。特定框架、容器的内存马原理与此类似,例如 Spring 的 Controller 内存马,Tomcat 的 valve 内存马。

字节码增强型

通过 Java 的 Instrumenmentation 动态修改已有代码,实现命令执行等功能。

内存马的主要特点

无逻辑结构边界,难以被发现

内存马仅存在于进程的内存空间中,通常与正常的代码、数据混淆。

缺乏稳定的静态特征,难以被识别

内存马缺乏结构化的静态形式,它依附于进程运行期间的输入数据,数据可能被加密混淆,因此无法通过内存马本身的特征识别。

种类多,检测机制复杂而多样

内存马有二进制代码片段(Shellcode)、PowerShell脚本、Web中间件等类型,每种类型又可细分,不同类型内存马的执行方式、恶意代码触发机制各不相同,导致检测方式多样。


【网安】內存马
https://hodlyounger.github.io/2024/12/25/wiki/安全/【网安】內存马/
作者
mingming
发布于
2024年12月25日
许可协议