ECSC课堂 | 3分钟 get 内存马查杀!

843 阅读2分钟

图片

常规的Webshell基于文件类形式存在,而内存马是一种无文件攻击手段,因此也被称为不落地马或者无文件马

图片

因为常规的Webshell有文件落地,所以被发现的机率较大。而内存马存在于内存中,降低被发现的概率,给检测带来巨大难度,通常被作为后门进行使用,持久化地驻留在目标服务器中。

1、内存马检测难点

内存马的类型众多

根据不同的脚本类型,存在各种触发机制不同的内存马,没有稳定的静态特征,易于混淆,常规的WAF安全产品难以检测。

image.png

各种类型的“马”

内存马的存在形式

内存马仅存在于进程的内存空间中,系统层面的安全检测工具无法检测出内存马。

2、Java Servlet 内存马

Java Servlet 内存马攻击原理

Java Servlet 的实现原理,如下图:

图片

客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,而内存马利用在请求过程中在内存中修改或动态注册新的组件,达到注入Webshell的目的。

Java Servlet 内存马检查方式

(1)使用工具Arthas发现内存马。 Arthas是一款开源的Java诊断工具,基本使用场景是定位复现一些生产环境比较难以定位问题。可以在线排查问题,以及动态追踪Java代码,实时监控JVM状态等等。

java -jar .\arthas-boot.jar   #java应用进程PID,如下图:

图片

输入Mbean 查看或监控 Mbean 的属性信息,根据哥斯拉内存马的特性,进行筛选出异常组件,如下图:

图片

(2)使用cop.jar工具提取Java内存马。 把工具放在网站根目录下,输入:java -jar cop.jar -p,如下图:

图片

(3)使用D盾工具对.copagent目录进行查杀,如下图:

图片

图片

除上述Java Servlet内存马的查杀方法外,如需了解更加全面的内存马查杀方法,以及更多的网络安全技术,可在欢迎持续关注安胜网络(ansheng47)~

更多推荐

ECSC课堂 | 应急响应之Linux主机排查(一)

ECSC课堂 | MySQL安全事件排查

ECSC课堂 | Apache安全事件排查