WriteUpTHM - 0day

WriteUpTHM - 0day

wr3dmast3r|RA

Всем привет! С вами wr3dmast3r, и сегодня мы разберем ctf с tryhackme.

Содержание

  1. Запуск Nikto, чтобы найти точку входа
  2. Ошибка, которая показывает, что страница уязвима для shellshock
  3. Выполнение Curl запроса к веб-серверу
  4. Однострочная обратная оболочка с запросом Curl
  5. Uname -a дает overlayfs уязвимость для локального повышения привилегий
  6. Загрузка экплойта на машину, компиляция и запуск

Recon

nmap

Видим два открытых порта, 22 (ssh) и 80 (http). Версия OpenSSH хоть и устарела, но я так и не попытался ее использовать.

Двигаясь дальше, я перешел на главную страницу сайта, она является страницей портфолио разработчика:

http

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

robots.txt

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

fuzing

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

rsa

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

Обнаружение уязвимостей

После того, как я наткнулся на другие открытые директории, я запустил nikto, чтобы проверить все известные веб-уязвимости.

nikto

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

Содержимое /cgi-bin/test.cgi:

hello world

Уязвимость Shellshock

Я не был знаком с уязвимостью shellshock, поэтому искал информации о ней.
Существует отличная презентация от OWASP, объясняющая суть уязвимости. Она содержит много полезной информации и демонстрирует, как использовать эту уязвимость.

Подводя итог, можно сказать, что shellshock позволяет нам использовать переменные среды bash для удаленного выполнения кода (RCE). Для работы этой уязвимости должны выполняться три условия:

  1. Веб-сервер Apache
  2. mod_cgi включен
  3. cgi-скрипт "привет мир"

В нашем случае все три условия выполняются, это значит, что мы можем выполнять любые команды на веб-сервере!

Удаленное выполнение кода

Чтобы протестировать RCE, я использовал curl для получения файла /etc/passwd:

curl

Первый флаг

curl flag

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

reverse shell

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

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

nikto

Подходящий эксплойт доступен по ссылке:

https://www.exploit-db.com/exploits/37292

Загружаем его через python server

exploit

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

exploit root

Последний флаг сможете прочитать самостоятельно. На этом закончим.

С любовью от RESOLUTE ATTACK!




Report Page