检测和清除内存马
retransformClasses
https://mp.weixin.qq.com/s/Whta6akjaZamc3nOY1Tvxg
https://mp.weixin.qq.com/s/NPv4LzPe-QE-gk0DycN2ng
https://blog.csdn.net/weixin_42502366/article/details/112399229
https://gv7.me/articles/2020/kill-java-web-filter-memshell/
undefined.undefined
发现工具
sa-jdi.ja——dump class
arthas-boot.jar(安装需要联网,https://www.cnblogs.com/shihaiming/p/12945700.html不联网的使用方法)
cop.jar
VisualVM
直接清除工具
https://github.com/c0ny1/java-memshell-scanner
https://github.com/wuppp/releaseBehinderShell
https://github.com/LandGrey/copagent
本地搭建一个tomcat,使用gesila3.0上传一个内存马
java-memshell-scanner
进入服务器内部,可以看到使用find命令是查杀不到内存马的(那个ico是真的图标
使用java-memshell-scanner安装到ROOT文件夹下
此时我们的工具没有查到任何异常,emmmm尴尬了
使用哥斯拉2.96可以查杀出来存在
cop.jar
java -jar cop.jar 运行的一开始 让你选择进程,这里我们选择【6】——PID为26376
之后就卡住了,而且Tomcat进程也崩了,感觉不大好用。
VisualVM
下载地址,也在jdk 下的 bin\jvisualvm.exe里打开
http://visualvm.github.io/
https://visualvm.github.io/pluginscenters.html 手动下载地址
安装插件MBEANS
可以看到在这里已经找到了名为gesila2和gesila3的内存马,其中gesila2为2.96生成gesila3为3.0版本生成
此使只需要对比本地上的落地class文件和java文件即可确定是否为内存马
但是这里我们改用冰蝎马去进行内存注入,则没有发现出直接的命名内存,此外,发现注入的内存马页面为404,依旧可以进行连接(确认不是缓存),因此,冰蝎内存马可能更适合我们进行权限的维持,出现这个的原因是冰蝎做了一层响应(获取request,response,判断请求的url是否为内存马响应的url,如果是,则进入内存马执行的流程,如果不是则不响应)
sa-jdi.jar
sa-jdi.jar是HotSpot自带的底层调试支持,Serviceability Agent(sa简写)的实现
java -cp sa-jdi.jar sun.jvm.hotspot.HSDB 命令行启动
arthas工具
watch org.apache.catalina.core.ApplicationFilterFactorycreateFilterChain ‘returnObj.filters.{?#this!=null}.{filterClass}’
watchorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry getMappings “returnObj”
或者使用sc命令直接来对类进行查询