Skip to main content

Escenario de Entrenamiento - Modificación de Memoria

Nombre del Grupo

Datos de Entrenamiento - Process Hollowing SQL (Hive)

Escenario

En este escenario de entrenamiento, ejecutaremos una carga útil de ransomware mediante process hollowing, una técnica de inyección/evasión en la que se inicia un proceso y su código ejecutable es modificado para realizar algún otro comportamiento.

Las técnicas en memoria se encuentran entre las más difíciles de detectar, e incluso más difíciles de responder de forma automatizada, por lo que a menudo se ignoran. La memoria es, por definición, volátil y está en constante cambio. Identificar cambios dentro de la memoria de un proceso requiere identificar las secciones relevantes y evaluarlas en distintos momentos del ciclo de vida de un proceso para ver si ha sido manipulada.

Identificándolo

Las respuestas de memoria modificada son, por mucho, las más difíciles de inspeccionar. Dado que la memoria es efímera, se trata como una “caja negra” y a menudo se mantiene a distancia. La buena noticia es que, a partir de Cyber Crucible 4.4.1.3, ahora tenemos la capacidad de recopilar automáticamente telemetría de muestras de memoria modificada, identificando qué rangos de memoria fueron modificados y los cambios exactos realizados en ellos.

Sin embargo, ese tipo de análisis es muy engorroso de realizar, por lo que un buen primer paso es revisar los procesos relacionados en el panel de control para hacerse una idea del comportamiento relacionado. Dado que el proceso en cuestión aquí es un SQLCMD.exe firmado, debería resultar rápidamente obvio si se trata de un proceso SQL benigno o de algo peor.

Hasta ahora todo bien, solo procesos SQL normales, nada necesariamente sospechoso ni tampoco no sospechoso. Aunque, nunca nos gusta ver CMDs involucrados en respuestas automatizadas. Vamos a investigar un poco más.

The smoking gun!
¡La prueba irrefutable!

¡Y ahí está! Podemos seguir desplazándonos y ver cada vez más comportamientos como estos. El ejecutable SQLCMD está ejecutando todo tipo de comandos para deshabilitar servicios, cambiar configuraciones, y todo lo que un ransomware haría de manera preventiva.

Aquí podemos ver una pequeña idea de lo que nos espera cuando empezamos a profundizar y analizar las diferencias de memoria. La mayoría de las técnicas lo suficientemente sofisticadas como para ejecutar malware completamente en memoria también van a ofuscar su código en memoria. Esto hace que su análisis sea extremadamente difícil, pero el acceso a la telemetría adicional ya ha demostrado ser invaluable para la identificación de incidentes, así como para el ajuste de comportamientos

Documentación relevante

  • Inyección de Procesos

  • Mitre T1559 - La comunicación entre procesos puede proporcionar control sobre el proceso objetivo desde el inyector una vez que se completa la inyección.

  • Mitre T1106 - Las API nativas suelen ser el acceso más directo a la funcionalidad del sistema operativo para acceder a archivos, ejecutar procesos y más.

  • Mitre T1569 - Inyectar en un servicio del sistema como un svchost existente puede disfrazar código malicioso para que se reporte como ejecutándose desde un proceso conocido y confiable.

  • Mitre T1055 - Inyección de procesos, generalmente utilizada para ejecutar código malicioso en un proceso objetivo mientras se permite que el proceso original continúe.

  • Mitre T1543 - Crear o modificar un proceso del sistema puede disfrazar código malicioso como un proceso del sistema normal y confiable ante la detección de malware.