CozyHosting (2025)

Тэги:

  • Java Spring Boot - /actuator

  • CMD Injection

  • Psql

  • Sudo ssh

Разведка

При сканировании портов было обнаружено 2 открытых tcp-порта - 22 и 80:

На 80 порту располагается страница с описанием веб-сайта:

И кнопка ведущая на страницу авторизации:

Профаззив директории и файлы был обнаружен эндпоинт /actuator:

Данный эндпоинт встречается в приложениях на основе Spring Boot:

Spring Boot — это фреймворк Java с открытым исходным кодом, используемый для программирования автономных приложений Spring промышленного уровня с пакетом библиотек, упрощающих запуск и управление проектами.

С помощью него можно получить больше информации для дальнейшей эксплуатации:

На эндпоинте /actuator/sessions была обнаружена сессия пользователя kanderson:

После замены Cookie JSESSIONID можно авторизоваться на ресурсе обновив страницу входа (CTRL + R):

Получение первоначального доступа - app (CMD Injection)

В административной консоли Cozy Cloud есть возможность установки соединения через ssh:

При указании домена и имени пользователя отображается ошибка, которая связана с тем, что хост не добавлен в .ssh/authorized_keys:

Вывод ошибки также появляется в GET-параметре error:

Если указать случайные строки, например, '123'/'123', то отобразится вывод, который похож на то, как если бы это был запуск команды ssh из терминала:

Следовательно, можно попробовать проэксплуатировать CMD Injection, используя точку с запятой:

Таким образом отобразилась полноценная ошибка ввода команды в HTTP-заголовке Location:

Такая полезная нагрузка не сработала, поскольку в имени пользователя пробелы запрещены:

Их можно экранировать с помощью переменной ${IFS}:

С экранированным пробелом полезная нагрузка отработала:

С помощью Reverse Shell Generator можно сделать пэйлоад с реверс шеллом:

Проще всего будет его "упаковать" в base64, чтобы не возникло проблем при передаче данных через HTTP:

Окончательный пэйлоад в HTTP-запросе для получения реверс шелла выглядит так:

Таким образом был получен первоначальный доступ:

Повышение привилегий - josh (jar-unpacking, psql, hashcat)

Стабилизация оболочки:

В каталоге /app был обнаружен файл cloudhosting-0.0.1.jar:

Его можно распаковать с помощью утилиты unzip:

Используя документацию Spring, можно найти файл проекта, в котором хранятся конфигурационные данные проекта - application.properties:

В файле были найдены УД для PostgreSQL:

Подключиться локально к базе данных можно с помощью утилиты psql:

Команда \l используется, чтобы отобразить все базы данных:

С помощью команды \c можно подключиться к одной из БД:

Команда \dt отобразит все таблицы в БД:

С помощью стандартного синтаксиса SQL были извлечены все данные из таблицы users:

Используя утилиту hashid был определен предполагаемый тип хеша:

С помощью утилиты hashcat хеш был взломан:

После чего можно авторизоваться под пользователем josh, который может запускать утилиту ssh с любыми опциями и аргументами от лица суперпользователя:

Повышение привилегий - root (sudo ssh)

С помощью шпаргалки gtfobins можно проэксплуатировать мисконфиг:

И повысить привилегии до суперпользователя:

Last updated

Was this helpful?