В этой записи я подробно покажу вам, как искать скрытые данные на сайте, затем мы углубимся в их источники и получим RCE при использовании Race Condition. Для полного захвата хоста мы используем баг в программе Python и применяем одну из методик GTFOBins.
Наша цель — захватить тренировочную машину UpDown с сайта Взломать коробку. Уровень сложности отмечен как средний.
предупреждение
К машинам с HTB рекомендуется подключаться только через VPN. Не делайте этого с компьютеров, где есть важные для вас данные, так как вы найдете в общей сети с другими участниками.
разведка
Сканирование портов
Добавьте IP-адрес машины /
: :
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(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-запрос.

Больше ничего интересного на сайте мы не нашли, поэтому начали сканирование.
Справка: веб-сканирование с помощью ffuf
Одним из первых шагов в тестировании безопасности веб-приложения является сканирование методом перебора для поиска скрытой информации и функций, недоступных обычным посетителям. Для этого можно использовать такие программы, как разведка и DIRB.
Я предпочитаю легкий и очень быстрый фу. В начале укажите следующие параметры:
-
-w
- словарь (я использовал словари из набора Списки сек); -
-t
- количество потоков; -
-u
- URL.
Мы начинаем фу: :
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-риппер или специальные средства git-дампер. На этот раз воспользуемся вторым.
git-dumper http://siteisup.htb/dev/ dev
После загрузки репозитория нужно изучить не только исходный код, но и внесенные изменения. Для удобства изложения я использую программу мерзавецкоторый должен быть открыт из каталога, где находится папка .
.

Найдите файл в репозитории 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
Но сайт недоступен.
