Monitored (2026)

Тэги:
SNMP
Nagios XI API & CVE-2023–40931 (SQL Injection)
Symbolic links PrivEsc
Разведка
Результат сканирования TCP-портов:
При переходе на 80 порт http://10.129.230.96/ идёт редирект на nagios.monitored.htb. Соответствующие записи были добавлены в /etc/hosts:
После чего был получен доступ к поддомену:

На нем располагается мониторинговая платформа Nagios XI. С помощью кнопки "Access Nagios XI" происходит перенаправление на страницу авторизации - https://nagios.monitored.htb/nagiosxi/login.php?redirect=/nagiosxi/index.php%3f&noauth=1:

Далее были просканированы UDP-порты:
Поскольку SNMP-порт открыт можно было попытаться извлечь из него информацию с помощью snmpbulkwalk:
В выводе было обнаружено имя пользователя и пароль. При вводе данных на странице авторизации выводиться уже другое сообщение:

Было использовано API Nagios XI для получения auth_token:
Чтобы в дальнейшем авторизоваться в сервисе с помощью следующего URL -https://nagios.monitored.htb/nagiosxi/login.php?token=257ddcf6819f2d6559f94b4bc530b9eb30ef30f8:

После авторизации был обнаружено, что Nagios XI версии 5.11.0. Для неё есть эксплоит на SQL Injection.
Чтобы подтвердить уязвимость нужно сформировать следующий GET-запрос:

Получение первоначального доступа - nagios (CVE-2023–40931, Admin Panel Reverse Shell)
Чтобы проэксплуатировать уязвимость в автоматическом режиме можно использовать sqlmap:
База данных information_schema в mysql создается по умолчанию, а nagiosxi была создана уже мониторинговой платформой. С помощью той же утилиты sqlmap была извлечена вся необходимая информация для дальнейшего продвижения.
Извлечение списка таблиц:
Излечение данных из таблицы
xi_users:
В дампе таблицы было два API-ключа. Используя ключ nagiosadmin, можно было создать любого другого пользователя с правами администратора:
Далее можно авторизоваться в сервисе. Поскольку использовался простой пароль при создании нового пользователя, то система попросила его сменить:

После чего доступ к панели администратора был открыт:

С помощью этой панели можно было получить удаленный доступ, используя команды (Configure -> Core Config Manager):

Переход в меню команд (Configure -> Core Config Manager -> Commands -> Commands):

Пэйлоад для команды можно сгенерировать через Reverse Shell Generator:

Далее можно добавить свою команду с полезной нагрузкой:

Чтобы её запустить, нужно зайти во вкладку Hosts (Core Config Manager -> Monitoring -> Hosts):

И выбрать localhost:

Затем выбрать свою команду из списка:

И нажать Run Check Command:

На листенер придет реверс шелл:

Повышение привилегий - root (Замена файла на символьную ссылку в скрипте)
С помощью sudo -l были обнаружены команды, которые может выполнять пользователь nagios от лица суперпользователя:

При изучении скрипта getprofile.sh было обнаружено, что во время выполнения в phpmailer.log записываются последние 100 строк файла /usr/local/nagiosxi/tmp/phpmailer.log. Его можно изменить и указать символическую ссылку на /root/.ssh/id_rsa:
Удаление файла, создание символической ссылки и запуск скрипта:

Далее полученный архив был распакован:

И прочитан файл phpmailer.log с содержимым id_rsa суперпользователя:

С помощью него можно подключиться к хосту через SSH предварительно задав ему права только на чтение и запись владельцу (600):

Last updated