Machete: El «How To» Del Malware Que Ha Puesto En Jaque Al Ejército De Venezuela

Durante los últimos días hemos oído hablar de Machete, el malware utilizado por un grupo de hackers presuntamente de habla hispana y que se encuentra activo desde 2014, fecha en la que comenzó a ser estudiado por Kaspersky.

Se cree que los atacantes son hispanohablantes ya que en el código del malware aparecen palabras escritas en español, como se puede ver en la siguiente imagen:

Ejemplos de palabras en español usadas en el código de Machete
Fuente de la imagen: ESET

Apoyando esta teoría encontramos el registro de pulsaciones de teclado (keystrokes logs) y los datos del portapapeles, en ambos casos presentados en español a pesar de que al principio se encontraban escritos en inglés, lo cual, según ESET, podría ser indicio de ćodigo copiado. No obstante algunos investigadores insisten en que la existencia de código y registros en español no significa que el grupo sea de habla hispana, sino que puede ser un simple mecanismo de despiste.

A pesar de que Machete comenzó con actuaciones más genéricas en toda Latinoamérica, en los últimos años ha empezado a centrarse en países más específicos como Ecuador (16%), Colombia (7%), Nicaragua (2%), y finalmente Venezuela (75%), donde se concentran la mayoría de sus acciones.

El procedimiento para infectar el equipo objetivo es el siguiente: Machete envía correos electrónicos directamente a sus víctimas, emails que van cambiando de un blanco a otro. Estos correos electrónicos contienen un enlace o un adjunto con un archivo comprimido y autoextraíble, el cual ejecuta el malware a la par que abre un documento que funciona como señuelo. Los documentos que utiliza Machete son documentos reales robados en ataques previos, lo cual hace más fácil la tarea de engañar a sus blancos. Estos documentos usados como señuelo suelen ser enviados y recibidos legítimamente varias veces al día en las organizaciones objetivo del malware, aprovechando así los atacantes la oportunidad para elaborar correos electrónicos de phishing que resultan ser muy convincentes.

Pero, ¿sabemos realmente cómo funciona este malware?

Machete: análisis técnico

Entre 2014 y 2017 el malware era distribuido en paquetes de archivos que al ser extraídos causaban la ejecución de varios componentes py2exe de Machete: py2exe es una herramienta que convierte los scripts de Python en archivos ejecutables de Windows, los cuales no requieren que Python esté instalado para ser ejecutados.

La nueva versión de Machete, vista por primera vez en abril de 2018, hace uso de un archivo de descarga en su primera etapa. Este archivo instala los componentes del backdoor en un sistema que ha sido comprometido.

Componentes de Machete
Fuente de la imagen: ESET

Como se ve en la imagen, el archivo descargable es un autoextraíble (RAR SFX) que abre otro archivo, pudiendo éste ser un PDF o un documento de Microsoft Office, el cual es usado como señuelo para luego ejecutar el descargable. Este último contiene el binario (el componente py2exe) y un archivo de configuración con la URL objetivo, la cual se presenta como un string cifrado.

Componentes del descargable

Lo que se aprecia en la siguiente imagen es un ejemplo de un archivo de configuración para un descargable autoextraíble:

Configuración de un descargable de Machete
Fuente de la imagen: ESET

El archivo .exe que se ve en la imagen es un RAR SFX muy similar en cuanto a estructura al payload final usado por Machete. Contiene un py2exe ejecutable y un archivo de configuración con la URL desde la que descargar Machete. El archivo de configuración, llamado mswe, es una cadena cifrada AES (Advanced Encryption Standard) y codificada en base64 de .

La ejecución del descargable es la siguiente:

  1. El directorio de trabajo del descargable es %APPDATA%\GooDown.
  2. Se crea la tarea programada ChromeDow para ejecutar el descargable cada 3-6 minutos.
  3. Se lee y se descifra la URL del archivo de configuración mswe.
  4. Se ejecuta Machete.
  5. Se elimina la tarea del descargable.
Código del descargable
Fuente de la imagen: ESET

Ofuscación

Los ejecutables py2exe contienen un bloque de texto codificado en base64 y comprimido con zlib el cual, después de ser decodificado, muestra el ćodigo de la imagen. La ofuscación tiene lugar mediante el uso de pyminifier con el parámetro -gzip.

Ofuscación extra de Machete
Fuente de la imagen: ESET

Tras esta ofuscación encontramos código con nueva ofuscación, incluyendo nombres aleatorios de variables y código basura. Este método se denomina pyobfuscate, un proyecto ya usado en versiones anteriores de Machete.