UpDown WriteUp

UpDown WriteUp

SidneyJob | December 23, 2022

Всем привет, на связи SidneyJob, сегодня я снова покажу вам своё решение машины на HackTheBox.

Machine: UpDown

Machine ip: 10.10.11.177

Machine URL: UpDown | Hack The Box

Attacker: SidneyJob

Первым делом сканируем, вижу 2 открытых порта 80 и 22.

nmap -sC -sV -A -p- 10.10.11.177

На вебе нас встречает сайт для проверки доступности сайтов.

80/tcp

Сканим директории и видим единственную директорию /dev/.

ffuf -w wordlists/bitquark-subdomains-top100000.txt -u "http://10.10.11.177/FUZZ"

Сканим поддомены и находим одноименный с каталогом поддомен.

ffuf -w ../wordlists/bitquark-subdomains-top100000.txt -u "http://siteisup.htb" -H 'Host: FUZZ.siteisup.htb' -fs 1131

Попробуем зайти на поддомен и..... 403. Нам не разрешено заходить на поддомен, что ж, вернемся обратно.

Снова брутим директории и находим директорию /dev/.git. Скорее всего сайт еще находится в разработке, и администраторы еще не успели закрыть доступ к этой папке.

ffuf -w wordlists/directory-list-lowercase-2.3-big.txt -u "http://10.10.11.177/dev/FUZZ"

Заходим в гит и видим, что нам доступно все:

Чтобы было удобнее работать, и мы могли ходить по коммитам, мы скопируем гит себе на машину.

python -m git_dumper http://siteisup.htb/dev/.git git

Cмотрим коммиты и находим коммит с обновлением файла .htaccess. В его содержимом написано, что нас пустит на поддомен, только если у нас будет присутствовать заголовок Special-Dev: only4dev.

Пробуем зайти на поддомен с данным заголовком и..... вуаля! Доступ разрешен. На главной странице мы видим тот же сайт, но только теперь мы можем сразу проверять список ip адресов.



Теперь начинается самое интересное как по мне..... Удачи!

Итак. Начнем.

1) После того, как скрипт проверил работают ли сайты из файла или нет, он сразу удаляет файл.

2) Файлы загружаются по пути /uplouds/md5(time())/yourfilename.

3) Сайт не принимает файлы форматов .php, .php[0-9], .phtml, .py, .pl и многие другие, список и все исходные коды данного сайта можно найти в коммитах гита, который мы скачали ранее. Также советую изучить исходный код данного чекера, чтобы понимать работу данного сайта.

4) После того как вы нашли расширение, которое не блокируется и исполняется, например: .phar, вы должны загрузить реверс шел.

5) Команды system, exec и др. отключены и не работают, поэтому придется поискать другие шелы в интернете, как вариант proc_open. Берем код прям с сайта документации php и вставляем в наш файл.
*Примечание: не забудьте в функции proc_open() заменить 'php' на 'sh' .

6) Самое интересное. Как нам потянуть время и успеть исполнить скрипт? Все очень просто.... Наша атакуемая машина не имеет доступа в интернет, поэтому в начале скрипта ставим проверку доступности гугла, он долго будет пытаться проверить доступность, и за это время мы сможем исполнить наш скрипт.

После выполнения всех вышеупомянутых махинаций мы получаем шел!

После изучения машины я нашел программу с suid битом, которую мы можем исполнять, а также какой-то python скрипт. Скачаем данную программу, чтобы узнать что она делает.

Открываем нашу любимую иду64 и видим красивый псевдокод нашей программы. В данном коде мы видим, что он исполняет python скрипт от имени developer`а.

Изучаем python скрипт и видим, что от отправляет запрос на url, который мы укажем. Заметим, что наш ввод никак не фильтруется, что позволит нам сделать командную инъекцию.

Попробуем внедрить следующую команду и.... Бинго! У нас есть шел developer`a, заберем его id_rsa ключ, чтобы шел был стабильнее и лучше.

__import__('os').system('/bin/bash')

Подключаемся по ssh и радуемся красивому шелу.

Выполняем sudo -l и видим, что нам доступно выполнение команд easy_install без пароля. Ищем данную программу на gtfobins и повышаем привилегии!

С любовью, ваши SidneyJob и RESOLUTE ATTACK.



Report Page