[防守视角] tomcat内存马的多种查杀方式
环境搭建
我在WINDOWS7虚拟机下搭建的Tomcat,搭建教程网上都有,点击startup.bat启动环境
注入内存马
这里使用了哥斯拉的内存马
查杀方式一:VISUALVM(远程调试)
设置jstatd.all.policy 文件
启动jstatd
jstatd.exe -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=serverip
设置JVM Connection 修改 catalina.sh文件(LINUX)
JAVA_OPTS="-Djava.rmi.server.hostname=服务器的ip
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=jmx使用的端口
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"
export JAVA_OPTS
修改catalina.bat文件(WINDOWS)
set JAVA_OPTS=-Djava.rmi.server.hostname=192.168.67.115 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
下载VisualVM
MBeans安装插件
连接远程Tomcat
检查异常攻击痕迹Filter/Servlet节点
在Servlet节点中我发现到了自己设置的内存马test.ico,说明已经检测到了内存马
查杀方式二:ARTHAS
arthas是Alibaba开源的Java诊断工具https://github.com/alibaba/arthas
下载
非常Nice的工具,深入用法请查看使用文档,这里只检测探测一下
启动(选择对应tocmat进程pid)
mbean(查看 Mbean 的信息,查看异常Filter/Servlet节点)
mbean | grep "Servlet"
sc (查看JVM已加载的类信息)
sc xxx.* 模糊搜索类
sc -d
查看payload加载的类信息
查看x.AES_BASE64类加载的类信息
jad(反编译指定已加载类的源码)
jad 类名
还有很多用法值得慢慢学习~
查杀方式三:COPAGENT
https://github.com/LandGrey/copagent
我本地运行Tomcat服务,使用cop.jar工具,工具首先会识别你正在运行的应用列举出来由你自己选择ID,运行后会在.copagent目录生成结果
在输出结果中,可以查看异常类,例如我的1.jsp
和X.AES_BASE64
,他会显示所有运行的类以及危险等级,比较高的可以进入目录查看代码进行分析
在java或class文件夹会保存木马以及运行的类
参考
https://mp.weixin.qq.com/s/DRbGeVOcJ8m9xo7Gin45kQ
https://qiita.com/shimizukawasaki/items/5dc9fe780ffbf3a7699c
分享、点赞、在看就是对我们的一种支持!