В современном мире информационной безопасности задачи, направленные на выявление и эксплуатацию уязвимостей, продолжают оставаться ключевыми для повышения квалификации специалистов. Одним из популярных учебных стендов для практики является Hack The Box (HTB), где люди из разных уголков мира могут проверить свои навыки на различных виртуальных машинах. Одним из таких вызовов является HTB Titanic — машина, которая использует уязвимость в ImageMagick для получения удалённого выполнения кода (RCE) с последующим повышением привилегий в Linux-системе. Эта задача на первый взгляд может показаться лёгкой, однако для успешного её решения потребуется комплексный подход, охватывающий разведку, эксплуатацию локального включения файлов (LFI), работу с веб-приложениями на Python и, конечно, непосредственное применение уязвимостей ImageMagick. Разведка в информационной безопасности – это основа любого успешного взлома.
Начинать нужно с изучения доступных сервисов и открытых портов на целевой машине. В случае с Titanic первым этапом становится сканирование портов с помощью инструмента Nmap. Стандартный подход – это быстрое сканирование всех портов с минимальной скоростью, что позволяет выявить лишь те службы, которые действительно слушают запросы. После этого осуществляется более тщательный анализ, включающий определение версий сервисов и активных скриптов. Такой двухступенчатый метод сканирования позволяет сформировать полное представление о состоянии цели без чрезмерной нагрузки на сеть и без риска быть быстро обнаруженным.
После проведения сканирования в HTB Titanic фиксируются два открытых порта: стандартный SSH-порт и HTTP-сервер Apache. Через SSH, на данном этапе, доступа получить не удаётся — это обычная ситуация, ведь без корректных учётных данных или иных уязвимостей дверь закрыта. Основное внимание переключается на веб-сервер, особенно на его содержимое и внутренние функции. Чем более интерактивным оказывается веб-интерфейс, тем выше шанс обнаружить в нём точки входа для дальнейших атак. Веб-сайт Titanic содержит страницу с формой «Book Your Trip», которая кажется на первый взгляд обычным механизмом для заполнения бронирования.
Однако при внимательном изучении дорожки запроса становится ясно, что после отправки формы клиент получает в ответ JSON-файл с параметром ticket, указывающим на некий файл для скачивания. Это даёт повод предположить, что возможно здесь реализована загрузка файлов с заданным пользователем именем, что может привести к реализации LFI (“локального включения файлов”). Для подтверждения гипотезы LFI используется инструмент Burp Repeater, позволяющий модифицировать и повторять запросы. Параметр ticket подменяется на системные файлы, такие как /etc/passwd, для проверки на возможность вывода содержимого. Если содержимое файла успешно отобразилось, это однозначно говорит о наличии LFI, что открывает множество возможностей для дальнейшей работы со системой.
LFI позволяет получить доступ не только к конфигурационным файлам, но и к скриптам самого приложения, например app.py, если оно написано на Python — а это важный ключ к пониманию внутренней логики веб-сервиса. Обнаружение и изучение содержимого app.py даёт ценную информацию для поиска путей эскалации привилегий. Как правило, такие скрипты могут содержать подключения к базе данных или реализовывать бизнес-логику, которая может быть скомпрометирована.
В данном случае одной из целей становится дамп базы данных Gitea — популярного инструмента для управления репозиториями, который часто содержит конфиденциальные данные, включая пароли и секреты, используемые сервером. Особое внимание стоит уделить уязвимости ImageMagick, которая в течение долгого времени была источником различных инцидентов информационной безопасности. Известная под кодовым названием ImageTragick, она позволяет злоумышленнику через специально подготовленные файлы изображений запускать произвольные команды на сервере. Поскольку ImageMagick активно применяется для обработки изображений на многих веб-платформах, эксплуатация её уязвимостей даёт уникальную возможность получить удалённое выполнение кода на сервере. В HTB Titanic через форму загрузки или через API веб-сервера можно отправить подготовленный файл изображения, который содержит в себе вредоносный payload.
Этот payload при обработке ImageMagick выполняется с правами веб-сервера и даёт начальную точку для получения шелла. Далее через консоль сервера развивается эксплойт, позволяющий эскалировать привилегии до root, используя найденные уязвимости и слабые места в конфигурации системы или её сервисах. Локальное повышение привилегий — ключевой этап, который является кульминацией всей атаки. Получить доступ к shell от имени обычного пользователя — это уже успех, но полноценное управление системой достигается только путём перехода на уровень суперпользователя. В случае с Titanic приходится анализировать конфигурации sudo, искать ошибки запусков скриптов, ключи студенческого доступа или эксплуатировать известные локальные уязвимости ядра операционной системы.
Комплексный подход, объединяющий навыки программирования, анализа кода и системного администрирования, позволяет выполнить этот финальный шаг и достичь цели. Все описанные этапы требуют не просто технических знаний, но и аккуратности, внимания к деталям и аналитических способностей. Важно отметить принцип использования анонимности и виртуализации при работе с HTB. Поскольку пользователи подключаются к общим лабораториям, риск утечки личной информации существует. Также с соблюдением этических норм и правил платформы необходимо работать только на предоставляемых виртуальных стендах и не пытаться наносить вред другим пользователям или хостам.