Категория > Новости > HTB Static. Захватываем сервер через VPN и дыру в Xdebug - «Новости»
HTB Static. Захватываем сервер через VPN и дыру в Xdebug - «Новости»21-12-2021, 00:00. Автор: Иосиф |
Hack The Box.warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. Разведка. Сканирование портовДобавляем IP-адрес машины в
10.10.10.246 static.htb
И запускаем сканирование портов. Справка: сканирование портовСканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа. Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта. ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное, с использованием имеющихся скриптов (опция ![]() Мы нашли три открытых порта: 22 (служба OpenSSH 7.9p1), 2222 (служба OpenSSH 7.6p1) и 8080 (веб‑сервер Apache 2.4.38). Начнем с веба. Справка: брутфорс учетокПоскольку вначале у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — это перебирать пароли брутфорсом, но машины с HTB почти всегда можно пройти по‑другому. В жизни таких вариантов может не быть, к тому же есть шансы подобрать пароль или получить его при помощи социальной инженерии. В результатах скана отмечено, что в корневом каталоге сервера есть файл К примеру, никто не хочет, чтобы в поисковой выдаче появлялись страницы авторизации администраторов сайта, файлы или персональная информация со страниц пользователей и прочие вещи в таком духе. Но у любой медали две стороны: злоумышленники первым делом просматривают этот файл, чтобы узнать о файлах и каталогах, которые хочет спрятать администратор сайта. В нашем случае есть два каталога: На первой странице нас встречает самописный сайт, а точнее, форма авторизации. Во втором каталоге нет файла ![]() ![]() Скачиваем дамп базы данных и просматриваем сообщение.
В сообщении сказано, что файл был поврежден и его требуется восстановить. Разархивировать GZIP у меня тоже не вышло, поэтому я отправился в Google за поиском утилиты, способной решить эту проблему. Точка входаGZIP fixПоискав на просторах GitHub, я нашел программку fixgz. Но перед использованием ее нужно собрать из исходников.
git clone https://github.com/yonjar/fixgz
cd fixgz
g++ fixgz.cpp
./a.out ../db.sql.gz fixed_db.sql.gz
gunzip fixed_db.sql.gz
![]() После исправления архива мы его распаковываем и читаем дамп базы данных. В дампе мы найдем учетные данные для авторизации: логин, хеш пароля и зачем‑то TOTP — одноразовый пароль на основе времени. Содержимое дампа базы данных У нас есть хеш, значит, нужно попытаться его перебрать. Но перед этим необходимо узнать алгоритм. Все возможные алгоритмы хеширования для заданной последовательности может подыскать утилита HashId. ![]() Из всех представленных алгоритмов наиболее популярный, а значит, и наиболее вероятный — SHA-1. Для него есть много онлайновых декрипторов с огромными базами. Воспользуемся одним из них и получим очень простой пароль. ![]() С учетными данными ![]() TOTPTOTP (Time-based One-Time Password Algorithm) — алгоритм создания одноразовых паролей для защищенной аутентификации. Это алгоритм односторонней аутентификации, то есть сервер удостоверяется в подлинности клиента. Главное отличие TOTP от других подобных алгоритмов — генерация пароля на основе времени. Обычно это не точное время, а какой‑то его интервал (по умолчанию 30 секунд). Можно найти много генераторов ТОТP, как онлайновых, так и реализованных в виде библиотек для разных языков программирования. Что делает ТОТP безопасным — это TOTP-секрет, который мы, скорее всего, и нашли в базе. Осталось настроить время, как на удаленном сервере. Узнать его мы можем из ответа HTTP в заголовке HTTP-ответ Затем я использовал расширение auth-helper для Firefox. Полученный OTP быстро вставляем в форму, и нам открываются дополнительные возможности на сайте. ![]() Видим список серверов и соответствующие IP-адреса. Вот только сети эти нам недоступны. Также имеется форма ввода для какого‑то генератора. Я ввел простое слово и получил конфиг VPN. ![]() Откроем файл и посмотрим параметры подключения. Так, в параметре ![]() Первым делом нужно добавить соответствующую запись в
10.10.10.246 static.htb vpn.static.htb
Теперь попробуем подключиться по VPN. ![]() Из логов мы видим, что автоматически добавился маршрут в сети
sudo ip route add 172.20.0.0/24 dev tun9
А затем обратимся к хосту WEB ( ![]() Точка опорыСтраница ![]() Здесь очень много информации, которую нужно тщательно проанализировать. Отсюда можно узнать версии всех затронутых программных продуктов, таких как OpenSSL, PDO_MYSQL, Phar. Высока вероятность, что один из них будет не обновлен и поэтому уязвим. Так натыкаемся на Xdebug — средство профилирования и отладки скриптов на PHP. Xdebug поставляется как расширение для PHP, поэтому может дать нам выполнение произвольного кода. В базе Metasploit есть такой эксплоит. Поиск эксплоитов в базе MetasploitПараметры эксплоита По умолчанию Xdebug будет прослушивать порт 9000 на машине разработчика. Чтобы активировать Xdebug, в GET- или POST-параметре или в cookie должен присутствовать параметр Обычная конфигурация Xdebug может выглядеть так: Перейти обратно к новости |