В этой заметке я подробно покажу, как искать скрытые данные на сайте, а мы углубимся в их источники и получим 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, и это явная точка входа.
Входная точка
Теперь нам нужно сделать дамп найденного репозитория, для чего есть набор скриптов Ремонт DWX или специальные средства демпфер щелчка. На этот раз воспользуемся вторым.
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
Но сайт недоступен.
