Найти в Дзене
LSD00Pentest

[THM] Publisher WriteUP

Для начала просканируем сервер на открытые порты и сервисы на них. SSH не выглядит уязвимым, поэтому проверяем http Зайдя на сайт я не видел ничего интересного, стандартный index.html, поэтому я через свой инструмент брутфорс директорий Получилось найти директорию spip, удалось также выяснить версию cms - 4.2.0, которая уязвима к CVE-2023-27372. Для эксплуатации я буду использовать metasploit. Для начала надо повысить привилегии до пользоваться think, сделать это очень просто, мы можем зайти в домашнюю директорию пользователя и найти там ssh-ключ по которому можно зайти от лица пользователя think На самом деле очень часто проводить брутфорс через ssh2john, John the ripper, но тут ключ не имеет passphrase, из за чего можно сразу зайти на ssh После захода от пользователя think проводим стандартный поиск простых методов повышения привилегий(Мандаты, SUID и т.д). В результате удалось получить интересный бинарный файл - /usr/sbin/run_container Для начала немного поигравшись с вводимыми
Оглавление

Разведка

Для начала просканируем сервер на открытые порты и сервисы на них. SSH не выглядит уязвимым, поэтому проверяем http

Зайдя на сайт я не видел ничего интересного, стандартный index.html, поэтому я через свой инструмент брутфорс директорий

-2
-3

Получилось найти директорию spip, удалось также выяснить версию cms - 4.2.0, которая уязвима к CVE-2023-27372. Для эксплуатации я буду использовать metasploit.

-4

Повышение привилегий

Для начала надо повысить привилегии до пользоваться think, сделать это очень просто, мы можем зайти в домашнюю директорию пользователя и найти там ssh-ключ по которому можно зайти от лица пользователя think

На самом деле очень часто проводить брутфорс через ssh2john, John the ripper, но тут ключ не имеет passphrase, из за чего можно сразу зайти на ssh
-5

После захода от пользователя think проводим стандартный поиск простых методов повышения привилегий(Мандаты, SUID и т.д). В результате удалось получить интересный бинарный файл - /usr/sbin/run_container

-6

Для начала немного поигравшись с вводимыми данными, мы получаем путь к bash скрипту, который мы изменить пока не можем, ибо у нас нет доступа к директории оpt

Проведя относительно простой реверс удалось понять что этот бинарный файл просто запускает этот bash скрипт, поэтому изменя bash скрипт можно проэксплуатировать SUID
-7

Взяв подсказку, нам говорят проверить AppArmor, поэтому проверяем файл для оболчки ash(так как это попросту наша оболчка)

Если коротко, то AppArmor позволяет регулировать к каким системным ресурсам и с какими привилегиями может получить доступ то или иное приложение
-8

Здесь мы можем увидеть что у нас нет доступа ни к чтению ни к записи в /opt/, но есть доступ для записи в /var/tmp/ поэтому для того чтобы обойти этот запрет надо скопировать bash в эту директорию и запустить его

-9

Для того что бы получить доступ к рут-пользователю, я написал небольшой код на си, который запускают оболчку от root пользователя, изменил файл run_container.sh чтобы он запускал этот исполняемый файл, как итог я получаю доступ к рут пользователю и читаю все флаги

-10