Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Добавляем IP-адрес машины в /
для удобства:
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
Ничего найти не удалось. Зато когда я попытался перейти на точно не существующую страницу, я получил ссылку на домен admirer-gallery.
.
Добавим найденный домен в файл /
и повторим сканирование на новом домене. Так найдем новый поддомен!
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
Его тоже добавляем в /
и получаем доступ к панели авторизации Adminer.
10.10.11.137 admirertoo.htb admirer-gallery.htb db.admirer-gallery.htb
Adminer — это легковесный инструмент администрирования СУБД, что‑то вроде легкого варианта phpMyAdmin. Так как авторизация происходит по нажатию на кнопку, значит, учетные данные уже должны быть в исходном коде страницы.
Так мы находим имя пользователя и пароль. Но сама панель Adminer ничего, кроме номера версии, нам не раскрывает.
Точка входа
Раз мы знаем номер версии, стоит поискать существующие эксплоиты. Делать это я рекомендую при помощи Google.
Так мы находим инструкцию с описанием уязвимости (PDF). Этот баг позволит нам просканировать внутренние ресурсы, а именно порты. Как указано в статье, запустим скрипт‑редиректор.
python2 redirect.py -p 80 http://127.0.0.1
Затем я решил перебрать возможные СУБД. Их список есть в документации Adminer, а для перебора я использовал Burp.
Вместо server
вставляем СУБД, а вместо localhost
— свой локальный IP-адрес. Для некоторых СУБД получим ответ с записью ()
, а в других случаях совсем ничего.
Тогда я нашел исходники Adminer на GitHub и посмотрел, как указываются разные модули.
И первый же модуль elastic
делает запрос на наш хост.
А в браузере получаем код HTML-страницы с сервера. Это значит, что мы добились от сервера выполнения произвольного запроса на другой ресурс.
Точка опоры
Теперь нам нужно найти внутренние сервисы и получить какую‑нибудь информацию от них. Искать их сканированием через найденную уязвимость — дело долгое и трудоемкое, поэтому начнем с поиска портов, подключение к которым фильтруется. Для этого выполним SYN-сканирование.
nmap -p- -sS admirertoo.htb
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»