内存马原理 排查(listener、filter、servlet、agent型)

JAVA内存马排查

Java内存马,也称为Java远程代码执行漏洞,是一种利用Java反序列化漏洞的攻击方式。攻击者可以通过构造恶意的序列化对象,将其发送给目标服务器并触发反序列化操作,从而在目标服务器上执行任意代码。以下是几种排查Java内存马的方法:

追踪日志文件:如果系统已经被攻击,应该首先检查系统的日志文件,查找异常的请求或响应内容,并结合其他的信息确定是否存在Java内存马。

检查网络流量:可以使用Wireshark等网络抓包工具来监视服务器的网络流量,并分析报文中的数据内容,查找是否存在异常的Java序列化数据。

检查反序列化漏洞:Java内存马利用了Java反序列化漏洞,因此我们可以使用一些反序列化漏洞扫描工具(如 ysoserial)来检测系统是否受到这类漏洞的影响,并及时修补漏洞。

检查系统进程:Java内存马通常会在目标服务器上启动一个新的进程来执行恶意代码,因此可以通过检查系统进程列表,查找是否存在不明确的、异常的进程。

安装安全软件:为了更好地保障系统的安全性,可以安装一些专业的安全软件,如杀毒软件、入侵检测系统(IDS)等,并定期进行扫描和审计。

Java 内存马的原理

内存马是无文件 webshell 中最常见的攻击手段之一。其基本原理就是当客户端发起请求后,服务端中如 Listener、Filter、Servlet等组件会根据请求过程做如监听、过滤、处理等操作,内存马就是利用利用这个请求过程在内存中修改已有组件或者动态注册一个新的组件,插入恶意 shell 来达到控制服务器的目的。

内存马如何查杀

内存马的查杀的流程通常如下:

检查 web 日志,查看是否有可疑流量。

检查中间件日志与中间件版本,排查是否是中间件漏洞导致的内存马攻击。

检查其他流量日志。

内存马的流量特征主要有两点:

可能会有大量的 url 相同但 params 不同且响应 200 的请求(Java Filter 和 Listener 内存马)

可能会有类似于 webshell 流量特征,但返回 200 的 url 目录下无此文件

常用的内存马查杀工具:

arthas

java-memshell-scanner

FindShell

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...