Seal (2021)

Ключевые моменты прохождения:

✅ Используем gobuster с флагом -k для 443 порта(SSL) ✅ Копаемся в GitBucket для того, чтобы найти пароль к tomcat ✅ Обходим 403 ошибку на /manager/html для tomcat из-за мисконфига Nginx ✅ Используем gobuster с флагом -k для 443 порта(SSL) ✅ Создаем WAR-файл с реверс шеллом при помощи msfvenom ✅ Повышаем привилегии с помощью Ansible

Разведка

На 443 порту у нас есть обычный интернет магазин, который не представляет никакого интереса, кроме некоторых его файлов:

Очевидно, что там tomcat. На 8080 порту расположен GitBucket:

После регистрации можно накопать следующий коммит(http://10.10.10.250:8080/root/seal_market/blob/ac210325afd2f6ae17cce84a8aa42805ce5fd010/tomcat/tomcat-users.xml) в проекте seal_market, где остался пароль юзера:

В рамках CTF всегда, если вам дают git репозитории нужно искать пароли и другую важную информацию в старых коммитах/бэкапах.

На /manager/html трудно попасть из-за 403 ошибки доступа:

Но есть годный лайфхак, точнее мисконфиг у nginx'а. Я очень сильно рекомендую ознакомится с данной презентацией для более глубокого погружения в тему. Но чтобы не затягивать с этим сразу покажу эксплуатацию:

Для того, чтобы получить начальный шелл(www-data) нам нужно загрузить вредоносный WAR-файл. Создание такого файла происходит так:

В моем случае это было так:

Кстати, чтобы загрузить WAR-файл, нужно также использовать мисконфиг:

Получение пользователя

В /opt/backups/playbook можно найти run.yml:

Тут происходит следующее:

  1. Копирование файлов из дэшборда в /opt/backups/files

  2. Сжатие файлов и сохранение в backup_date-time.gz

  3. Удаление files директории Следовательно, мы можешь сделать так, чтобы получить ключ luis'а:

Получаем рута

Создаем файл root.xml и пишем в него:

Last updated

Was this helpful?