En lugar de implementar archivos de malware tradicionales en el servidor comprometido, los atacantes utilizaron la Máquina Virtual Java (JVM) integrada de Oracle y la instrucción CREATE JAVA SOURCE para compilar y almacenar todo el kit de herramientas de post-explotación como objetos de esquema Java dentro de la base de datos Oracle . Este enfoque hizo que el kit fuera invisible para las defensas estándar a nivel del sistema operativo, ya que las herramientas EDR y antivirus se centran en procesos, binarios y archivos en el sistema operativo; por lo general, no inspeccionan las clases Java y los wrappers PL/SQL almacenados dentro de Oracle .
El kit khunt incluía estos componentes, cada uno almacenado como un objeto de base de datos:
| Componente | Función |
|---|---|
| KhuntCmd | Carga cmd.exe y ejecuta comandos arbitrarios del sistema operativo incrustándolos en sentencias SQL enviadas a la base de datos |
| KhuntHash | Extrae nombres de usuario y hashes de contraseñas de las tablas internas de usuarios de Oracle y los guarda en un archivo |
| KhuntFS / KhuntFS2 | Exploradores de archivos para listar, leer, buscar y verificar tamaños de archivos en el sistema comprometido |
| KhuntT | Una herramienta simple de "ping" para confirmar que el kit está instalado y accesible antes de continuar |
| KhuntUnzip | Utilidad para descomprimir archivos |
| Wrappers PL/SQL khunt_* | Procedimientos envolventes PL/SQL utilizados para llamar a los métodos Java subyacentes |
Los atacantes no se detuvieron en el acceso a nivel de base de datos. Utilizaron el kit khunt para pivotar desde la capa de la base de datos al sistema operativo Windows subyacente en un proceso de varios pasos:
cmd.exe /c whoami, lo que confirmó que se estaban ejecutando con privilegios de nivel SYSTEM en el servidor Windows, estableciendo una ejecución remota de código (RCE) desde la base de datos al sistema operativo .reg.exe y copiar los archivos del registro SECURITY y SYSTEM, guardándolos como khuntSECURITY.hiv y khuntSYSTEM.hiv en F:\Oracle\ .tasklist /svc y guardaron la salida como khunttasks.txt .esentutl.exe para copiar los archivos SAM y una segunda copia de SECURITY, guardándolos como khuntSAM.hiv y khunt_SECURITY.hiv .Los archivos del registro exfiltrados podrían usarse sin conexión para extraer y decodificar los hashes de contraseñas de todas las cuentas locales del sistema .
La investigación de Huntress reveló varios puntos ciegos críticos que permitieron que este ataque tuviera éxito y evadiera la detección:
Basándose en este ataque, Huntress recomendó varias mitigaciones :
Este ataque sirve como un claro recordatorio de que los motores de base de datos con entornos de programación integrados (como la JVM de Oracle) pueden convertirse en plataformas de ataque sigilosas cuando se combinan con un solo campo de entrada no validado. Los equipos de seguridad deben extender su monitorización más allá del sistema operativo para incluir la capa de objetos de la base de datos.