Содержание статьи
- Разведка
- Сканирование портов
- Точка входа
- Точка опоры
- Продвижение
- Локальное повышение привилегий
Сегодня я покажу, как регистрировать системные вызовы в Linux, что поможет нам перехватить данные пользователя. Но на пути к системе нам понадобится заюзать SSRF на сайте через X-Skipper-Proxy и установить свой модуль в CMS Blazor.
Наша цель — получение прав суперпользователя на машине Lantern с учебной площадки Hack The Box. Уровень задания — сложный.
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:
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).
Результат работы скрипта
Сканер нашел три открытых порта:
- 22 — служба OpenSSH 8.9p1;
- 80 — веб‑сервер Skipper Proxy;
- 3000 — веб‑сервер Kestrel.
Сразу видим, что на сервере установлен Skipper Proxy — прокси‑сервер и HTTP-роутер, написанный на Go. Он маршрутизирует HTTP-запросы на основе разных правил и настроек.
Главная страница сайта
Точка входа
На сайте на 80-м порте находим интересную информацию о команде разработчиков. Можно сделать выводы об используемых технологиях.
Также находим форму отправки резюме.
Форма отправки файла
На порте 3000 нас встречает форма авторизации.
Форма авторизации
Если просмотреть историю запросов в Burp History, заметим много запросов, типичных для CMS Blazor. С этой системой я уже сталкивался, когда писал райтап по HTB Blazorized.
Осмотрев сайты, углубимся в изучение найденных продуктов. У нас есть Skipper Proxy и Blazor, начнем с первого. Сначала стоит проверить, есть ли для обнаруженной версии CMS актуальные эксплоиты.
Поиск эксплоитов в Google
Из Google узнаём, что Skipper Proxy 0.13.237 уязвим к CVE-2022-38580. Как сказано в описании эксплоита, можно эксплуатировать SSRF для доступа к внутренним ресурсам, просто указав адрес ресурса в заголовке X-Skipper-Proxy.
Описание эксплоита
Перейдем в Burp Repeater и добавим заголовок X-Skipper-Proxy: http://127.0.0.1:3000.
Эксплуатация SSRF
Сервер отдаст нам содержимое сайта на порте 3000, что подтверждает наличие уязвимости.
Точка опоры
Перенаправляем запрос в Burp Repeater для перебора портов через SSRF. Так мы сможем узнать о работающих внутренних сервисах.
Burp Repeater — вкладка Positions
Burp Repeater — вкладка Payloads
Сортируем результаты сканирования по коду ответа и получаем четыре открытых порта для адреса 127.0.0.1.
Результаты сканирования