Взлом LibreNMS с помощью RCE

Хакер взлом пентест

Сегодня, на примере прохождения уязвимой машины FormulaX Hack The Box, я покажу, как взломать LibreNMS. Мы пройдем через несколько этапов: начиная с SSH-туннелирования и заканчивая использованием уязвимостей в шаблонах.

Еще по теме: Вот как нашел свою первую RCE

Что такое LibreNMS

LibreNMS — это открытая платформа для мониторинга сети, которая автоматически обнаруживает устройства и собирает данные о состоянии сети, трафике и других параметрах. Она поддерживает множество протоколов и интеграций, предоставляя гибкие возможности для визуализации и анализа сетевой инфраструктуры.

Важно помнить, что такие действия следует выполнять только в этических целях и с соответствующими разрешениями.

Взлом LibreNMS с помощью RCE в шаблонах

Все началось с того, что сервис LibreNMS работал на порту 3000, но был доступен только локально. Чтобы получить к нему доступ, пришлось использовать SSH-туннелирование. Вот команда, которую я использовал:

Это позволило перенаправить трафик с локального порта 3000 на порт 3000 удаленного хоста через SSH.

Фор­ма авто­риза­ции LibreNMS
Фор­ма авто­риза­ции LibreNMS

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

Поискав информацию об авторизации в LibreNMS, я наткнулся на сообщение на форуме о создании пользователя. Попытка проверить наличие скрипта adduser.php показала, что у меня нет доступа к просмотру файлов в каталоге /opt/librenms.

Про­вер­ка катало­га /opt/librenms

Однако, несмотря на это, мне удалось выполнить сам файл:

Соз­дание поль­зовате­ля

Так я создал нового пользователя и смог авторизоваться в системе.

Глав­ная стра­ница LibreNMS

Следующим шагом было использование идеи с шаблонами для получения RCE. Я перешел к проверке конфигурации.

Ме­ню LibreNMS

Но столкнулся с ошибкой: адрес 127.0.0.1 не соответствовал имени librenms.com.

Ошиб­ка LibreNMS

Чтобы решить эту проблему, я добавил соответствующую запись в файл /etc/hosts:

После этого я смог перейти в меню AlertsAlert Templates и создать новый шаблон.

Ме­ню Alerts

Стра­ница Templates

В нем я использовал функцию system для выполнения реверс-шелла:

Код шаб­лона

Запустив новый листенер и сохранив шаблон, я успешно получил новую сессию с правами пользователя LibreNMS.

Сес­сия поль­зовате­ля LibreNMS

Этот опыт показал, как можно использовать различные техники для получения доступа к системе, начиная от SSH-туннелирования и заканчивая использованием уязвимостей в шаблонах.

ПОЛЕЗНЫЕ ССЫЛКИ:

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся аналитикой компьютерных угроз. Анонсы новых статей в Телеграме.

Добавить комментарий