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?