Содержание статьи
Наша цель — захватить учебную машину UpDown с площадки Hack The Box. Уровень сложности отмечен как средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.177 updown.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 8.2p1 и 80 — веб‑сервер Apache 2.4.41. На веб‑сервере нас встречает чекер сайтов.
Главная страница раскрывает нам реальный домен — siteisup.
. Поэтому добавляем запись в файл /
:
10.10.11.177 updown.htb siteisup.htb
Затем я попытался послать запрос на свой простенький HTTP-сервер, который можно запустить командой python3
. В итоге я получил ответ, содержащий страницу HTML в текстовом виде, а в логах своего сервера увидел следующий GET-запрос.
На сайте больше ничего интересного найти не удалось, поэтому приступим к сканированию.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-
-w
— словарь (я использую словари из набора SecLists); -
-t
— количество потоков; -
-u
— URL.
Запускаем ffuf:
ffuf -u 'http://siteisup.htb/FUZZ' -w directory_2.3_medium_lowercase.txt -t 256
Находим интересный каталог dev
и повторяем сканирование уже в нем.
ffuf -u 'http://siteisup.htb/dev/FUZZ' -w files_interesting.txt -t 256
И обнаруживаем репозиторий Git, а это явная точка входа.
Точка входа
Теперь нам нужно сдампить найденный репозиторий, для чего есть набор скриптов dvcs-ripper или специальное средство git-dumper. На этот раз воспользуемся вторым.
git-dumper http://siteisup.htb/dev/ dev
После загрузки репозитория нужно исследовать не только исходный код, но и внесенные изменения. Для удобства представления я использую программу gitk, которую надо открыть из директории, где расположен каталог .
.
В репозитории находим файл admin.
, который отсутствует на самом сайте, а это значит, что нам нужно найти новый сайт. Для этого с помощью ffuf просканируем поддомены. При запуске добавим параметр -H
— заголовок HTTP.
ffuf -u http://siteisup.htb/ -t 256 -w subdomains-top1million-110000.txt -H 'Host: FUZZ.siteisup.htb'
Находим поддомен dev
и добавляем его в файл /
.
10.10.11.177 updown.htb siteisup.htb dev.siteisup.htb
Но к сайту нет доступа.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»