0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[防守视角]tomcat内存马的查杀

Posted at

前言

随着近几年国内关于攻防比赛、HW的重视度越来越高,攻击队的权限维持手段越来越高明.从一开始的文件落地webshell,到今天基于FilterServlet的内存马,真可谓是百花齐放.

Filter内存马&Servlet内存马

Java世界中内存马无非就两种——FilterServlet.Filter翻译为拦截器,配合内存马技术Filter可以让任何不存在的路径变为一个webshell,就算是配合流量设备也很难察觉异样.因为大部分流量设备的默认规则只会当做错误日志处理.而基于Servlet的内存马一般需要攻击者指定一个固定路径来访问生效.
以下展示两种内存马.

第一种Filter内存马
image.png

可以看出攻击者利用一个get参数控制想要变更的命令

第二种Servlet内存马
image.png

可以看出攻击者利用一个设定的路由配合一个header参数控制想要变更的命令

原因在于Filter中提供一个doFilter方法,在该方法中存在一个内置类ServletRequest,该类派生的对象含有一个getParameter方法可用来作为外部传参使用.
image.png

而在Servlet中提供的则是service方法,在该方法中同样存在一个内置类,只不过该类是HttpServletRequest.该类派生的对象含有一个getHeader方法可用来作为外部传参使用.
image.png

查杀方法

查杀方法需要借用到一款工具——VisualVM.我们使用这款工具时需要在应急的tomcat上提前配置好JMX访问.
image.png
catalina.sh/catalina.bat中找到
# ----- Execute The Requested Command -----------------------------------------字段
在其下方加入该tomcat局域网地址或者公网地址配置示例(加入哪一种网段根据情况而定)

CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=局域网或公网IP -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=监听端口(推荐19999) -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

随后启动VisualVM安装一个插件并激活
image.png
随后找到本地的tomcat或者远程tomcat
image.png
进入Mbean选项卡即可

对于Filter内存马和Servlet内存马都可以在Catalina-Filter/Servlet节点找到一些踪迹
以下为一个正常的Filter/Servlet监控情况

image.png

以下为有攻击痕迹的Filter/Servlet监控情况

image.png

鸣谢

感谢Ntears提供的技术支持

Reference

tomcat结合shiro无文件webshell的技术研究以及检测方法:
https://www.t00ls.net/thread-56828-1-1.html
VisualVM:
https://visualvm.github.io/download.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?