Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этой статье я покажу, как искать скрытые каталоги и домены на сайтах, затем мы проэксплуатируем инъекцию команд, чтобы получить доступ к хосту, атакуем InfluxDB при помощи готового эксплоита, а потом разберемся, как заставить консольное приложение выдать нам критически важную инфу.
Все перечисленное мы будем проделывать на машине Devzat с площадки Hack The Box. Уровень ее сложности указан как средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts
:
10.10.11.118 devzat.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
).
Результат работы скрипта
Мы нашли три открытых порта:
Справка: брутфорс учеток
Поскольку вначале у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — перебирать пароли брутфорсом, но машины с HTB почти всегда можно пройти другим способом. В жизни таких вариантов может не быть, к тому же есть шансы подобрать пароль или получить его при помощи социальной инженерии.
Поскольку на SSH нам делать нечего, будем изучать доступный веб‑сайт.
Главная страница сайта
На главной странице встречаем описание мессенджера Devzat, а пройдя чуть ниже — и описание способа подключения.
Инструкция, как подключиться к мессенджеруssh -l ralf devzat.htb -p 8000
Список доступных команд
Ни получение списка пользователей, ни какие‑либо сообщения ничего нам не дают. Поэтому перейдем к активному сканированию веба.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-w
— словарь (я использую словари из набора SecLists);
-t
— количество потоков;
-u
— URL;
-fc
— исключить из результата ответы с кодом 403.
Команда получается следующая:
ffuf -u 'http://devzat.htb/FUZZ' -t 256 -w directory_2.3_medium_lowercase.txt
Результат сканирования каталогов с помощью ffuf
И ничего интересного.
Помимо скрытых каталогов, нужно просканировать и виртуальные хосты (поддомены). Используем тот же ffuf
. Для этого мы будем перебирать HTTP-заголовок Host
(параметр -H
). Поскольку ответ на все запросы будет включать десять строк, отфильтруем их из результата (параметр -fl
)
ffuf -u 'http://devzat.htb' -t 256 -H 'Host: FUZZ.devzat.htb' -w subdomains-top1million-110000.txt -fl 10
Результат сканирования поддоменов с помощью ffuf
И находим новый поддомен. Добавим его в файл /etc/hosts
.
10.10.11.118 devzat.htb pets.devzat.htb
Главная страница сайта pets.devzat.htb
На странице есть кое‑какие запросы серверных функций, но все равно стоит просканировать скрытые файлы и каталоги. При возникновении ошибки 404 каждый раз будет возвращаться кастомная страница, поэтому исключим эти ответы из конечного результата. Будем фильтровать по объему страницы (параметр -fs
).
ffuf -u 'http://pets.devzat.htb/FUZZ' -t 256 -w files_interesting.txt -fs 510
Результат сканирования каталогов с помощью ffuf
И находим каталог .git
. Он должен открыть нам исходные коды. Чтобы загрузить его, используем утилиту Rip-Git из набора dvcs-ripper.
rip-git.pl -v -u http://pets.devzat.htb/.git/
Загрузка данных из репозитория Git
Открыв главный файл main.go
, сразу находим уязвимую функцию loadCharacter
(строка 40).
Исходный код функции
В этой функции пользовательский ввод без дополнительной фильтрации подставляется в качестве аргумента командной строки, а это — уязвимость OS Command Injection.
Отправим запрос на добавление записи на сайте и перехватим его с помощью Burp.
Источник: xakep.ru