Agujas, pajares e imanes: Análisis forense de malware fileless (IV)

Paso 7: Correo

En la entrada anterior Salvador había destripado el malware y encontrado el C2, y Ángela había confirmado que era una sesión de Meterpreter, habiéndose hecho una idea de las posibles acciones realizadas por los atacantes.

Tan solo queda localizar el vector de entrada, que por el análisis de memoria sabíamos que era un correo electrónico malicioso. Es el momento perfecto para recuperar el equipo del usuario pepe.contento, entrar con un LiveUSB forense (como DEFT o SIFT) y recuperar el .ost del usuario del directorio C:\Users\pepe.contento\AppData\Local\Microsoft\Outlook.

Para leerlo en modo solo lectura la forma más cómoda es emplear Kernel OST Viewer, que permite abrir el fichero de correo entero (y con acceso a los metadatos). En 30 segundos Ángela ha encontrado lo que buscaba:

El enlace ya lo conocíamos, pero ahora tenemos el correo entero y comprobamos que en efecto es un spear-phishing de libro: remitente falsificado y conocido, mensaje dirigido al usuario con temática que incluso podría considerarse como interna y enlace malicioso diseñado a la perfección.

Si cogemos las caberas del mensaje podemos encontrar unos metadatos interesantes:

Received: from correo.mina.es (172.16.1.2) by correo.minaf.es (10.11.0.101)
with Microsoft SMTP Server id 14.3.408.0; Mon, 22 Oct 2018 22:37:54 +0200
Received: from [127.0.1.1] (unknown [101.132.122.231]) by correo.mina.es
(Postfix) with ESMTPS id 6A06E85AD6 for <pepe.contento@minaf.es>; Mon, 22 Oct 2018 22:38:09 +0200 (CEST)
Content-Type: multipart/mixed;
boundary=”===============7698037387482601352==”
MIME-Version: 1.0
From: =?utf-8?b?UlJISCBNSU5BRg==?= <rrhh@minaf.es>
To: <pepe.contento@minaf.es>
X-Priority:
X-MSMail-Priority:
Subject:=?utf-8?b?29uY3Vyc28gZmVsaWNpZGFkIHN1cHJlbWEgbmF2aWRhZGVzIDIwMTg=?=
Message-ID: <20181022203809.6A06E85AD6@correo.mina.es>
Date: Mon, 22 Oct 2018 22:38:09 +0200
Return-Path: rrhh@minaf.es
X-MS-Exchange-Organization-AuthSource: correo.minaf.es
X-MS-Exchange-Organization-AuthAs: Anonymous

[Nota: Debido a las múltiples pruebas realizadas en la preparación del taller, la fecha de envío del correo recibido es el 22 de Octubre, cuando debería de ser el 3 de Noviembre. Sed buenos con el autor… O:-) ]

Podemos comprobar que el mensaje ha falsificado la dirección de envío haciéndose pasar por RR.HH. del propio MINAF (Ángela lleva insistiendo más de un año en la necesidad de activar la verificación SPF en el servidor de correo, maldita sea), y que el correo ha sido enviado por correo.mina.es (y la IP es 101.132.122.231, la misma que encontramos en el análisis de memoria).

Al menos el análisis nos devuelve una nueva variedad de IOC que podemos cruzar con los logs de la pasarela de correo (no podemos usar el remitente rrhh@minaf.es porque al ser una dirección legítima del MINAF nos generaría una gran cantidad de falsos positivos):

  • Asunto: “Concurso felicidad suprema navidades 2018” (ojo con las búsquedas porque algunos servidores las codifican, busca solo por palabras clave o hace uso de un decodificador online del RFC 20147).
  • IP origen: 101.132.122.231
  • Servidor origen: correo.minaf.es

La búsqueda nos da jugosos resultados: a lo largo del 3 de noviembre el correo malicioso ha sido enviado a 15 personas, todas ellas altos cargos del MINAF o su personal administrativo. Está claro que los atacantes sabían muy bien a dónde tenían que apuntar. Ángela envía un correo rápido avisando a los usuarios y se pone en contacto con Sistemas para que procedan a la búsqueda y borrado del mismo de los buzones afectados.

Pasado el momento de pánico, Ángela hace una pequeña pausa para reflexionar. Han pasado tan solo unas horas desde que se declaró el incidente, por lo que es posible que los atacantes sigan esperando a que más usuarios caigan en la trampa ¿Y si podemos hacernos con el mecanismo de entrega del malware?

Ángela decide correr un pequeño riesgo: en un ordenador limpio del MINAF instala Fiddler (para capturar todas las peticiones web) y pulsa sobre el enlace, obteniendo esta pantalla.

Esta vez ha habido suerte, así que sin dudarlo arrambla con todo el código y se junta con Salvador para analizarlo.

Paso 8: Análisis del malware web

Fiddler no deja ni una petición sin capturar, así que nos informa diligente que ha recogido 3 ficheros:

  • felicidad.html
  • felicidad.js
  • felicidad.xsl

Salvador decide ser meticuloso y empezar por el código HTML, que sospecha que va a ser el precursor de todo el código malicioso. El examen deja entrever lo que está pasando:


Al parecer tenemos un Javascript incrustado y ofuscado que, sin detenernos a destriparlo, parece llamar a felicidad.js. Salvador decide saltar directamente al felicidad.js, que tiene un contenido escueto pero interesante:

Ninguno de los dos es experto en Javascript, pero la funcionalidad del código parece obvia: descárgate el fichero felicidad.xsl y ejecútalo. Saltando al tercer fichero encontramos el payload definitivo:

Salvador señala emocionado una parte del código: ¡Sharpshooter! ¡Nos han atizado con un Sharpshooter! Al parecer Sharpshooter es un generador de payload maliciosos con triple de ofuscación, evasión y queso, que los atacantes han empleado para ocultar en su interior el launcher de meterpreter. Y con muy buen tiento el parecer, porque al subirlo a MARIA casi ningún antivirus es capaz de detectarlo:

Con toda la información recabada en el análisis forense, Ángela tiene todo lo necesario para responder al incidente. El cierre del incidente, las lecciones aprendidas y una pequeña sorpresa en la última entrada…

Comments

  1. Tremenda historia!!!!!
    Excelente narracion.
    Saludos

  2. !Muchas gracias! :D

    Un saludo,

    Antonio Sanz

  3. Muy bueno! :)