Содержание статьи
Наша цель — получение прав суперпользователя на машине Lantern с учебной площадки Hack The Box. Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.29 lantern.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
).
![Результат работы скрипта Результат работы скрипта](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39407/02.png)
Сканер нашел три открытых порта:
- 22 — служба OpenSSH 8.9p1;
- 80 — веб‑сервер Skipper Proxy;
- 3000 — веб‑сервер Kestrel.
Сразу видим, что на сервере установлен Skipper Proxy — прокси‑сервер и HTTP-роутер, написанный на Go. Он маршрутизирует HTTP-запросы на основе разных правил и настроек.
![Главная страница сайта Главная страница сайта](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39406/03.png)
Точка входа
На сайте на 80-м порте находим интересную информацию о команде разработчиков. Можно сделать выводы об используемых технологиях.
![Описание вакансий Описание вакансий](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39405/04.png)
Также находим форму отправки резюме.
![Форма отправки файла Форма отправки файла](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39404/05.png)
На порте 3000 нас встречает форма авторизации.
![Форма авторизации Форма авторизации](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39403/06.png)
Если просмотреть историю запросов в Burp History, заметим много запросов, типичных для CMS Blazor. С этой системой я уже сталкивался, когда писал райтап по HTB Blazorized.
![Burp History Burp History](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39402/07.png)
Осмотрев сайты, углубимся в изучение найденных продуктов. У нас есть Skipper Proxy и Blazor, начнем с первого. Сначала стоит проверить, есть ли для обнаруженной версии CMS актуальные эксплоиты.
![Поиск эксплоитов в Google Поиск эксплоитов в Google](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39401/08.png)
Из Google узнаём, что Skipper Proxy 0.13.237 уязвим к CVE-2022-38580. Как сказано в описании эксплоита, можно эксплуатировать SSRF для доступа к внутренним ресурсам, просто указав адрес ресурса в заголовке X-Skipper-Proxy
.
![Описание эксплоита Описание эксплоита](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39400/09.png)
Перейдем в Burp Repeater и добавим заголовок X-Skipper-Proxy:
.
![Эксплуатация SSRF Эксплуатация SSRF](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39399/10.png)
Сервер отдаст нам содержимое сайта на порте 3000, что подтверждает наличие уязвимости.
Точка опоры
Перенаправляем запрос в Burp Repeater для перебора портов через SSRF. Так мы сможем узнать о работающих внутренних сервисах.
![Burp Repeater — вкладка Positions Burp Repeater — вкладка Positions](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39398/11.png)
![Burp Repeater — вкладка Payloads Burp Repeater — вкладка Payloads](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39397/12.png)
Сортируем результаты сканирования по коду ответа и получаем четыре открытых порта для адреса 127.0.0.1.
![Результаты сканирования Результаты сканирования](https://static.xakep.ru/images/57654fa48ed4216cd66526e0987f8d04/39392/13.png)
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»