Перейти к содержанию

Root me


Основная задача - обход фильтров ограничивающих загрузку файлов на web сервер. Эскалация привилегий в Linux.
Описание задания можно найти на TryHackme

Сканирование

Проведение разведки с nmap на предмет наличия открытых портов:

sudo nmap -T4  -p- IP-ADDRESS
#После получения сведений о портах
sudo nmap -sV -sC -O -p 22,80 IP-ADDRESS 

Обнаружены открытые порты 22 и 80.
Получены версии, наименование ПО работающего на открытых портах (Apache, backend на PHP)

Изучаем главную страницу web приложения, не находим ничего интересного Проводим разведку с gobuster или feroxbuster для получения информации о имеющихся директориях и файлов php,txt,js,cgi,html,htm,sh:

feroxbuster -u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 64 -x php,txt,js,cgi,html,htm,sh``

gobuster dir -t 64-u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php,txt,js,cgi,html,htm,sh``

Находим директории /panel/, /uploads. Очевидно, что первая используется для загрузки файлов, вторая для доступа к ним.

RCE

  1. Качаем PHP-revshell

Не забывай

Не забывай поменять IP и порт. При замене не забывай про кавычки и прочие служебные символы

  1. Выясняем, что установлен фильтр который не загружает файлы с расшрением .php Меняем расширение на различные допустимые для php, исчерпывающий список приложен здесь.

  2. Выясняем, что файлы с измененным расширением (.php2,.php3,.php4,.php5 и др.) загружаются, однако не запускаются некорректно. Пробуем все разршения из указанного списка. Это можно сделать как вручную, так и через модуль repeater в BurpSuite.

    В текущем, конкретном случае, рабочее расширение которое и загружается и выполняется без ошибок - .phar

  3. Запускаем listener

  4. Запускаем загруженный файл из директории /uploads

  5. Стабилизируем оболочку, забираем первый флаг в ~/user.txt

Эскалация привилегий

  1. Ищем бинарники с SUID правами

  2. Сверяем найденные бинарники со списком на GTFOBins, выясняем, что можно эксплуатировать бинарник Python которому выданы SUID права

  3. Эскплуатируем уязвимость. Забираем root флаг в /root/root.txt