HTB_Titanic
htb_Titanic
Nmap
LFI
首先还是将这个添加到/etc/hosts
echo "10.10.11.55 titanic.htb" |sudo tee -a /etc/hosts
访问
在最下方填写点东西bp抓包看一下
访问download路由可以下载,里面包含刚刚输入的东西
那么也就是说这个逻辑是将刚刚输入的东西存到1cab2a16-9e10-4209-9693-2b0465c6151c.json文件中,再通过download路由进行下载
so可以尝试一下路径遍历
?ticket=../../../../../../etc/passwd
可以看到也是成功了
那么可以尝试读取一下user.txt
需要知道具体路径
拿到了/home/developer
路径遍历一下
http://titanic.htb/download?ticket=../../../../../../../home/developer/user.txt
第一层flag拿到
Gitea
接下来想办法ssh连接,毕竟开放了22端口
那么一定有一个密码需要我们找
先来爆破一下子域名
也是很轻松的就爆出来了,将 dev.titanic.htb 添加到 /etc/hosts
访问一下http://dev.titanic.htb/
之后就是查看gitea的官方文档,gitea 的数据库文件一般在 /data/gitea.db 中
而Gitea 在 Docker 容器中运行将数据存储在/data/gitea
docker 镜像中
所以最终路径应该为
/home/developer/gitea/data/gitea/gitea.db
尝试使用下面的路径进行下载
http://titanic.htb/download?ticket=../../../../../../../home/developer/gitea/data/gitea/gitea.db
查看user表
可以看到密码被加密了
需要手动转换或者使用gitea2hashcat.py脚本进行格式化
1 |
|
然后将转换的结果用hashcat进行解密
hashcat -m 10900 titanic.hash /home/dream/桌面/rockyou.txt
最终得到了明文密码
提权
疯狂试探
ssh连接
ssh developer@titanic.htb
首先确定为普通用户权限,查看内核版本
uname -a
权限不够,不能将exp上传
再查看有没有低权限的定时任务文件可以利用
cat /etc/crontab
再看看SUID提权
find / -user root -perm -4000 -print 2>/dev/null
/usr/bin/sudo |
如果 sudo 配置有漏洞,可能可以直接提权 |
---|
/usr/bin/pkexec |
很多老版本(如 polkit CVE-2021-4034)可以直接提权 |
---|
所以先看一下pkexec
的版本
OK,这个版本是有提权漏洞的,下载一个网上的exp编译一下
忘记了,不能联网以及没有创建文件或文件夹的权限
那再看一下sudo
高版本,再看看配置会不会有问题
也没有什么可以利用的
想用docker提权但也是权限不足
步入正轨
那就检查一下第三方软件会不会有什么漏洞
find /opt -type f
看到了一个脚本文件,可以重点关注一下
cat /opt/scripts/identify_images.sh
ImageMagick也是个很容易突破的口子,看一下对应版本
magick -version
查一下对应版本看是否有漏洞可以利用
找到了
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-8rxc-922v-phg8
决定仿照这个写payload
根据 identify_image.sh,需要在 /opt/app/static/assets/images 中生成 libxcb.so.1 才能导致 root 权限下的 magick 读取到 root.txt
1 |
|
OK,成功拿到