ServletListenerFilter内存马查杀手段一
内容提要
本文介绍了如何从“防”的角度学习内存马的查杀,主要是通过已知的一些查杀工具学习别人的思路。介绍了Memshell-scanner项目的主要思路和检测Servlet/Filter/Listener型内存马的方法,并对每种类型的内存马进行了相应的注入流程和检测思路的分析。总结了通过获取所有的servlet/Listener/Filter的目标类来判断内存马的查杀原理。
关键要点
-
文章从防的角度学习内存马的查杀,主要通过已知查杀工具的思路进行分析。
-
Memshell-scanner项目的主要思路是获取Tomcat下的所有Servlet/Filter/Listener,并判断其是否存在对应的class文件。
-
如果在classpath下没有对应的类文件,则判断其可能为内存马。
-
检测Servlet型内存马的方法包括获取StandardContext对象中的children属性和servletMappings属性。
-
通过遍历所有路由,获取servletPath、servletName等信息,判断类文件是否存在。
-
Filter型内存马的检测方法与Servlet类似,获取StandardContext对象中的filterConfigs和filterMaps属性。
-
遍历所有filter,获取filterName、filterClass等信息,判断类文件是否存在。
-
Listener型内存马的检测通过获取StandardContext对象中的applicationEventListenersList属性进行。
-
筛选出ServletRequestListener的实现类进行检测,避免检测不全。
-
Memshell-scanner项目还提供了servlet、filter、listener类的下载和查杀功能。
-
通过调用相应的API进行servlet和filter的删除,确保在查杀过程中移除所有添加的内容。
-
总结了通过获取所有servlet、Listener、Filter的目标类来判断内存马的查杀原理。