Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка. Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.10.100 bountyhunter.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 (служба SSH) и 80 (веб‑сервер Apache 2.4.41). Начинаем с веб‑сервера.
Справка: брутфорс учеток
Поскольку в начале прохождения у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — это перебирать пароли брутфорсом, но у машин с HTB почти всегда есть другое прохождение. В жизни таких вариантов может не быть, к тому же есть шансы подобрать пароль или получить его при помощи социальной инженерии.
Внимательно изучим сайт и соберем ценную информацию. Сайт кажется простеньким. Видим несколько навигационных ссылок и кнопку для скачивания какого‑то файла.
Кнопка оказалась нерабочей, как и первые две ссылки, но зато ссылка Portal приводит нас на страницу portal.
с текстом «Portal under development. Go here to test the bounty tracker» и еще одной ссылкой. При переходе по ней нас встретит форма ввода «Bounty Report System - Beta».
Точка входа
Отправив тестовые данные, мы получим сообщение, что если база данных готова, то наши данные будут в нее добавлены.
Первым делом я хотел тестировать SQL-инъекцию в запросе Insert, но все же взглянул на весь путь наших запросов через Burp. Все запросы можно увидеть в Burp History.
Что бросилось в глаза — я заполнял четыре параметра, а отправляется один, причем в кодировке Base64. Благо в Burp Pro сейчас есть плагин Inspector, который автоматически разбирает и снимает известные кодировки.
Именно Inspector заставил меня перейти с тестирования SQL-инъекции на поиск XXE. А все потому, что параметры отправляются в формате XML.
Точка опоры
XXE-инъекция
XML eXternal Entity (XXE) инъекция — это уязвимость в сервисах, которые поддерживают протоколы SOAP и XML-RPC и принимают входные данные в виде XML-документа. Стандарт XML поддерживает включение секции DTD, а секции эти, в свою очередь, могут подключать к документу дополнительные компоненты, так называемые внешние сущности.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»