
Подробный отчёт о тестировании на проникновение и детали эксплуатации для Hack The Box — машина Enigma, охватывающие локальную разведку, инъекцию команд в OliveTin CVE-2026-27626 и повышение привилегий до root
Enigma — это Linux-машина среднего уровня сложности на платформе Hack The Box. Методология оценки следует стандартному жизненному циклу тестирования на проникновение: разведка, перечисление, первоначальный доступ через сбор учётных данных, локальное перечисление и повышение привилегий до root через уязвимость сервисного уровня (CVE-2026-27626 в OliveTin). В этом отчёте подробно описаны пошаговый анализ векторов атаки, используемые инструменты, стратегии выполнения кода и рекомендации по устранению уязвимостей, необходимые для полной компрометации цели и получения административного контроля.
Nmap)Оценка началась с TCP SYN-сканирования для выявления открытых портов и служб, работающих на целевом хосте.
nmap -p- --min-rate=1000 -T4 <TARGET_IP>
Результаты сканирования:
Используя инструменты поиска директорий (gobuster / ffuf), мы просканировали веб-службу на порту 80 для обнаружения скрытых конечных точек, административных порталов или артефактов конфигурации.
В ходе детального анализа файлов веб-приложения и вспомогательных ресурсов NFS мы обнаружили действующие учётные данные разработчика.
harisbestfriendsС обнаруженными учётными данными мы аутентифицировались в службе SSH, чтобы получить интерактивную оболочку с низкими привилегиями на целевой системе:
ssh haris@<TARGET_IP>
haris@enigma:~$user.txt).После получения оболочки уровня пользователя мы проверили локальные прослушиваемые порты и активные процессы, чтобы выявить потенциальные поверхности атаки, не доступные извне:
ss -tulpn
Ключевое обнаружение:
127.0.0.1:1337 с привилегиями root.Дальнейшее изучение файла конфигурации приложения OliveTin (/opt/OliveTin/config.yaml) показало, что действия резервного копирования базы данных выполнялись через обёртку оболочки. В частности, в конфигурации использовался параметр db_pass внутри командной строки mysqldump:
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
arguments:
- name: db_pass
type: password
Эта конфигурация вносит критическую уязвимость внедрения команд (CVE-2026-27626), поскольку параметр db_pass заключён в одинарные кавычки в контексте оболочки, но не выполняет должную очистку входных данных, содержащих управляющие операторы оболочки (например, точки с запятой ;, конвейеры | или обратные кавычки).
Поскольку уязвимая служба OliveTin привязана строго к 127.0.0.1:1337, внешние запросы с атакующей машины Kali блокируются с ошибкой Connection refused. Для взаимодействия со службой мы установили туннель локального перенаправления портов через SSH:
ssh -L 1337:127.0.0.1:1337 haris@<TARGET_IP>
Используя скрипт эксплойта на Python, нацеленный на конечную точку API OliveTin (/api/olivetin.api.v1.OliveTinApiService/StartAction), мы внедрили произвольные системные команды в уязвимый вектор параметра.
Из-за строгого синтаксиса оболочки и зависимостей от директорий в оригинальной обёртке команды mysqldump прямое создание файлов иногда могло приводить к ошибкам статуса завершения (таким как отсутствующие целевые директории или ограничения прав доступа). Путём создания точных строк выполнения или прямого запроса файловой системы через уязвимость API мы обошли препятствия выполнения.
Запуск полезной нагрузки команды через интерфейс эксплойта:
python3 CVE-2026.27626.py -u http://127.0.0.1 -x "cat /root/root.txt"
Вывод выполнения:
[+] Execution ID: 7fd15259-3996-4e03-9ebd-329034ee4e0d
======================================================================
Command Output
======================================================================
exit status 127
Usage: mysqldump [OPTIONS] database [tables]
...
ae9306f5690c4812c6f9445027d0d060
sh: 1: : Permission denied
======================================================================
Флаг root был успешно извлечён напрямую через поток вывода команды.
ae9306f5690c4812c6f9445027d0d060/root/.ssh/authorized_keys через вектор внедрения команд, что предоставляет беспрепятственный административный доступ к терминалу.root, если это не абсолютно необходимо. Запускайте службы под выделенными сервисными учётными записями с минимальными правами.