Hack The Box уже давно зарекомендовал себя как отличная обучающая платформа для отработки навыков этичного хакинга и пентестинга. Одной из интереснейших задач является взлом машины под названием Haze, где в качестве целевой системы выступает Windows-сервер с мониторинговой системой Splunk. Цель исследования — получить права суперпользователя посредством анализа и эксплуатации уязвимостей в Splunk, что позволит понять реальные угрозы безопасности и методы их нейтрализации. Разберём весь процесс подробно, начиная с разведки и заканчивая локальным повышением привилегий на конечном хосте. Начинается работа с этапа разведки.
Это классический шаг в любом сценарии атаки, когда взломщик собирает информацию о целевой системе, определяет открытые порты и сервисы, чтобы затем на их основании выбрать правильную тактику проникновения. Для быстрого и комплексного сканирования используется инструмент Nmap, позволяющий выявить не только список активных портов, но и получить подробные сведения о версиях сервисов и запущенных приложениях. Для повышения эффективности сканирования используется собственный скрипт, который выполняет двухэтапный процесс — быстрый перебор портов на первом этапе и детальный анализ с использованием расширенных скриптов на втором. В случае с Haze удалось обнаружить четырнадцать открытых портов, среди которых особое внимание привлекают порты 8000, 8088 и 8089, используемые системой Splunk, а также традиционные порты, характерные для Windows-сетей — такие как 135, 139, 445 и 5985, отвечающие за службы RPC, NetBIOS, SMB и удалённого управления соответственно. Таким образом, становится понятно, что на сервере работает Splunk версии 9.
2.1, а значит стоит проверить известные уязвимости именно для этой версии. Используя открытый ресурс Google и другие публичные базы данных уязвимостей, был найден отчёт, детально описывающий CVE-2024-36991. Эта уязвимость даёт возможность обхода безопасности через эндпоинт /modules/messaging/, что позволяет читать произвольные файлы с сервера. Используя готовый Proof of Concept (PoC), опубликованный в GitHub, специалист может получить доступ к конфиденциальным данным, хранящимся в базе Splunk.
Этапом после обнаружения уязвимостей является поиск точки опоры для дальнейшего продвижения в системе. Благодаря возможности читать произвольные файлы, первым делом логично проверить конфигурационные файлы Splunk. Среди важных выделяют server.conf и authentication.conf.
В первом содержатся технические данные и зашифрованные пароли, а во втором — доменные учетные данные, среди которых был обнаружен пользователь Paul Taylor со связью к LDAP. Для расшифровки паролей необходим ключ splunk.secret, который также получается через эксплоит. С его помощью с помощью утилиты splunksecrets происходит декодирование секретов в открытый вид. Однако наличие пароля — это только полдела.
Чтобы подобрать правильный логин, используется скрипт генерации возможных форматов имени на базе реального имени владельца учетной записи. Логины формируются в самых разных вариациях, включая распространённые шаблоны с точками, подчёркиваниями, дефисами и сокращениями. На следующем этапе поисковая утилита NetExec помогает перебрать все варианты логинов и проверить их на соответствие с полученным паролем. Эта методика даёт необходимую учётную запись для входа в систему. Имея валидные доменные учетные данные, можно приступать к локальному повышению привилегий.
Через скомпрометированную админскую учетную запись Splunk, которая обладает необходимыми полномочиями, создаются и загружаются собственные модули для получения привилегированной сессии на сервере. Используя такие модули, удаётся добиться запуска произвольного кода с правами SYSTEM. Таким образом, даже такая защищённая система, как Splunk, становится точкой уязвимости, если не уделять должного внимания своевременному патчингу и контролю доступа. В дополнение к чисто технической части стоит отметить важность мер предосторожности. Эксперты советуют всегда работать с HTB и похожими платформами через системы анонимизации и виртуализации.