
Разбор комнаты Vulnerability Capstone на THM и эксплойт-скрипт для CVE-2018-16763.
Разбор комнаты THM Vulnerability Capstone & эксплойт-скрипт для CVE-2018-16763.
Я не претендую на авторство в обнаружении этой уязвимости. Спасибо следующим людям.
Обнаружение уязвимости:
0xd0ff9
Комната TryHackMe и автор:
https://tryhackme.com/room/vulnerabilitycapstone
https://tryhackme.com/p/cmnatic
Ссылки:
https://github.com/noraj/fuelcms-rce/blob/master/exploit.rb
https://github.com/daylightstudio/FUEL-CMS/issues/478
https://packetstormsecurity.com/files/164756/Fuel-CMS-1.4.1-Remote-Code-Execution.html
1. Удалённое выполнение кода
Fuel CMS — это система управления контентом для веб-приложений. В версии 1.4.1 существует RCE-уязвимость, которая позволяет выполнять/исполнять произвольный PHP-код двумя разными путями. Первый путь к RCE — GET-запрос к /fuel/pages/select/ с параметром filter data. Второй путь — POST-запрос к /fuel/preview с параметром data. Я довольно долго искал в интернете и, к сожалению, не смог найти исходный код, показывающий, где находится уязвимость. Я полный ноль, знаю.....лол. Теперь продолжим разбор!
Начнём с нескольких сканирований портов, чтобы получить представление о нашей поверхности атаки. Мне нравится rustscan для получения общего обзора цели перед более узким и сфокусированным сканированием с помощью nmap.

Выглядит довольно стандартно. Полагаю, на этих портах будут SSH и HTTP, однако мы запустим ещё несколько сканирований с помощью nmap, чтобы получить более точное представление.

Итак, у нас есть SSH и HTTP на стандартных портах. Давайте заглянем на веб-страницу и посмотрим, что у нас есть!

Веб-сервер использует Fuel CMS версии 1.4. Эта версия уязвима к внедрению команд через выполнение PHP-кода. Давайте посмотрим на CVE от NVD ниже.

Для этого программного обеспечения доступно несколько эксплойтов. Я приложил эксплойт на Python, но он отстой. Я называю его отстоем, потому что нам придётся вручную разбирать ответ веб-запроса, чтобы увидеть вывод наших команд. Мне не удалось убрать лишнее. Давайте посмотрим!

Я выполнил команду ls -al. Как мы видим, вывод команды находится между HTML-элементами div.

Я не буду раскрывать флаг, но дам подсказку! Можете начать с изучения домашнего каталога. Спасибо за чтение этого разбора. Удачи!