Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.167 carpediem.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 — веб‑сервер Nginx 1.18.0. Начнем с веб‑сервера.

На сайте ничего интересного найти не удалось, поэтому попробуем поискать скрытый контент.
Сканирование веб-контента
Искать потайные страницы мы будем при помощи сканера ffuf.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-
-w
— словарь (я использую словари из набора SecLists); -
-t
— количество потоков; -
-u
— URL.
ffuf -u 'http://carpediem.htb/FUZZ' -w directory_2.3_medium_lowercase.txt -t 256

Ничего интересного и тут. Идем дальше и сканируем поддомены, для чего нам нужно перебирать запись в HTTP-заголовке HOST
. При этом используем фильтр --fs
, который поможет отсеять ложные страницы по их размеру.
ffuf -u 'http://carpediem.htb/FUZZ' -w subdomains-top1million-110000.txt -H 'Host: FUZZ.carpediem.htb' -t 256 --fs 2875

Находим новый поддомен, поэтому дополняем запись в файле /
и идем смотреть новый сайт.
10.10.11.167 carpediem.htb portal.carpediem.htb

Точка входа
Первым делом обратим внимание на то, как подключается страница. Это происходит через параметр p
.

Также на сайте можно зарегистрироваться и авторизоваться. Сделаем это!

Если всю работу вести в Burp Proxy, то в истории запросов можно заметить обращение к какому‑то файлу /
, которому в параметре f
передается команда register
.

Но вернемся к загружаемой через параметр странице и проверим, нет ли здесь уязвимости LFI. Для этого переберем разные нагрузки через Burp Intruder.


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