Содержание статьи
Наша цель — получение прав суперпользователя на машине Era с учебной площадки Hack The Box. Уровень сложности задания — средний.
warning
Подключаться к машинам HTB лучше через средства анонимизации и виртуализации. Не делай этого с компьютеров, на которых хранишь важные данные: ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /:
10.10.11.79 era.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).

Сканер нашел два открытых порта:
- 21 — служба FTP;
- 80 — веб‑сервер Nginx 1.18.0.
FTP-сервер не разрешает анонимную аутентификацию, поэтому проверим, что нам доступно на веб‑сервере.

Точка входа
Сайт — это просто лендинг. Сканирование каталогов и файлов ничего нового не дает, поэтому посканируем поддомены в поисках других сайтов. Для этого используем ffuf.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-
-u— URL; -
-H— HTTP-заголовок; -
-w— словарь (я использую словари из набора SecLists); -
-t— количество потоков.
Место перебора помечается словом FUZZ.
Запускаем сканер, перечислив все параметры:
ffuf -u "http://era.htb/" -H 'Host: FUZZ.era.htb' -w subdomains-bitquark-top100000.txt -t 128

В вывод утилиты попадают все варианты из списка, поэтому стоит настроить фильтр, например по размеру ответа (параметр -fs).
ffuf -u "http://era.htb/" -H 'Host: FUZZ.era.htb' -w subdomains-bitquark-top100000.txt -t 128 -fs 154

Получаем новый поддомен, обновляем запись в / и открываем сайт в браузере.
10.10.11.79 era.htb file.era.htb

На сайте есть формы авторизации и по учетным данным, и по контрольным вопросам.

На сайте ничего интересного найти не удалось, поэтому перейдем к поиску потенциально полезных PHP‑файлов. Я для этого использую feroxbuster.
Для сканирования задаем параметры:
-
-u— URL; -
-d— глубина сканирования; -
-t— количество потоков; -
-w— словарь (снова из набора SecLists).
feroxbuster -u http://file.era.htb/ -d 1 -t 128 -w php_files_common_5476.txt -C 404

Находим эндпоинт регистрации. Авторизованному пользователю доступно больше возможностей, в том числе управление загруженными файлами.

После загрузки файла мы получаем ссылку на него. В ней нет никаких отличительных параметров, кроме целочисленного идентификатора файла.

При переходе по ссылке появляется кнопка для скачивания файла.

Точка опоры
IDOR
Проверим, есть ли здесь уязвимость IDOR. Для этого переберем целочисленные идентификаторы с помощью Burp Intruder.


Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
