Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этой статье я покажу прохождение хардовой по сложности машины под названием Hancliffe. На этот раз мы не только найдем и модернизируем готовые эксплоиты, но и напишем свой, который поможет получить управление в привилегированном контексте.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Как всегда, добавляем IP-адрес машины в /etc/hosts
:
10.10.11.115 hancliffe.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Результат работы скрипта
Видим три открытых порта, причем за все три отвечает веб‑сервер Nginx 1.21.0. Но на портах 80 и 8000 расположены сайты, поэтому начнем с них.
Главная страница hancliffe.htb
Главная страница hancliffe.htb:8000
Так мы получаем информационную страницу Nginx на порте 80 и страницу авторизации Stateless Password Manager на порте 8000. Со вторым сайтом все более‑менее понятно, а вот на первом явно может найтись что‑то, помимо информационной странички. Давай поищем! Для перебора каталогов я буду использовать утилиту ffuf.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-w
— словарь (я использую словари из набора SecLists);
-t
— количество потоков;
-u
— URL;
-fc
— исключить из результата ответы с кодом 403.
Задаем нужные параметры и запускаем его:
ffuf -u http://hancliffe.htb/FUZZ -t 256 -w directory_2.3_medium_lowercase.txt
Результат сканирования каталогов с помощью ffuf
В итоге находим один новый каталог, при запросе которого нам возвращают код ответа 302 — редирект на другой адрес. Если открыть этот адрес в браузере, нас перенаправят на /nuxeo/Maintenance
.
Страница /Maintenance/
Такой страницы не существует, поэтому продолжим искать каталоги и файлы в /maintenance/
.
ffuf -u http://hancliffe.htb/maintenance/FUZZ -t 256 -w files_interesting.txt
Результат сканирования файлов с помощью ffuf
Видим много последовательностей, на которые сервер странно реагирует, а также файл index.jsp
.
Страница /Maintenance/index.jsp
Тут я решил проверить разные варианты обхода проверки доступа к каталогу. Для перебора последовательностей использовал Burp Pro. В результате удалось получить три возможных варианта ответа от сервера.
Доступ к странице Apache Tomcat.
Отображение страницы в Burp Render
Ответ, сообщающий, что страницы не существует.
Отображение страницы в Burp Render
Переадресацию на другой адрес при помощи HTTP-заголовка Location
.
Отображение страницы в Burp Render
Последний вариант меня заинтересовал. Я попробовал еще раз перебрать файлы, но с последовательностью /..;/
для обхода контроля доступа.
ffuf -u 'http://hancliffe.htb/maintenance/..;/FUZZ' -t 256 -w files_interesting.txt
Результат перебора каталогов
Из полученного списка наибольший интерес вызывает страница login.jsp
.
Страница /maintenance/..;/login.jsp
В самом низу страницы видим упоминание используемой технологии — nuxeo 10.2. Это значит, что можно поискать готовые эксплоиты. Есть специализированные базы данных вроде Exploit-DB, но куда больше результатов даст Google.
Поиск «nuxeo 10.2 exploit»
Находим ссылку на репозиторий с PoC для уязвимости CVE-2019-16341. Это баг типа SSTI — включение шаблонов на стороне сервера. Потенциально он может дать нам возможность выполнять произвольный код на сервере. Но сначала немного подправим PoC под наши условия. Начнем с используемой на сервере операционной системы (строки 16 и 17).
Исправленный код эксплоита
Указываем нужный URL (строки 38 и 123).
Исправленный код эксплоита
Исправленный код эксплоита
Вроде бы все готово, запустим скрипт и запросим текущего пользователя.
Эксплуатация уязвимости
Код успешно выполнен, и мы получаем нормальный реверс‑шелл. Можно воспользоваться удобным онлайновым генератором шеллов. Выставляем свой локальный адрес и порт, в ответ получаем команду для запуска листенера и бэкконекта.
Онлайн‑генератор шелл‑кода
Выполняем код через эксплоит и получаем обратное подключение.
Выполнение кода на PowerShell
Получение бэкконнекта
Источник: xakep.ru