Debido a las mejoras de seguridad en los sistemas operativos, el uso de rootkits ha estado en declive durante varios años. En este sentido, los desarrolladores de malware –especialmente aquellos que trabajan en grupos de espionaje- han estado ocupados desarrollando nuevos y sigilosos userland malware.
Recientemente, investigadores de ESET han investigado un sofisticado backdoor utilizado por el infame grupo de espionaje Turla, también conocido bajo el seudónimo Snake. Este backdoor, denominado LightNeuron, ha estado apuntando específicamente al servidor de correo Microsoft Exchange desde al menos 2014 y sigue siendo utilizado en recientes compromisos. A pesar de que no había muestras disponibles para su análisis, detalles en el código en la versión de Windows nos hacen creer que existe una variante para Linux.
Organizaciones víctimas de LightNeuron
Durante el curso de nuestra investigación, fuimos capaces de identificar al menos tres organizaciones víctimas diferentes, una de las cuales es de Brasil; tal como se puede ver en la Figura 1.
Dos de las víctimas – un ministerio de asuntos exteriores y una organización diplomática regional – están asociadas a una reciente campaña del grupo Turla que hemos analizado.
Debido a que notamos la presencia de una víctima en Brasil gracias una muestra que fue cargada en el popular multi escáner VirusTotal, no hemos sido capaces de determinar la naturaleza de la organización víctima.
Atribución a Turla
Creemos, sin temor a equivocarnos, que Turla es quien opera LightNeuron. Los siguientes artefactos, recolectados durante nuestra investigación, respaldan esta afirmación:
- En uno de los servidores Exchange comprometidos
- un script PowerShell conteniendo malware previamente atribuido a Turla fue droppeado 44 minutos antes que un script PowerShell utilizado para instalar LightNeuron, y
- ambos scripts estaban localizados en C:\windows\system32.
- El script utilizado para instalar LightNeuron tiene un nombre de archivo – ps1 – que se ve como los típicos nombres de archivo que utiliza Turla.
- En otro servidor comprometido, IntelliAdmin –una herramienta de administración remota, empaquetada con un empaquetador utilizado solamente por Turla– fue droppeado por LightNeuron.
- Para cada ataque de LightNeuron, hubo varias otras instancias de malware de Turla en la misma red.
- La dirección de correo utilizada por los atacantes fue registrada en GMX por alguien que se hizo pasar por un empleado de la organización apuntada como blanco. El mismo proveedor fue utilizado para el backdoor de Outlook y para un backdoor PowerShell sin documentar que nosotros denominamos PowerStallion.
Además, en una informe de tendencias de APT, investigadores de Kaspersky Labs atribuyeron sin total seguridad LightNeuron al grupo Turla.
Actividad del operador
Mientras analizábamos un activo comprometido, fuimos capaces de volver a trazar parte de las actividades de los atacantes. En particular, fuimos capaces de elaborar un mapa con las horas de trabajo de los operadores. Para eso utilizamos la hora en la cual el servidor Exchange comprometido recibió los correos que contenían comandos para el backdoor.
Nuestra primera observación es que la actividad se alinea muy bien con la típica jornada laboral, que va desde las 9hs a las 17hs para la zona horaria UTC+3, tal como se puede observar en la Figura 2.
Nuestra segunda observación es que no se observó actividad entre el 28 de diciembre de 2018 y el 14 de enero de 2019, mientras que, tanto antes como después de ese período los atacantes enviaron varios correos por semana. Esta pausa en las actividades corresponde al período de vacaciones de Navidad.
Características principales
LightNeuron es, según nuestro conocimiento, el primer malware dirigido específicamente a servidores de correos de Microsoft Exchange. Utiliza una técnica de persistencia jamás vista anteriormente: un Transport Agent (en español Agente de Transporte). En la arquitectura del servidor de correo opera al mismo nivel de confianza que productos de seguridad, como pueden ser filtros de spam. La Figura 3 resume cómo opera LightNeuron.
Al empujar el acceso del Transport Agent, LightNeuron es capaz de:
- Leer y modificar cualquier correo a través del servidor de correo.
- Crear y enviar nuevos correos.
- Bloquear cualquier correo. El destinatario original no recibirá el correo.
Un conjunto de reglas XML flexibles permiten estas funciones, tal como se puede ver en la Figura 4..
<class name="zip" metric="30" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<and>
<or>
<To condition="cnt" value="email1@[redacted]" />
<From condition="cnt" value="email1@[redacted]" />
<To condition="cnt" value="email2@[redacted]" />
<From condition="cnt" value="email2@[redacted]" />
[...]
</or>
<and>
<To condition="!cnt" value="email3@[redacted]" />
<From condition="!cnt" value="email3@[redacted]" />
[...]
</and>
</and>
</rule>
</class>
<class name="command" metric="40" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<attachment_Content-Type condition="cnt" value="image/jpeg" />
</rule>
</class>
log:logHandler
zip:zipHandler
changeSubject:changeSubjectHandler
changeBody:changeBodyHandler
create:createHandler
command:commandHandler
block:blockHandler
replace:replaceHandler
stat:statHandler
Figura 4 – Ejemplo redactado de un archivo de reglas
Las direcciones de correo utilizadas en estas reglas son personalizadas para cada víctima con el fin de apuntar a las personas más interesantes.
Al final de las reglas figura una lista de los handlers implementados por LightNeuron. Estas funciones son utilizadas en las reglas para procesar los correos. La tabla 1 describe los once handlers diferentes.
Handler name | Description |
---|---|
block | Block the email |
changeBody | Change the body of the email |
changeTo | Change the recipient of the email |
changeSubject | Change the subject of the email |
command | Parse the jpg/pdf attachment, decrypt and execute the commands. |
create | Create a new email |
log | Log email attachment in LOG_OUTPUT |
replace | Replace the attachment |
spam | Re-create and re-send the email from the exchange server to bypass the spam filter |
stat | Log the From, Date, To, and Subject headers in CSV format in STAT_PATH |
zip | Encrypt the email with RSA and store it in the path specified by ZIP_FILE_NAME. |
Tabla 1 – Descripción de los handlers implementados en la DLL
Backdoor
El comando handler es diferente a los otros que realizan modificaciones en los correos. Se trata de un backdoor controlado por correo. Los comandos están ocultos en PDF o JPEG adjuntos utilizando esteganografía.
Los atacantes solo tienen que enviar un correo que contenga un documento PDF o imagen JPEG especialmente confeccionada, a cualquier dirección de correo de las organizaciones comprometidas. Permite tomar control total del servidor de Exchange a través del uso de los comandos que se mostraron en la Tabla 2.
Instruction Code | Description | Argument 1 | Argument 2 | Argument 3 |
---|---|---|---|---|
0x01 | Write an executable. Execute it if it is an executable. | Exe path | N/A | File data |
0x02 | Delete a file | File path | N/A | N/A |
0x03 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x04 | Execute a process (CreateProcess) | Command line | N/A | N/A |
0x05 | Execute a command line (cmd.exe /c) | Command line | N/A | N/A |
0x06 | Return 0 | N/A | N/A | N/A |
0x07 | Disable backdoor for x minutes. | Minutes | N/A | N/A |
0x09 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x65 | Return 0 | N/A | N/A | N/A |
Tabla 2 – Lista de código de instrucciones
Una vez que un correo es reconocido como un correo comando, el comando es ejecutado y el correo es bloqueado directamente en el servidor de Exchange. De esta manera trabaja de manera sigilosa y el destinatario original no será capaz de verlo.
Esteganografía
LightNeuron utiliza esteganografía para esconder sus comandos dentro de un documento PDF o una imagen JPEG. De esta manera, incluso si el correo es interceptado tendrá una apariencia legítima, ya que contiene un adjunto válido.
En el caso de un PDF, los datos del comando pueden estar en cualquier parte del documento. Los operadores de LightNeuron solo agregaron un encabezado al comienzo del PDF para especificar el punto en el que los datos están localizados, como se puede ver en la Figura 5.
Una vez que este grupo de datos han sido descifrados mediante AES-256, revela una estructura personalizada que se puede ver en la Figura 6.
Los campos más interesantes son:
- Desplazamiento 0x08, la dirección de correo a la cual se envía el resultado del comando.
- Desplazamiento 0x1D, el código de instrucción. Corresponde a una de las funciones descritas anteriormente.
- Desplazamiento 0x25, el primer argumento. Pasará a la función representada por el código de instrucción.
Si un correo que contiene tal contenedor de comando, embebido en un archivo JPG o en un PDF, es enviado a un servidor comprometido por LightNeuron, una calculadora se ejecutará en el servidor de Microsoft Exchange.
Limpieza
La limpieza de LightNeuron no es una tarea sencilla. El solo hecho de eliminar los dos archivos maliciosos interrumpirá Microsoft Exchange, evitando que todos en la organización envíen y reciban correos electrónicos. Antes de eliminar realmente los archivos, el Transport Agent malicioso deberá ser deshabilitado. Antes de implementar un mecanismo de limpieza recomendamos que lea el documento técnico completo.
Conclusión
A lo largo de los últimos años hemos publicado varios artículos y whitepapers que detallan distintas actividades del grupo Turla, incluidos los ataques de “Man in the Middle” contra adobe.com o el sofisticado userland malware. Sin embargo, por el momento parece ser que LightNeuron ha asumido el título de ser el malware más avanzado que hasta ahora se conoce en el arsenal de Turla.
Al apoyarse en un mecanismo de persistencia nunca antes visto, como es el Transport Agent de Microsoft Exchange, LightNeuron permite a sus operadores permanecer bajo el radar durante meses o años. Les permite exfiltrar documentos confidenciales y controlar otras máquinas locales a través de un mecanismo de C&C que es muy difícil de detectar y bloquear.
Continuaremos siguiendo de cerca las actividades de Turla para ayudar a las potenciales víctimas a proteger sus redes.
Una completa lista de Indicadores de Compromiso (IoC) y muestras se puede encontrar en el whitepaper completo y en GitHub.
Para un análisis detallado del backdoor, consulte nuestro documento técnico Turla LightNeuron: One Email Away from Remote Code Execution. Por cualquier consulta o para enviar muestras relacionadas con el tema, contáctenos a través de threatintel@eset.com.