基于ldap协议字段特征的漏洞检测

admin 2022年3月27日14:00:21评论128 views字数 910阅读3分2秒阅读模式

点击蓝字 关注我们

前言


JNDI注⼊常⽤rmi和ldap协议去打,本⽂主要讲述通过go语⾔检测ldap协议以及获取相关字段的⼀种⽅式。

通过跟4ra1n师傅的⽂章的学习和与他本⼈的交流,他的检测思路是⽤go语⾔模拟回包,然后分析数据包,获取其中需要的路径字段。因为要确定⽬标是哪个payload⽣效,所以获取ldap/rmi请求的路径是必要的。

我在实现他⽂章⾥的思路的时候发现⼀些不理解的地⽅,接下来放出自己的一些困惑和我自己实现的思路。

模拟扫描器打payload:

基于ldap协议字段特征的漏洞检测


fake server 端:


我打印出请求路径的hex


基于ldap协议字段特征的漏洞检测



wireshark抓包:


基于ldap协议字段特征的漏洞检测


可以看到这个#look的hex跟上⾯fake server端不⼀样,但是fake server端的hex转成string后依然是#look


个人实现思路


所以我选择⾃⼰再⽤真正的ldapserver实现⼀次这个检测思路抓包ldap⼀次连接的数据包


基于ldap协议字段特征的漏洞检测



client -> server


data : 300c020101600702010304008000


server -> client


data: 300c02010161070a010004000400

client -> server data:

30818e0201026481880405236c6f6f6b307f3016040d6a617661436c6173734e616d6531050403666f6f3028040c6a617661436f64654261736531180416687474703a2f2f3132372e302e302e313a36363



wireshark对数据包进⾏梳理:



基于ldap协议字段特征的漏洞检测



画⼀个示意图:


基于ldap协议字段特征的漏洞检测



分析到这⾥已经拿到想要的东⻄了,这个searchRequest⾥⾯就包含了路径参数,所以接下来起⼀个ldap去抓这个searchRequest ldapserver这个库可以直接帮助起⼀个ldap server并且⾃⼰可以构建返回包

所以调⽤ldap.Message.GetSearchRequest()去获取


基于ldap协议字段特征的漏洞检测



发包


基于ldap协议字段特征的漏洞检测




拿到路径参数



判断ldap协议即看数据包是否存在magic num即可


基于ldap协议字段特征的漏洞检测

基于ldap协议字段特征的漏洞检测

基于ldap协议字段特征的漏洞检测


原文始发于微信公众号(Th0r安全):基于ldap协议字段特征的漏洞检测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月27日14:00:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于ldap协议字段特征的漏洞检测http://cn-sec.com/archives/842950.html

发表评论

匿名网友 填写信息