Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодня мы с тобой пройдем легкую машину с площадки Hack The Box под названием Spectra. Мы будем пентестить сайт под управлением WordPress, продвигаться на хосте благодаря автологину и повысим привилегии за счет команды initctl
.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Первым делом добавляем IP машины в /etc/hosts
:
10.10.10.229 spectra.htb
И сканируем порты.
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Результат работы скрипта
По результатам сканирования имеем три открытых порта:
SSH и MySQL для нас пока закрыты, поэтому начнем с веба. Внимательно изучим сайт и соберем информацию.
Сайт представляет собой просто страницу с двумя ссылками. Первая ведет к каталогу, где развернут сайт Software Issue Management на WordPress, а по второму адресу просто получим сообщение об ошибке при подключении к базе данных.
Главная страница сайта
Страница сайта Software Issue Management
Сообщение об ошибке соединения с базой данных
Интересен адрес тестового сайта:
http://10.10.10.229/testing/index.php
Мне показалось подозрительным прямое указание индекс‑файла index.php
, поэтому я проверил, что вернет сервер при обращении к http://10.10.10.229/testing/
. И сервер вдруг вернул все содержимое этой директории! Простейшая ошибка в настройках веб‑сервера, которая иногда может помочь.
Содержимое директории testing
Быстро пересмотрев файлы, я нашел в wp-config.php.save
(бэкап wp-config.php
) учетные данные для подключения к базе данных.
Учетные данные для подключения к базе данных
Уже что‑то имеем, но подключиться к базе данных у меня не вышло, поскольку либо запрещена удаленная авторизация, либо в настройках службы указан только определенный адрес, с которого разрешено подключение. Так что продолжим изучать веб и перейдем к WordPress.
Для тестирования сайтов на WordPress мне не раз пригождалась утилита WPScan. С ее помощью можно обнаружить уязвимые версии самого WordPress, тем и плагинов, а также собрать список пользователей и перебрать учетные данные — в общем, все, что нужно.
Чаще всего уязвимости кроются в плагинах, поэтому я зарядил перебор в агрессивном режиме (занимает около получаса).
wpscan --url http://spectra.htb/main/ --plugins-detection aggressive
К сожалению, ничего обнаружено не было. Но вспомним, что у нас есть один пароль, который можно спреить (Password Spraying) по всем найденным пользователям. Давай поищем их в CMS. Запускаем WPScan с опцией -e u
.
wpscan --url http://spectra.htb/main/ -e u
Найденные пользователи
И у нас получается авторизоваться от имени пользователя administrator с паролем, найденным в бэкапе файла конфигураций WordPress.
Профиль пользователя administrator
Администратор WordPress имеет право загружать на сервер файл, поэтому мы можем загрузить шелл и выполнить бэкконнект к своему хосту. В данном случае это легче всего сделать с помощью модуля exploit/unix/webapp/wp_admin_shell_upload
в Metasploit Framework. В опциях модуля следует указать адрес и порт локального хоста для подключения (LHOST
и LPORT
), целевой хост (RHOSTS
), данные администраторской учетки и путь к домашнему каталогу WordPress (TARGETURI
).
Источник: xakep.ru