Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этом райтапе я покажу, как эксплуатировать Adminer, OpenTSDB и OpenCATS. Для повышения привилегий будем использовать комбинацию уязвимостей и неправильных конфигураций ПО: уязвимость произвольной записи файлов OpenCATS для конфигурации whois, whois для получения и инъекции команды терминала ОС в Fail2ban и Fail2ban для ее активации. Все это — в рамках прохождения сложной машины AdmirerToo с площадки Hack The Box.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
для удобства:
10.10.11.137 admirertoo.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
).
Результат работы скрипта
Скрипт нашел всего два открытых порта: 22 — служба OpenSSH 7.9p1 и 80 — веб‑сервер Apache 2.4.38.
Начинаем традиционно с веба.
Главная страница сайта
Первым делом просканируем сайт на наличие скрытых ресурсов.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-w
— словарь (я использую словари из набора SecLists);
-t
— количество потоков;
-u
— URL;
-fc
— исключить из результата ответы с кодом 403.
Запускаем ffuf:
ffuf -u http://admirertoo.htb/FUZZ -t 256 -w files_interesting.txt -fc 403
Результат сканирования каталогов с помощью ffuf
Ничего найти не удалось. Зато когда я попытался перейти на точно не существующую страницу, я получил ссылку на домен admirer-gallery.htb
.
Ошибка Not Found
Добавим найденный домен в файл /etc/hosts
и повторим сканирование на новом домене. Так найдем новый поддомен!
10.10.11.137 admirertoo.htb admirer-gallery.htb
ffuf -u http://admirer-gallery.htb -t 256 -w subdomains-top1million-110000.txt -H 'Host: FUZZ.admirer-gallery.htb' -fs 14099
Результат сканирования поддоменов
Его тоже добавляем в /etc/hosts
и получаем доступ к панели авторизации Adminer.
10.10.11.137 admirertoo.htb admirer-gallery.htb db.admirer-gallery.htb
Страница авторизации Adminer
Adminer — это легковесный инструмент администрирования СУБД, что‑то вроде легкого варианта phpMyAdmin. Так как авторизация происходит по нажатию на кнопку, значит, учетные данные уже должны быть в исходном коде страницы.
Исходный код страницы
Так мы находим имя пользователя и пароль. Но сама панель Adminer ничего, кроме номера версии, нам не раскрывает.
Рабочая панель Adminer
Раз мы знаем номер версии, стоит поискать существующие эксплоиты. Делать это я рекомендую при помощи Google.
Поиск эксплоитов для Adminer 4.7.8
Так мы находим инструкцию с описанием уязвимости (PDF). Этот баг позволит нам просканировать внутренние ресурсы, а именно порты. Как указано в статье, запустим скрипт‑редиректор.
python2 redirect.py -p 80 http://127.0.0.1
Затем я решил перебрать возможные СУБД. Их список есть в документации Adminer, а для перебора я использовал Burp.
Список поддерживаемых СУБД
Запрос на сервер
Вместо server
вставляем СУБД, а вместо localhost
— свой локальный IP-адрес. Для некоторых СУБД получим ответ с записью () admirer_ro...
, а в других случаях совсем ничего.
Ответ сервера
Тогда я нашел исходники Adminer на GitHub и посмотрел, как указываются разные модули.
Список модулей
И первый же модуль elastic
делает запрос на наш хост.
Запрос на сервер
Логи редиректора
А в браузере получаем код HTML-страницы с сервера. Это значит, что мы добились от сервера выполнения произвольного запроса на другой ресурс.
Ответ сервера
Теперь нам нужно найти внутренние сервисы и получить какую‑нибудь информацию от них. Искать их сканированием через найденную уязвимость — дело долгое и трудоемкое, поэтому начнем с поиска портов, подключение к которым фильтруется. Для этого выполним SYN-сканирование.
nmap -p- -sS admirertoo.htb
Результат сканирования портов
Источник: xakep.ru