内存马的攻防博弈实操

一、概述

一文看懂内存马概述:内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多。
Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。

如何实现内存马注入

一文看懂内存马如何实现webshell内存马:目标:访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果
实现:以java为例,客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,我们只要在这个请求的过程中做手脚,在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode,就可以达到我们的目的。

tomcat环境部署内存马

内存马测试样例

利用IDEA或者xmapp搭建好tomcat环境,部署实现注入内存马jsp或者java文件,URL访问如下:

表示部署成功
访问http://localhost:8080/tomcat9test_war_exploded/?chan=ipconfig

内存马如何查杀

部署tomcat-memshell-scanner,部署成功后如图,kill后重新启动服务内存马即可删除,如果实战还需对部署内存🐎的java文件进行查杀,这就需要对内存马原理有一定了解,之后就是修复漏洞即可,漏洞原理参考几篇不错的文章

二、内存马原理

根据内存马注入的方式,大致可以将内存马划分为如下两类
1.servlet-api型
通过命令执行等方式动态注册一个新的listener、filter或者servlet,从而实现命令执行等功能。特定框架、容器的内存马原理与此类似,如spring的controller内存马,tomcat的valve内存马

2.字节码增强型
通过java的instrumentation动态修改已有代码,进而实现命令执行等功能。
一文读懂内存马
内存马的攻防博弈之旅

三、内存马流量分析

HTTP明文


websocket流量中看不到执行结果

posted @ 2022-11-02 16:53  renblog  阅读(932)  评论(0编辑  收藏  举报