secjia / MemShell

Tomcat的Filter型免杀内存马,主要思路是Bypass各种检查手段

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

免杀Tomcat Filter型内存马

介绍

实现了一种比较顽固的内存马:

  1. 随机给一个合理的filter名称
  2. 动态生成合理filter类名的字节码
  3. 将字节码写入classpath中合理的路径
  4. 自动给web.xml中加入合理的filter配置

理论上可以做到这样的效果:

如果防御人员对后端业务逻辑和代码没有比较深入的掌握,大概率无法查出内存马的,哪怕借助工具也很难查杀

使用

功能:

  1. JSP的触发方式:使用mem.jsp
  2. HelloServlet模拟了反序列化的触发方式
  3. 添加了c0ny1师傅的scan.jsp做检测

如何使用:

  1. 配置该项目为Tomcat项目并启动
  2. 访问/mem.jsp/hello-servlet即可注册免杀内存马
  3. 访问/scan.jsp查看检测结果

自定义

如何自定义合理的Filter名:

修改这里的数组

String[] nameArray = new String[]{"testFilter", "loginFilter", "coreFilter",
        "userFilter", "manageFilter", "shiroFilter", "indexFilter"};

会自动打乱遍历数组,判断Filter名是否重复,然后构造对应的类名和对应的字节码写入目标classpath

效果

看起来和真实的Filter没有区别,存在真正的class文件

web.xml配置文件中也真实存在

思考

一点思考:这种方式是否会导致内存马的持久化?因为字节码真实存在且web.xml也有配置

免责申明

未经授权许可使用本项目攻击目标是非法的

本程序应仅用于授权的安全测试与研究目的

About

Tomcat的Filter型免杀内存马,主要思路是Bypass各种检查手段


Languages

Language:Java 100.0%