CTF-задание: взлом ch4inrulz

ctf задания

В этой статье мы будем преодолевать большое количество препятствий на пути к заветному руту. По ходу реализации взлома мы в разных вариантах обнаружим уязвимости типа LFI, RCE и повышение привилегий. А упражняться будем на виртуальной машине ch4inrulz: 1.0.1, скаченной с сервиса VulhHub.

VulnHub — ресурс, который предоставляет образы операционных систем с сервисами, в которых «зашиты» уязвимости. Скачав такой образ виртуальной машины, каждый человек может получить опыт пентеста или системного администрирования.

Также читайте наш предыдущий отчет — о взломе виртуальной машины Wakanda: 1.

Итак, мы скачали и установили виртуальную машину. Теперь необходимо скачать образ виртуальной ch4inrulz с сервиса VulhHub. Более подробно о настройке виртуальных машин с VulhHub мы рассказывали в предыдущей статье про взлом Wakanda ссылка выше.

Сканирование портов

Начнем с классики: сканируем ее при помощи Nmap. Для этого выполним такую команду (имейте ввиду если будете повторять, то IP-адрес будет другим):

CTF-задание: взлом ch4inrulz

Обнаруживаем, что у хоста торчат порты 21/22, то есть FTP и SSH, а также 80 и 8011 — с веб-сервером.

Можно, конечно, первым делом кинутся на FTP, но делать этого мы не будем, а вместо этого попробуем постучаться на веб-сервер и проведем начальную разведку. На 80-м порте видим сайт какого-то Франка, но никакого интересного интерактива на нем нет.

CTF-задание: взлом ch4inrulz

На 8011-м порте видим заманчивое сообщение, но больше ничего полезного на странице не нашлось.

CTF-задание: взлом ch4inrulz

Фаззинг директорий

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

Первым мы исследовали 80-й порт, где обнаружился путь /development.

CTF-задание: взлом ch4inrulz
CTF-задание: взлом ch4inrulz

Тут нас встречает basic authentication — пробуем HTTP Verb Tampering, но безуспешно.

HTTP Verb Tampering — атака, которая использует уязвимость в HTTP-Verb-аутентификации и механизмах контроля доступа. Многие механизмы аутентификации только ограничивают доступ по своим параметрам, не предусматривая несанкционированный доступ к закрытым ресурсам с помощью других методов.
CTF-задание: взлом ch4inrulz

Можно начать брутить, но прежде посмотрим, что нам даст фаззинг на 8011-м порте.

CTF-задание: взлом ch4inrulz

Интересно! Кажется, мы нашли API какого-то приложения. Срочно лезем смотреть!

CTF-задание: взлом ch4inrulz

Local File Inclusion

Из перечисленных файлов в живых остался только files_api.php.

CTF-задание: взлом ch4inrulz

Окей, для работы скрипта требуется параметр file. Давай передадим его.

CTF-задание: взлом ch4inrulz

Кажется, нас спалили! Попытка перебора стандартных файлов и проверка на напрашивающийся LFI не сработали через запросы GET. На данном этапе эта точка наиболее интересна, так что давай попробуем поиграться с ней, а не копать дальше. Первая мысль, что пришла в голову: а что, если попробовать POST?

CTF-задание: взлом ch4inrulz

Успех! Нам даже не пришлось заморачиваться с врапперами, null-байтами и прочими ухищрениями для тестирования возможности эксплуатации уязвимостей типа LFI, которую мы заподозрили ранее.

Теперь хотелось бы посмотреть на исходники веб-приложений. Для этого придется немного помучиться с угадыванием путей, что в итоге приведет нас к следующему.

CTF-задание: взлом ch4inrulz

Для поиска путей можно использовать разные словари, однако нам хватило и ручного перебора по стандартным вебовым путям из головы.

Отлично, теперь мы знаем, что корневая папка веба — /var/www. Попытка проверить содержание конфигурационных файлов в этой директории не увенчалась успехом, но мы знаем про папку /development. А там нас ждет очередная удача.

CTF-задание: взлом ch4inrulz

Теперь заглянем в /etc/.htpasswd.

CTF-задание: взлом ch4inrulz

А вот, кажется, и креды от basic authentication. Осталось сломать хеш от пароля.

Воспользуемся для этого утилитой hashcat и словариком rockyou.

Здесь

  • -a 0 — тип атаки по словарю;
  • -m 1600 — номер типа хеша. В нашем случае — Apache $apr1$ MD5, md5apr1, MD5 (APR). Узнать этот номер можно здесь);
  • hash — файлик с хешем $apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0;
  • Downloads/rockyou.txt — путь до словаря.

В результате получаем пароль!

CTF-задание: взлом ch4inrulz
Кстати, потом обнаружилось, что хеш можно было получить, выкачав доступный index.html.bak на 80-м порте, но было уже поздно.

Мы же бежим смотреть, что находится за basic authentication с кредами frank:frank!!!. Там нас встречает следующая страница.

CTF-задание: взлом ch4inrulz

Опять никаких ссылок, и нам снова приходится мучиться с угадыванием пути, но тут все тривиально.

CTF-задание: взлом ch4inrulz

Мы нашли сервис для загрузки картинок. Заманчиво, но давай сначала взглянем на исходники. Как ты помнишь, мы уже можем это сделать. Но без врапперов тут уже не обойтись.

CTF-задание: взлом ch4inrulz

Раскрываем это в читабельном виде.

CTF-задание: взлом ch4inrulz

Получили следующий исходник.

Первая идея — впихнуть в метаданные картинки код на PHP, который мы потом сможем исполнить благодаря обнаруженной ранее LFI.

Осталось подготовить пейлоад. Для этого берем любую картинку в JPG и с помощью exiftool положим в comment нужный нам код при помощи вот такой команды:

CTF-задание: взлом ch4inrulz

Теперь идем загружать!

CTF-задание: взлом ch4inrulz

Отлично, но где сам файл? Самые наблюдательные могли увидеть его в сорцах, которые мы вытащили ранее.

CTF-задание: взлом ch4inrulz

Пора инклудить!

CTF-задание: взлом ch4inrulz

Ура!

Получаем RCE

Теперь формируем запрос на проброс реверс-шелла. Если подробнее, то URL-энкодим вот такой пейлоад:

Затем отправляем его в функции urldecode и system. Кстати, разные полезные нагрузки ты можешь позаимствовать здесь.

CTF-задание: взлом ch4inrulz

В результате ловим сессию.

CTF-задание: взлом ch4inrulz

Эскалация привилегий

Проверим, что за система крутится на тачке.

CTF-задание: взлом ch4inrulz

Нам несказанно повезло, ведь мы можем получить рут при помощи эксплоита для уязвимости DirtyCow. Находим его в ExploitDB и, следуя инструкции, исполняем. (см. также лучшие сайты для поиска уязвимостей).

CTF-задание: взлом ch4inrulz
CTF-задание: взлом ch4inrulz

Тачка наша, расходимся!

Итого

В этом CTF-задании мы обнаружили торчащие наружу FTP (который в нашем решении не пригодился), SSH и два веб-приложения. Благодаря LFI в одном из них мы разжились кредами для basic authentication, где нашелся сервис для аплоада картинок. Загрузив вредоносную картинку, мы получили RCE, проинклудив ее через LFI. Далее мы завладели правами рута при помощи эксплоита DirtyCow. Вот и все!

Для самостоятельного изучения можете скачать виртуалку и попробовать проделать все то же, не подглядывая сюда. Ну а если столкнетесь с проблемой тогда воспользуйтесь статьей.

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *