如何巧妙构建“LDAPS”服务器利用JNDI注入

💡 原文中文,约4300字,阅读约需11分钟。
📝

内容提要

这篇文章介绍了如何使用ldaps进行JNDI注入的漏洞探测。ldaps是将普通的LDAP协议通信过程包裹一层TLS,可以通过CoNote等工具进行搭建LDAPS服务器。文章还提到了Opportunistic TLS和LDAPS两种安全传输方式,并介绍了利用JNDInjector等工具建立恶意ldaps服务器的方法。最后演示了利用JNDInjector成功执行命令的过程。

🎯

关键要点

  • ldaps是将LDAP协议通信过程包裹一层TLS的安全传输方式。

  • CoNote工具可以搭建LDAPS服务器,支持JNDI注入漏洞探测。

  • JNDI注入过程中,Java根据URL的scheme判断使用的包,ldaps由ldapURLContextFactory处理。

  • RFC4510定义了Opportunistic TLS和LDAPS两种安全传输方式。

  • Opportunistic TLS在明文通信中找机会升级为TLS通信,LDAPS则在连接时直接使用TLS。

  • CoNote支持ldaps日志功能,可以探测JNDI注入漏洞的存在。

  • 探测JNDI注入不受Java版本影响,但后续命令执行可能受限于Java版本。

  • 可以使用JNDInjector等工具生成恶意ldaps URL进行漏洞利用。

  • 可以通过编写TLS反向代理将ldaps请求转发给JNDInjector。

  • 实现TLS端口转发的代码示例提供了基本的TLS代理功能。

  • 利用JNDInjector选择利用链和命令,结合TLS代理实现漏洞利用。

➡️

继续阅读