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

В процессе решения задачи мы получим начальный доступ, используя неправильную конфигурацию веб-приложения Apache NiFi с поддержкой H2/JDBC, извлечём учётные данные для доступа по SSH из конфигурационных файлов, разберём зашифрованный документ с инструкциями оператора и установим туннель для подключения к панели управления системой.

Нашей целью является получение прав суперпользователя на тестовой машине Helix с учебной платформы Hack The Box. Сложность задачи оценивается как средняя, операционная система — Linux.

⚠ Важно

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

⚠ Дисклеймер

Данная статья имеет исключительно информационный характер и предназначена для специалистов в области информационной безопасности, выполняющих тестирование с письменного разрешения. Авторы и издание не несут ответственности за любой ущерб, нанесённый с использованием описанной здесь информации. Распространение вредоносного программного обеспечения, нарушение работоспособности систем и нарушение конфиденциальности переписки преследуются в соответствии с законодательством.

Разведка

Сканирование портов

Добавляем IP-адрес целевой машины в файл /etc/hosts:

10.129.66.107 helix.htb

Инициируем процесс сканирования открытых портов с использованием быстрого инструмента.

Справка: методология сканирования портов

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

Наиболее популярный инструмент для этих целей — Nmap. Эффективность сканирования можно повысить с помощью специального скрипта, который работает в два этапа: быстрое предварительное сканирование всех портов, а затем детальное изучение найденных портов с применением встроенных скриптов диагностики (флаг -A).

Дополнительная информация о работе с Nmap доступна в соответствующей статье на нашем ресурсе.

По результатам сканирования обнаружены два открытых порта:

  • 22 — служба удалённого доступа OpenSSH версии 8.9p1
  • 80 — веб-сервер Nginx версии 1.18.0

На веб-сервере размещена корпоративная главная страница.

Поиск точки входа

На основном веб-сайте не найдено уязвимостей, поэтому переходим к перечислению поддоменов путём подстановки различных значений в HTTP-заголовок Host. Для этого используется утилита ffuf.

Справка: методология перебора при тестировании веба

На начальных этапах тестирования веб-приложения обычно проводится перебор директорий и поддоменов для выявления скрытых функций и ресурсов, недоступных обычным посетителям. Для этого используются специализированные инструменты, такие как dirsearch, DIRB и другие.

В данном случае применяется быстрая и эффективная утилита ffuf с указанием URL для проверки, заголовков запроса, словаря для перебора и количества одновременных потоков обработки.

После выполнения сканирования с применением фильтра по размеру ответа выявляется существование поддомена flow.helix.htb. Обновляем файл /etc/hosts и открываем найденный адрес в браузере.

10.129.66.107 flow.helix.htb helix.htb

На найденном поддомене обнаруживается интерфейс приложения управления потоками данных.