- Регистрация
- 9 Май 2015
- Сообщения
- 1,480
- Баллы
- 155
Сегодня я покажу, как получить приватные данные из дампа кучи Spring Boot, а затем завладеем доступом к системе Eureka. Через ее сервисы извлечем приватные данные пользователя и сессию на хосте. Для повышения привилегий используем уязвимость в пользовательском анализаторе логов.
Наша конечная цель — получение прав суперпользователя на машине Eureka с учебной площадки . Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:
10.10.11.66 eureka.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Сканер нашел три открытых порта:
На порте 80 выполняется редирект на домен furni.htb. Добавим его в файл /etc/hosts и просмотрим сайт через браузер.
10.10.11.66 eureka.htb furni.htb
Главная страница сайта
Точка входа
Запускаем сканер , который поможет быстро определить, какие технологии используются на веб‑сервере.
nuclei -u
Результат сканирования сайта
Nuclei определил доступный эндпоинт Spring actuator/heapdump, который предоставляет дамп кучи из JVM-приложения. Скачиваем дамп и парсим с помощью утилиты . Там мы сможем найти различные важные данные вроде секретов и даже паролей.
wget
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump
Результат анализа дампа
В итоге находим учетные данные для базы MySQL и для сервиса Eureka, который работает на порте 8761.
Главная страница Eureka
Ссылки в сервисе Eureka дальше нас не продвинули, мы получаем одну и ту же страницу с ошибкой.
Ошибка Eureka
Учетные данные для MySQL позволяют нам авторизоваться и по SSH.
Сессия пользователя oscar190
Продвижение
На хосте ничего интересного мы не видим, поэтому поработаем с . В поисках информации об этом сервисе находим хорошую статью , в которой можно найти эндпоинты для подключаемых приложений, а также примеры запросов.
Справка из статьи
Ручка /eureka/apps отдаст нам XML-файл со спецификациями подключенных приложений Eureka.
curl
Конфигурационный файл
Наша конечная цель — получение прав суперпользователя на машине Eureka с учебной площадки . Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:
10.10.11.66 eureka.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).

Результат работы скрипта
Сканер нашел три открытых порта:
- 22 — служба OpenSSH 8.2p1;
- 80 — веб‑сервер Nginx 1.18.0;
- 8761 — сервис Eureka.
На порте 80 выполняется редирект на домен furni.htb. Добавим его в файл /etc/hosts и просмотрим сайт через браузер.
10.10.11.66 eureka.htb furni.htb

Главная страница сайта
Точка входа
Запускаем сканер , который поможет быстро определить, какие технологии используются на веб‑сервере.
nuclei -u

Результат сканирования сайта
Nuclei определил доступный эндпоинт Spring actuator/heapdump, который предоставляет дамп кучи из JVM-приложения. Скачиваем дамп и парсим с помощью утилиты . Там мы сможем найти различные важные данные вроде секретов и даже паролей.
wget
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump


Результат анализа дампа
В итоге находим учетные данные для базы MySQL и для сервиса Eureka, который работает на порте 8761.

Главная страница Eureka
Ссылки в сервисе Eureka дальше нас не продвинули, мы получаем одну и ту же страницу с ошибкой.

Ошибка Eureka
Учетные данные для MySQL позволяют нам авторизоваться и по SSH.

Сессия пользователя oscar190
Продвижение
На хосте ничего интересного мы не видим, поэтому поработаем с . В поисках информации об этом сервисе находим хорошую статью , в которой можно найти эндпоинты для подключаемых приложений, а также примеры запросов.

Справка из статьи
Ручка /eureka/apps отдаст нам XML-файл со спецификациями подключенных приложений Eureka.
curl

Конфигурационный файл
Источник: