WriteUpTHM - 0day
wr3dmast3r|RA
Всем привет! С вами wr3dmast3r, и сегодня мы разберем ctf с tryhackme.
Содержание
- Запуск Nikto, чтобы найти точку входа
- Ошибка, которая показывает, что страница уязвима для shellshock
- Выполнение Curl запроса к веб-серверу
- Однострочная обратная оболочка с запросом Curl
- Uname -a дает overlayfs уязвимость для локального повышения привилегий
- Загрузка экплойта на машину, компиляция и запуск
Recon

Видим два открытых порта, 22 (ssh) и 80 (http). Версия OpenSSH хоть и устарела, но я так и не попытался ее использовать.
Двигаясь дальше, я перешел на главную страницу сайта, она является страницей портфолио разработчика:

Я всегда проверяю самые очевидные директории, robots.txt дал нам сообщение:

У создателя CTF явно есть чувство юмора! Запускаю фаззинг.

Куча интересных папок, например, папка /backup содержит закрытый ключ RSA:

Я подумал, что это поможет авторизоваться, и потратил много времени в попытках авторизации по ssh с помощью этого ключа. Но ключ защищен паролем, поэтому я использовал /usr/share/john/ssh2john.py для его взлома. Я попытался использовать имена пользователей ryan, admin и root, но безуспешно.
Обнаружение уязвимостей
После того, как я наткнулся на другие открытые директории, я запустил nikto, чтобы проверить все известные веб-уязвимости.

Сканирование показало, что существует файл с именем /cgi-bin/test.cgi, который может быть уязвим для shellshock.
Содержимое /cgi-bin/test.cgi:

Уязвимость Shellshock
Я не был знаком с уязвимостью shellshock, поэтому искал информации о ней.
Существует отличная презентация от OWASP, объясняющая суть уязвимости. Она содержит много полезной информации и демонстрирует, как использовать эту уязвимость.
Подводя итог, можно сказать, что shellshock позволяет нам использовать переменные среды bash для удаленного выполнения кода (RCE). Для работы этой уязвимости должны выполняться три условия:
- Веб-сервер Apache
- mod_cgi включен
- cgi-скрипт "привет мир"
В нашем случае все три условия выполняются, это значит, что мы можем выполнять любые команды на веб-сервере!
Удаленное выполнение кода
Чтобы протестировать RCE, я использовал curl для получения файла /etc/passwd:

Первый флаг

Отлично, это работает, теперь, используя данную уязвимостью, попробуем получить reverse-shell. Запускаем прослушку порта 1234 и пробуем получить шелл.

Повышение привилегий
Запустим searchsploit, чтобы посмотреть, есть подходящий нам экплойт.

Подходящий эксплойт доступен по ссылке:
https://www.exploit-db.com/exploits/37292
Загружаем его через python server

Повышаем привилегии:

Последний флаг сможете прочитать самостоятельно. На этом закончим.
С любовью от RESOLUTE ATTACK!