Shoppy WriteUp
SidneyJob | December 23, 2022Всем привет, на связи SidneyJob, сегодня я покажу вас своё решение машины на HackTheBox.
Machine: Shoppy
Machine URL: HackTheBox | Shoppy
IP: 10.10.11.180
Attacker: SidneyJob

Scanning:
Видим, что у нас открыто 3 порта: 22, 80 и 9093. Больше всего нас интересует http сервер. Начнем с него.
nmap -A -sC -sV -p- --min-rate 2000 10.10.11.180

80/tcp Nginx 1.23.1
На главной странице видим отчет до начала beta тестирования сайта.

Первым делом нам нужно посмотреть, какие директории у нас имеются:
ffuf -w wordlists/directory-list-lowercase-2.3-big.txt -u "http://shoppy.htb/FUZZ"

Видим, что в директории /login находится страница входа в админ панель сайта.

Потыкав приложение, я понял, что можно обойти аутентификацию с помощью NoSQL Injection.

Бинго! Мы в админ панели сайта и видим какие-то продукты.

В админ панели есть единственная функция поиска пользователей.

Попробуем нашу NoSQL Inejction, которую мы использовали для обхода аутентификации, и вуаля! Сайт нам выдал всех пользователей из БД.

[{"_id":"62db0e93d6d6a999a66ee67a","username":"admin","password":"23c6877d9e2b564ef8b32c3a23de27b2"},{"_id":"62db0e93d6d6a999a66ee67b","username":"josh","password":"6ebcea65320589ca4f2f1ce039975995"}]
Хм... Пароли пользователей похожи на хеш MD5, попробую прогнать в CrackStation. Бинго!
josh:remembermethisway

Так как в приложении больше нет функционала, то нам нужно искать следующий вектор атаки, ищем поддомены и находим поддомен mattermost.

При входе на поддомен нас встречает форма входа, попробуем ввести туда данные, которые мы украли из БД.

Видим какую-то площадку для общения.

В одном из сообщений мы видим передачу логина и пароля, нужно попробовать войти с этими кредами под ssh.
jaeger:Sh0ppyBest@pp!

После входа по ssh сдаем первый флаг и проверяем возможные способы повышения привилегий. Видим, что нам разрешено запускать password-manager от имени deploy.

Попробуем запустить и видим, что нам нужен пароль, чтобы войти в менеджер паролей.
sudo -u deploy /home/deploy/password-manager

Нам нужно изучить логику этой программы, поэтому отправим этот файл себе на машину для дальнейшего изучения.


Итак... Начнем статический анализ кода. Открываем иду и смотрим псевдокод.
По псевдокоду делаем следующие выводы:
1) Разработчик жестко закодировал в программу пароль к менеджеру. Пароль: Sample.
2) При вводе верного пароля исполняется команда "cat/home/deploy/creds.txt"
3) Это не менеджер паролей)

Пробуем выйти с данным паролем в программу и получаем креды с учетке пользователя deploy.
deploy:Deploying@pp!

Входим в учетку deploy и видим, что пользователь входит в группу докер, гуглим и видим, что это не безопасно. Ссылочка на PoC(тык)

Бинго! Я есть рут. Последний флаг найдете, когда будете проходить сами)

С любовью, ваши SidneyJob и RESOLUTE ATTACK.