Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этом райтапе я подробно покажу, как искать скрытые данные на сайте, затем покопаемся в его исходниках и получим RCE при эксплуатации Race Condition. Для полного захвата хоста используем ошибку в программе на Python и применим одну из техник GTFOBins.
Наша цель — захватить учебную машину UpDown с площадки Hack The Box. Уровень сложности отмечен как средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
:
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. На веб‑сервере нас встречает чекер сайтов.
Главная страница сайта updown.htb
Главная страница раскрывает нам реальный домен — siteisup.htb
. Поэтому добавляем запись в файл /etc/hosts
:
10.10.11.177 updown.htb siteisup.htb
Затем я попытался послать запрос на свой простенький HTTP-сервер, который можно запустить командой python3 -m http.server 80
. В итоге я получил ответ, содержащий страницу 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
Результат сканирования каталогов с помощью ffuf
Находим интересный каталог dev
и повторяем сканирование уже в нем.
ffuf -u 'http://siteisup.htb/dev/FUZZ' -w files_interesting.txt -t 256
Результат сканирования файлов с помощью ffuf
И обнаруживаем репозиторий Git, а это явная точка входа.
Теперь нам нужно сдампить найденный репозиторий, для чего есть набор скриптов dvcs-ripper или специальное средство git-dumper. На этот раз воспользуемся вторым.
git-dumper http://siteisup.htb/dev/ dev
После загрузки репозитория нужно исследовать не только исходный код, но и внесенные изменения. Для удобства представления я использую программу gitk, которую надо открыть из директории, где расположен каталог .git
.
Представление репозитория в gitk
В репозитории находим файл admin.php
, который отсутствует на самом сайте, а это значит, что нам нужно найти новый сайт. Для этого с помощью ffuf просканируем поддомены. При запуске добавим параметр -H
— заголовок HTTP.
ffuf -u http://siteisup.htb/ -t 256 -w subdomains-top1million-110000.txt -H 'Host: FUZZ.siteisup.htb'
Результат сканирования поддоменов с помощью ffuf
Находим поддомен dev
и добавляем его в файл /etc/hosts
.
10.10.11.177 updown.htb siteisup.htb dev.siteisup.htb
Но к сайту нет доступа.
Ошибка при обращении к сайту
Источник: xakep.ru