其他

网防 G01 V3-JspAgent 使用说明 V2.0

2017-07-06 G01河南服务站 EMLab攻防实验室

一、简介 

JSPAgent 主要功能有两项:  

1、 漏洞防护功能 :  

1) 针对 Struts2 远程命令执行和文件上传漏洞的防护。  

2) 针对 WebLogic 对象反序列化漏洞的防护。  

3) 针对命令执行漏洞的防护  

4) 针对任意文件读取漏洞的防护  

5) 针对文件上传漏洞的防护  

6) 针对 SQL 注入漏洞的防护  


2、 动态(基于行为)识别 JSP 类型的 Webshell。  


注意 :  

1、Web 容器使用的 Java(jdk 或 jre)的版本需 1.6 及 以上。  

2、SQL 注入防护目前支持的数据库包括:Mysql、 Oracle、 Sqlserver、 Postgresql 四种。 


二、工作原理 

利用 JAVA 虚拟机 启动选项 :-javaagent, 使 jspAgent.jar 可以跟踪处理 web 请求上下文, 并针对可疑行为, 做出相应的动作。   


三、安装说明 

G01 安装包会提供一个名为 jspAgent 的目录,目录结构:  

Linux 版:   

/jspAgent/JSPAgent.jar   

/jspAgent/libJSPAgent.so   

/jspAgent/liblitexml_linux.so  

 

Windows 版:   

/jspAgent/JSPAgent.jar  

/jspAgent/JSPAgent.dll   

/jspAgent/msvcp100.dll 

/jspAgent/msvcr100.dll   

/jspAgent/litexml.dll  

/jspAgent/x64/JSPAgent.dll   

/jspAgent/x64/msvcp100.dll  

/jspAgent/x64/msvcr100.dll  

/jspAgent/x64/litexml.dll  

以下是针对各类型的 web 容器, 分平台(Linux 、Windows)分别进行说明:  

Linux 版 


1、Tomcat/Tomee  

假设 tomcat 的工作目录为 : CATALINA_HOME=/usr/local/tomcat/  

1)拷贝 jspAgent 目录到 ${CATALINA_HOME} 下。 


 

2)修改 ${CATALINA_HOME}/bin/catalina.sh 中的 JAVA 启动参数, 附加上 

-javaagent 选项。 

过程如下:定位到  elif [ "$1" = "start" ] ; then, 

其下追加一行: 

JAVA_OPTS="-javaagent:${CATALINA_HOME}/jspAgent/JSPAgent.jar ${JAVA_OPTS}"  

   



3)重启 tomcat。  


2、WebLogic   

1)首先获取 startWebLogic.sh 位置:  


#ps -elf | grep startWebLogic.sh /bin/sh ./root/wls12130/user_projects/domains/mydomain/startWebLo gic.sh /bin/sh /root/wls12130/user_projects/domains/mydomain/bin/startWebLogic.sh    



由此确定 工作目录为 :

DOMAIN_HOME =/root/wls12130/user_projects/domains/mydomain  

2)拷贝 jspAgent 目录到 ${DOMAIN_HOME} 下。  

3)修改 ${DOMAIN_HOME}/bin/ startWebLogic.sh 中 JAVA 启动参数,定位到 JAVA_OPTIONS="${SAVE_JAVA_OPTIONS},其下追加一行 : 

JAVA_OPTIONS="-javaagent:${DOMAIN_HOME}/jspAgent/JSPAgent.jar ${JAVA_OPTIONS}"  



  

4) 重启 weblogic。   


3、Jboss/wildfly 

假设 Jboss 工作目录 : JBOSS_HOME= /root/jboss-as-7.1.1.Final  

1)拷贝 jspAgent 目录到 $JBOSS_HOME 下。  

2)根据你自己的使用模式, 修改 $JBOSS_HOME/bin/standalone.sh 或者 $JBOSS_HOME /bin/domain.sh 中 JAVA 启动参数,定位字符串 # Display our environment, 在其上追加一行 : 

JAVA_OPTS="-javaagent:$JBOSS_HOME/jspAgent/JSPAgent.jar $JAVA_OPTS"   




3) 重启 Jboss。   


4、Glassfish  

假设 Glassfish 的工作目录 :

GLASSFISH_HOME= /usr/local/glassfish/glassfish 

1)拷贝 jspAgent 目录到 ${GLASSFISH_HOME} 下。 

2) 登录 Glassfish 控制台 : https://IP:4848, 

Configurations-> server-config-> JVM Settings-> JVM Options-> Add JVM Option,  新增一项 : 

-javaagent:/usr/local/glassfish/glassfish/jspAgent/JSPAgent.jar    



3) 重启 Glassfish。 


5、TongWeb 

假设 TongWeb 工作目录 : TWNS_HOME=/root/TongWeb5.0  

1)拷贝 jspAgent 目录到 ${TWNS_HOME} 下。  

2) 登录控制台 : http://IP:9060/twns, 服务器配置->启动参数, 新增一项: 

-javaagent:${TWNS_HOME}/jspAgent/JSPAgent.jar 

 



3) 重启 TongWeb。  


6、Jetty 

假设 Jetty 的工作目录 : JETTY_HOME= /usr/local/jetty  

1)拷贝 jspAgent 目录到 $JETTY_HOME 下。  

2) 启动命令修改:java -jar $JETTY_HOME/start.jar 修改为 

java -javaagent:$JETTY_HOME/jspAgent/JSPAgent.jar -jar $JETTY_HOME/start.jar  


Windows 版 


提示 : 配置 -javaagent 时, 如果使用绝对路径,由于 windows 下路径可能含有空格,所以 配置的路径需要用双引号括起来。

 

1、Tomcat/Tomee 


官网 tomcat 版本: 


假设 tomcat 工作目录 :CATALINA_HOME =C:\Program Files\Apache Software Foundation\Tomcat 6.0  


1)拷贝 jspAgent 目录到 %CATALINA_HOME% 下。 

2)修改 JAVA 启动参数:修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat6\Parameters\Java (64 位的操作 系统则为 :HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\tomcat6\Parameters\Java) 修改 Options 的值,   


如下所示:

-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0 

-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0 

-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed 

-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp 

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 

-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat6.0\conf\logging.properties 

------追加下面这一行--- -javaagent:C:\Program Files\Apache Software Foundation\Tomcat 6.0\jspAgent\JSPAgent.jar   

 


 

3) 重启 tomcat。  


JTM 套件: 

假定 tomcat 的工作目录 :CATALINA_HOME=C:\JTM\tomcat 

1)拷贝 jspAgent 目录到 %CATALINA_HOME% 下。

2)修改 JAVA 启动参数:%CATALINA_HOME%\bin\service.bat 中, 定位 ++JvmOptions, 追加 

-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar; 

形如 :   

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manage r=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.confi g.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 512 --Startup=auto 

修改为 :   

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar;-Djava.io.tmpdi r=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.jul i.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA _BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 512 --Startup=auto  


 

3) 重启 tomcat 。 


其他版本:  

观察你的 tomcat 的启动脚本, 如果最终调用了 %CATALINA_HOME% /bin/catalina.bat,那么也可以在这个文件中修改,定位到 :execCmd, 在其下追加 一行: 

set  JAVA_OPTS=-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar  %JAVA_ OPTS%


   

2、WebLogic  

假定 WebLogic 的工作目录 : DOMAIN_HOME=C:\Oracle\Middleware\user_projects\domains\cluster_do main  


1)拷贝 jspAgent 目录到 %DOMAIN_HOME% 下。  

2) 修改 %DOMAIN_HOME%\bin\startWebLogic.cmd, 

定位到set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%, 

在其下追加一行 : 

set JAVA_OPTIONS=-javaagent:%DOMAIN_HOME%\jspAgent\JSPAgent.jar %JAVA _OPTIONS%  


  

3) 重启 WebLogic。 


3、Jboss/wildfly 

假设 Jboss 工作目录 : JBOSS_HOME= C:\jboss-as-7.1.1.Final  


1)拷贝 jspAgent 目录到 %JBOSS_HOME% 下。  

2)根据你自己的使用模式, 修改 % JBOSS_HOME %/bin/standalone.bat 或者  % JBOSS_HOME %/bin/domain.bat 中 JAVA 启动参数,

定位字符串 if "x%JBOSS_CONFIG_DIR%" == "x" (, 其后追加一行 : 

set "JAVA_OPTS=-javaagent:%JBOSS_HOME%\jspAgent\JSPAgent.jar %JAVA_OP TS%"    



3) 重启 Jboss。 


4、Glassfish  


假设 Glassfish 的工作目录 :GLASSFISH_HOME= C:\glassfish4 

1)拷贝 jspAgent 目录到 %GLASSFISH_HOME% 下。 

2)登录 Glassfish 控制台 : https://IP:4848,Configurations-> server-config->  JVM Settings-> JVM Options-> Add JVM Option, 新增一项 : 

-javaagent: C:\glassfish4\jspAgent\JSPAgent.jar


    

3) 重启 Glassfish。 


5、TongWeb 

假定 TongWeb 的工作目录 : TWNS_HOME=C:\TongWeb5.0  


1)拷贝 jspAgent 目录到 %TWNS_HOME% 下。  

2)登录控制台 : http://IP:9060/twns, 服务器配置->启动参数, 新增一项: 

-javaagent:%TWNS_HOME%\jspAgent\JSPAgent.jar 或 绝对路径的写法: 

-javaagent:" C:\TongWeb5.0\jspAgent\JSPAgent.jar  



  

3) 重启 TongWeb 。 


6、Jetty 

假定 Jetty 的工作目录:JETTY_HOME= C:/Program Files (x86)/jetty-distribution-8.1.17/jetty-distribution-8.1.17.v201504 15  

1)拷贝 jspAgent 目录到 %JETTY_HOME% 下。  

2) 启动命令修改:java -jar %JETTY_HOME%\start.jar 修改为 java 

-javaagent:%JETTY_HOME%\jspAgent\JSPAgent.jar 

-jar %JETTY_HOME%\start.jar 




了解网防G01安装、使用相关问题,请关注微信公众号:EM-Lab




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存