ServletListenerFilter内存马查杀手段一
💡
原文中文,约4100字,阅读约需10分钟。
📝
内容提要
本文介绍了如何从“防”的角度学习内存马的查杀,主要是通过已知的一些查杀工具学习别人的思路。介绍了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的目标类来判断内存马的查杀原理。
➡️