Pilgrimage - HackTheBox
Noob 的 HackTheBox 之旅
环境
VPS:43.134.44.115
Mac:localhost
Burpsuite
端口转发
- VPS通过OpenVPN连接HacktheBox
- Mac通过端口转发将7080端口转发到VPS
ssh -qTfnN -D 7080 user@43.134.44.115
- 浏览器通过Burpsuite 将数据代理到7080端口
这样就可以在本地的浏览器上通过Burpsuite流畅的测HacktheBox的靶机了
getShell过程
先体验一下功能,从PHPSESSID看后端语言应该是PHP
上传功能
试了一下就算上传PHP后缀也会被处理成jpeg文件
登录注册功能
目录扫描
发现git泄漏,使用GitHack下载项目代码
代码审计
打包代码下载到本地进行代码审计
tar -zcvf pilgrimage.zip pilgrimage.htb
登录和注册功能两个参数都使用了预编译,注入无望
上传功能这里使用了magick去处理图片,并且会将后缀名设置成jpeg和png。上传无望
imagemagick这东西之前有著名的RCE漏洞,而且git泄漏这里还有magick这个文件。这里会不会存在nday呢
通过执行命令查到版本号,我们可以去exploitdb查一下有没有可利用的nday
有个任意文件读取可以用
1 |
|
CVE-2022-44268
研究下POC的用法:
先通过项目给的工具指定要读取的文件,然后将生成image.png交给imageMagick处理,这一步交给存在漏洞的Web服务器去触发漏洞读取指定文件,然后将图片下载回来使用identify输出读取到的文件内容
identify -verbose oout.png
输出读取到的内容
这里就获取到了 /etc/passwd 文件内容
只有emily和root用户是可以登录到bash的
这里想到尝试一下爆破,直接爆破root应该不可能,但可以试一下emily
1 |
|
然后发现好像不太适合,爆破速度特别慢。想了一下公共靶机应该也不希望用户一起爆破
那还是回到任意文件读取这个漏洞吧
写个脚本简化流程,研究了一下identify命令。如果只需要Raw profile type部分的内容,需要执行:
identify -format "%[Raw profile type]" -verbose oout.png
链接:https://www.imagemagick.org/script/escape.php
1 |
|
但这里又不知道应该读哪些文件好了,想了挺久会想起Web服务用的是sqlite的数据库。我们可以把sqlite数据库文件读取,看看数据里面能不能发现什么
下载数据库文件
用命令将文件保存后处理一下,主要是删除无用字符(b’)
1 |
|
学习一下sqlite命令:https://www.runoob.com/sqlite/sqlite-commands.html
从数据库中可以查到用户emily和密码,emily之前在 /etc/passwd文件里见到过了,我直接ssh
登录成功,是个普通用户,拿到了user.txt 中的user flag。下一步提权
提权
内核很新,sudo和SUID也没发现可利用的
直接上提权脚本看看,先看看查CVE的linux-exploit-suggester。对比一下内核版本,没一个靠谱的…
再看看PEASS,这个脚本集成了非常多Linux提权脚本
在观察进程的时候发现root运行了malwarescan.sh脚本
看看脚本里都是什么内容:
通过inotifywait创建了一个关于/var/www/pilgrimage.htb/shrunk/
的监控,使用binwalk提取文件内容。看起来像是个简单的WAF,不允许文件内存在blacklist中的字符串
binwalk也有个著名的RCE漏洞(CVE-2022-4510),看看版本正好可以使用,美滋滋
输入参数运行脚本,就会生成binwalk_exploit.png,再上传到var/www/pilgrimage.htb/shrunk/
目录让root运行binwalk触发即可
拿下!从Noob进化成Script Kiddie