一次CNVD-2020-10487漏洞利用

admin 2022年3月30日20:07:42评论95 views字数 936阅读3分7秒阅读模式

0x00漏洞简介

 
CNVD-2020-10487 tomcat-ajp文件读取漏洞

0x01开始


某次对一个目标进行测试,用routerscan扫描搜集的C段资产,发现某个IP开放了22,6379,8009等端口

一次CNVD-2020-10487漏洞利用

看到8009就想到了tomcat-ajp,于是使用nmap确认一下

一次CNVD-2020-10487漏洞利用


接着直接用exp读取web.xml文件试试看,成功

一次CNVD-2020-10487漏洞利用

 想到开了redis,那会不会有redis配置文件呢
 
一次CNVD-2020-10487漏洞利用

成功获取到了密码,于是拿着去连一下redis:

一次CNVD-2020-10487漏洞利用

哦豁,密码错误,仔细一看,密码像是加过密的。到了这里还是没有放弃,找个了web.xml文件看了一下,listener-class这个标签就是标记的相应的类,可以直接去相应的目录下面就能找到.class文件

一次CNVD-2020-10487漏洞利用

在github上找到一个可以下载class并且反编译的工具:
https://github.com/LandGrey/ClassHound
 
一次CNVD-2020-10487漏洞利用

然而使用的时候又出了问题
 
一次CNVD-2020-10487漏洞利用

脚本已经跑完了,提示把文件都下载到了一个目录里面,但是并没有生成那个目录。这时候想到用wireshark抓ajp的数据包看看是什么情况,发现所有请求都是404,连web.xml都没有
 
一次CNVD-2020-10487漏洞利用

是不是脚本使用姿势不对,漏掉了哪个参数还是怎么了,每次都是请求index.txt。猜测可能是遍历的目录不对,抱着试试的想法去改了一下代码,搜索index.txt,手动把index.txt改成了ROOT
ClassHound-masterthirdpartyghostcat.py
 
一次CNVD-2020-10487漏洞利用

再次运行脚本,把xml里面的class文件给下回来了

一次CNVD-2020-10487漏洞利用

 
把class文件拖入jd-gui直接搜索encrypt和decrypt,找到了对应的加解密类

一次CNVD-2020-10487漏洞利用

 
是des加解密,还有密钥也在里面,代码看了一下,搞不清楚是怎么加解密的,但是看到了方法getDecryptString,就把加解密用到的代码都扣出来,直接调用这个方法进行解密,成功解出了redis密码

一次CNVD-2020-10487漏洞利用

 拿着解出来的密码连接redis

一次CNVD-2020-10487漏洞利用

 最后使用主从复制拿到了权限

一次CNVD-2020-10487漏洞利用

 

0x02结束

 
*本文章仅供技术交流分享,请勿做未授权违法攻击,雨笋教育不负任何责任。具体请参考《网络安全法》。

一次CNVD-2020-10487漏洞利用
 领取免费学习资料
扫码咨询


原文始发于微信公众号(雨笋君):一次CNVD-2020-10487漏洞利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日20:07:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一次CNVD-2020-10487漏洞利用https://cn-sec.com/archives/854149.html

发表评论

匿名网友 填写信息