Gacrux Malware

Gacrux Malware Descripción

Gacrux es una amenaza de malware escrita en C que muestra una combinación bastante peculiar de extraer módulos completos y secciones de código de proyectos de código abierto con un cargador PE personalizado. A pesar del uso liberal de código de fuente abierta y bastantes errores, Gacrux Malware se vende en foros clandestinos de hackers. Según el investigador de información de seguridad KrabsOnSecurity, Gacrux parece haberse inspirado en otro malware llamado Smoke Loader.

Técnicas anti-análisis y anti-VM

Aunque la mayoría de ellos se pueden circunnavegar fácilmente, Gacrux está equipado con bastantes medidas anti-análisis. La amenaza primero intenta interrumpir la depuración de IDA implementando devoluciones y saltos falsos que hacen que IDA desensamble las instrucciones subsiguientes de manera inexacta. Como medida adicional de ocultación, Gacrux Malware cifra dos funciones en el disco. Como identificador para ser ejecutado potencialmente en un entorno de caja de arena, Gacrux verifica el espacio disponible en disco y el tamaño de RAM.

Los métodos anti-depuración adicionales se esparcen por todo el código del malware. La mayoría de ellos se inyectan en segmentos de funciones importantes y bloquean todo el proceso si detectan un depurador o un entorno de VM.

El mecanismo de persistencia se establece a través de un procedimiento de ventana responsable de verificar el archivo instalado y crear un archivo .lnk de inicio. El procedimiento se llama dentro del contexto de explorer.exe periódicamente.

Gacrux Malware toma prestado código de fuente abierta

Entre los módulos que componen la infraestructura de Gacrux, varios se han extraído de proyectos gratuitos alojados directamente en servicios web legítimos. Por ejemplo, el módulo syscall de la amenaza es una copia casi idéntica de un cifrador de código abierto, mientras que el cargador de los módulos se toma del proyecto del módulo de memoria que se encuentra en Github directamente.

El código recopilado también se puede encontrar como parte de la primitiva de ejecución que explota SetPropA en un método copiado de implementaciones de código abierto. Para su inyección de código, Gacrux aprovecha dos primitivas de escritura diferentes dependiendo de si se está ejecutando en una arquitectura de 32 bits o de 64 bits. Para sistemas de 32 bits, el malware usa ' NtCreateSection / NtMapViewOfSection ', mientras que para sistemas de 64 bits emplea ' NtAllocateVirtualMemory / NtWriteVirtualMemory. '