Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Один запрос привёл к SYSTEM. Базу Oracle превратили в плацдарм для скрытой атаки

Базы данных обычно воспринимаются как хранилище информации, а не как инструмент для взлома, но злоумышленники нашли способ превратить Oracle Database в площадку для атаки. Компания Huntress обнаружила случай, когда хакеры установили набор инструментов постэксплуатации khunt прямо внутри базы данных Oracle, которая использовалась для проникновения в корпоративную сеть.

Инцидент зафиксировали 27 июля этого года, когда платформа Huntress выявила кражу учётных данных на сервере с Oracle. Журналы Apache показали, что доступ был получен через уязвимую поисковую функцию публичного Java-приложения на Apache Tomcat. Автодополнение в поиске не проверяло вводимые данные, что позволило отправлять SQL-команды напрямую в базу. Вредоносные запросы отследили до IP-адреса 178[.]162[.]151[.]229.

Oracle Database содержит встроенную виртуальную машину Java и оператор CREATE JAVA SOURCE, позволяющий хранить и компилировать Java-код как объект базы данных. Такие объекты можно запускать SQL-командами, а при определённых настройках — выполнять через них команды операционной системы. Злоумышленники воспользовались этим и скомпилировали набор khunt прямо внутри базы, не размещая файлы на сервере. По данным Huntress, подобная техника фиксируется крайне редко.

Набор включал несколько компонентов. KhuntCmd запускал cmd.exe и выполнял команды операционной системы через SQL-запросы. KhuntHash обращался к внутренней таблице пользователей Oracle и записывал имена учётных записей и пароли в файл. KhuntFS позволял просматривать и искать файлы, а KhuntT служил для проверки успешной установки инструмента.

С помощью KhuntCmd злоумышленники выполнили команду whoami и убедились, что команды через Oracle запускаются с правами SYSTEM на Windows-сервере. Затем через PowerShell и системные утилиты были скопированы кусты реестра SAM, SECURITY и SYSTEM, из которых можно восстановить хэши паролей локальных учётных записей. Также была запущена команда tasklist /svc для сбора списка служб. В Huntress отметили, что кусты реестра, вероятно, предназначались для похищения, однако подтверждений успешной кражи файлов не приводится.

Для снижения риска подобных атак Huntress рекомендует проверять и очищать все данные, поступающие от пользователей, а также ограничивать привилегии учётных записей баз данных, используемых публичными приложениями. Таким учётным записям не следует предоставлять права на создание Java-объектов, выполнение ненужных хранимых процедур и другие административные действия.

SecurityLab