技术文章阅读-Tomcat进程注入技术复现
https://xz.aliyun.com/t/8383
原理
在于Java在Java SE5后引入了Java Instrumentation,该功能指的是可以用独立于应用程序之外的代理程序来监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。
然后找处理http的类,发现处理过程中,org.apache.catalina.core.ApplicationFilterChain类的internalDoFilter方法最符合要求
然后搭建环境,测试了下 https://github.com/rebeyond/memShell ,这rebeyond不是冰蝎的作者吗,我说这id咋看着有点眼熟
手动搭建tomcat的过程
# 进入Tomcat安装目录下的bin目录 cd usr/local/tomcat9/bin # 解压commons-daemon-native.tar.gz tar zxvf commons-daemon-native.tar.gz cd commons-daemon-1.2.2-native-src/unix/ # 使java配置生效 source /etc/profile # 编译 ./configure make # make后,会在当前文件夹下生成一个名为 jsvc 的文件,将其复制到$CATALINA_HOME/bin目录 cp ../.. # 添加一个用来运行Tomcat的用户 sudo adduser tomcat(根据提示设置密码) # 回到$CATALINA_HOME/bin目录下 cd ../../ # 设置$CATALINE_HOME文件夹及其所有子文件Owner为tomcat sudo chown -R tomcat:tomcat /usr/local/tomcat9 # 认证tomcat用户 su tomcat # 启动tomcat ./daemon.sh start