内存马初识

 · 2021-8-18 · 次阅读


0x00背景

Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。

内存马是无文件马,利用中间件的进程执行恶意代码,不会有文件落地,给检测带来巨大难度。

0x01内存马实现

以java为例,客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,只要在这个请求过程中做一些修改,在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode,就可以达成我们的目的。

cmd内存马利用:

image-20210819102020108

可以看到其实检测这种类型的内存马特别容易,因为直接都在get里面传递命令参数并且响应中出现回显。

问题延申

那这种比起webshell有什么优势呢?

很多时候,由于目录写入文件限制,一些终端管控设备等的限制,不知道网站的web绝对路径,导致落地webshell写不上去。这个时候直接写入内存的内存马就占了出来。

image-20210819104143419

内存马工具的疑惑?为什么要加上自定义的Header

filter是拦截器,他会根据每一个http上下文(resquest和response),去遍历的

添加了头才进入你注入的filter

不加自定义的Header呢?

可以使用访问固定的url:http://ip/fav.ico这种。

反正得选一个东西来让注入的filter知道拦截哪些请求