La instalación de un kit de herramientas mediante inyección SQL demuestra que lo clásico todavía funciona

Puntos clave

  • Huntress observó recientemente un incidente que comenzó con un "simple" error de inyección SQL en una aplicación web pública vulnerable de una organización, y terminó con ejecución remota de código a nivel de sistema operativo 

  • Cabe destacar que, tras obtener acceso inicial, el actor de amenazas instaló un kit de herramientas de post-explotación (khunt) a través de una fuente Java dentro de una base de datos Oracle, lo cual es un aspecto novedoso de este ataque. Una fuente Java (un objeto de código que se almacena directamente en el motor de base de datos de Oracle) permite a los desarrolladores almacenar y ejecutar código Java en la base de datos como objetos de esquema, pero el actor de amenazas abusó de esto como una forma de cargar el kit de herramientas directamente en la base de datos.

  • El kit de herramientas incluía varios objetos, entre ellos khuntCmd y khuntHash, que en esencia funcionaban como herramientas hechas a medida, compiladas y almacenadas en la base de datos, y que habilitaban funciones maliciosas como ejecutar comandos del sistema operativo y escribir datos de nombres de usuario y contraseñas en un archivo

  • Los actores de amenazas usaron khunt para llevar a cabo varias acciones maliciosas, incluido el intento de exfiltrar los registros SAM, SECURITY y SYSTEM

Agradecimientos: Un agradecimiento especial a Lindsey O'Donnell-Welch por sus contribuciones a esta investigación y a la redacción de este informe.

Contexto

El 27 de julio de 2026, Huntress recibió una alerta sobre actividad de robo de credenciales en un endpoint que alojaba un servidor de base de datos Oracle. El atacante había logrado hacer copias de varios registros (SAM, SECURITY, SYSTEM), probablemente para exfiltrarlos y extraer las credenciales que contenían.

Tras una investigación más profunda, los investigadores de Huntress determinaron que este ataque fue el resultado de un ataque de inyección SQL (SQLi). Los ataques de inyección SQL existen desde hace décadas y suelen deberse al manejo incorrecto de las entradas enviadas al servidor SQL, en lugar de vulnerabilidades explotables. 

En este caso, una aplicación pública con un backend de Oracle aceptaba y ejecutaba comandos SQL ingresados en un formulario de la aplicación que no verificaba si el contenido ingresado era válido. Por ejemplo, toma un campo de formulario diseñado para ingresar un nombre de usuario. Cuando existe una validación adecuada y se ingresa una instrucción SQL en un formulario, la aplicación rechaza el SQL. No contar con estas verificaciones puede permitir que un atacante tome el control de un sistema vulnerable.

Sin embargo, lo que sucedió después nos llamó la atención. Tras realizar la inyección SQL, el actor de amenazas logró cargar un kit de herramientas post-explotación residente en la base de datos, llamado khunt. Esta es una técnica que se ha discutido previamente y descrito a lo largo de los años, incluyendo una técnica descrita como oraexec; sin embargo, el uso de esta técnica en el mundo real rara vez se ha documentado. 

La base de datos de Oracle tiene una máquina virtual Java (JVM) integrada, y la instrucción CREATE JAVA SOURCE permite a los usuarios tomar código fuente Java y almacenarlo como un objeto de base de datos. Esto es lo que hicieron los atacantes durante este incidente: enviaron comandos CREATE JAVA SOURCE a la base de datos Oracle desde Tomcat, a través de la conexión JDBC, y el código fuente Java contenido se compiló directamente dentro de la base de datos como un objeto de esquema almacenado. 

A continuación, describimos los distintos componentes de khunt, el uso de este vector de ataque y su impacto, y cómo los defensores pueden mitigar este ataque. 

Tradecraft del atacante 

El acceso inicial

Cuando se activaron las primeras detecciones de robo de credenciales, observamos que el comando provenía de un proceso (C:\Windows\System32\reg.exe) generado desde un proceso principal oracle.exe. 

Figura 1: Detecciones activadas por actividad sospechosa de robo de credenciales

Por ello, para conocer más información sobre el ataque y el vector de acceso inicial, estudiamos los registros de acceso de Apache (access.log). Estos nos mostraron cómo los actores de amenazas obtuvieron entrada: utilizando inyección SQL contra un endpoint en una aplicación pública Java/Tomcat que carecía de protecciones adecuadas contra la entrada de instrucciones SQL. La aplicación Tomcat, al estar conectada a la base de datos Oracle mediante una conexión JDBC, enviaba los comandos SQL a la base de datos. 

El archivo access.log también nos dio un vistazo a la infraestructura del adversario: según el volumen de solicitudes al endpoint inyectable en la aplicación vulnerable durante el periodo de interés, rastreamos la IP del atacante hasta 178.162.151[.]229. 

El kit de herramientas khunt 

Usando este vector de ataque, los actores de amenazas inyectaron varios objetos que, en conjunto, conformaron el kit de herramientas. Estos incluían lo siguiente: 

  • KhuntCmd: un módulo que carga cmd.exe en el sistema y permite al atacante ejecutar comandos arbitrarios del sistema operativo enviando instrucciones SQL a la base de datos que los incluyen.

  • KhuntHash: esta herramienta accede directamente a la tabla interna de usuarios de Oracle y extrae nombres de usuario y contraseñas, guardándolos en un archivo. 

  • KhuntFS y KhuntFS2: dos exploradores de archivos que permiten todo tipo de funciones, como listar, leer, buscar y verificar el tamaño de archivos. Estos permiten efectivamente al atacante explorar el sistema comprometido. 

  • KhuntT: una herramienta sencilla tipo "ping" diseñada para confirmar que el kit de herramientas está instalado, funcionando y accesible antes de continuar con el ataque.

  • KhuntUnzip: una herramienta para descomprimir archivos.

  • Varios envoltorios PL/SQL khunt_* usados para llamar a los métodos Java subyacentes.

El atacante usó algunos de estos módulos para lanzar las distintas fases de sus ataques.

Más actividad posterior al compromiso 

En este punto, el actor de amenazas pasó de la base de datos Oracle al sistema operativo subyacente del servidor Windows. Hizo esto aprovechando el módulo KhuntCmd para abrir un shell de comandos de Windows, ejecutando cmd.exe /c whoami. Esto le permitió determinar que tenía permisos de nivel SYSTEM, y confirmó la ejecución remota de código (RCE) desde la capa de base de datos hasta el sistema operativo. 

Figura 2: La actividad maliciosa del atacante se originó en el proceso principal oracle.exe

Poco después, el atacante ejecutó comandos de PowerShell para invocar la herramienta del Registro de Windows (reg.exe) y hacer copias de los registros SECURITY y SYSTEM, guardándolas en F:\Oracle\khuntSECURITY.hiv y F:\Oracle\khuntSYSTEM.hiv. 

Luego, el atacante ejecutó tasklist /svc para enumerar los servicios en ejecución, guardándolos en un archivo junto con los registros como F:\Oracle\khunttasks.txt. 

Finalmente, el atacante copió los registros SAM y SECURITY usando esentutl.exe, la utilidad Extensible Storage Engine, guardándolos en F:\Oracle\khuntSAM.hiv y F:\Oracle\khunt_SECURITY.hiv.

Las copias de los registros se pueden usar para extraer y decodificar hashes de contraseñas de las cuentas locales de este sistema. 

Mitigaciones para los defensores 

Los atacantes lograron obtener acceso inicial en este ataque gracias a una inyección SQL clásica. No fue necesaria una vulnerabilidad novedosa, ya que la función de búsqueda con autocompletado en la aplicación pública fue suficiente para llegar a PL/SQL y luego al sistema operativo.

Colocar el kit de herramientas khunt directamente en Oracle plantea algunas cuestiones que vale la pena considerar desde la perspectiva de defensa: esto convierte la base de datos de algo que los atacantes consultan para obtener datos en una cabeza de playa desde la cual los actores de amenazas pueden lanzar ataques. Tener un kit de herramientas malicioso almacenado como un objeto de base de datos, en lugar de residir en un archivo o en memoria, hace que sea fácil pasarlo por alto. El EDR y los antivirus tradicionales se enfocan en procesos, binarios y archivos del sistema operativo, y generalmente no inspeccionan clases Java ni envoltorios PL/SQL dentro de Oracle. 

Para evitar este tipo de ataques, es importante asegurarte de que los formularios no sean inyectables. Aplica una sanitización adecuada de las entradas y parametrización de consultas para cualquier entrada. También es importante asegurarte de que los usuarios con la capacidad de ejecutar consultas no tengan permisos excesivos. Incluso si ocurre una inyección SQL, la cuenta de usuario utilizada no debería ser capaz de crear fuentes Java, ejecutar procedimientos almacenados ni nada similar.

Indicadores de compromiso (IOC)

Elemento

Descripción

[drive:][path]\Oracle\khuntSECURITY.hiv

[drive:][path]\Oracle\khuntSYSTEM.hiv

[drive:][path]\Oracle\khuntSAM.hiv

[drive:][path]\Oracle\khunt_SECURITY.hiv

Archivos de registro extraídos por el atacante.

[drive:][path]\Oracle\khunttasks.txt

Archivo de texto que contiene una lista de tareas. 

178.162.151[.]229

Dirección IP del atacante.

KhuntT

KhuntFS

KhuntFS2

KhuntCmd

KhuntHash

KhuntUnzip

Busca dentro de la instalación de Oracle instancias de object_name que coincidan con estos nombres.

KHUNT%

Busca esta cadena en los registros de SQL. 

También te podría interesar

Más información sobre OpenClaw, agentes descontrolados e higiene de aplicaciones
OpenClaw, agentes descontrolados e higiene de aplicaciones
Blog

Los agentes de IA de OpenClaw representan un riesgo de seguridad en los inquilinos de Microsoft porque a menudo reciben permisos de cloud amplios y de alto impacto que un atacante podría heredar de inmediato si el agente se ve comprometido. Descubre por qué la higiene proactiva de aplicaciones, que incluye el monitoreo continuo y la reducción de permisos innecesarios, es esencial para gestionar esta amenaza basada en identidad.

Más información sobre Ataques de phishing usan páginas de navegador dentro del navegador y persistencia con RMM fraudulento
Ataques de phishing usan páginas de navegador dentro del navegador y persistencia con RMM fraudulento
Blog

Descubre cómo un ataque de phishing con navegador dentro del navegador llevó a persistencia con ScreenConnect fraudulento y tácticas de evasión que Huntress detectó en plena acción.

Más información sobre Explotación activa de la vulnerabilidad de criptografía insegura en Gladinet CentreStack/Triofox
Explotación activa de la vulnerabilidad de criptografía insegura en Gladinet CentreStack/Triofox
Blog

Gladinet CentreStack está siendo explotado activamente, y según reportes, el grupo de ransomware cl0p ahora apunta a servidores expuestos a internet. Huntress ha estado monitoreando esto desde el inicio y tiene las últimas actualizaciones.