Desde LAB52 de S2 Grupo se ha llevado a cabo una investigación sobre un actor sobre el que desde LAB52 no se han podido encontrar referencias o similitudes en fuentes abiertas y al que se ha identificado como WIRTE.
El equipo de DFIR (Digital Forensics and Incident Response) de S2 Grupo identificó por primera vez este actor en agosto de 2018 y a partir de ese instante se ha llevado a cabo el seguimiento durante los últimos meses.
Este grupo ataca a Oriente Medio y no utiliza mecanismos muy sofisticados, al menos en la campaña iniciada en agosto de 2018 que fue la monitorizada. Se considera poco sofisticado por el hecho de que los scripts están sin ofuscar, las comunicaciones van sin cifrar por HTTP, utilizan Powershell (cada vez más monitorizado), etcétera. Pese a este modus operandi aparentemente poco sofisticado respecto a otros actores, consiguen infectar a sus víctimas y llevar a cabo sus objetivos. Además, como se verá durante este artículo, la tasa de detección de alguno de los scripts en el mes de diciembre de 2018 por los principales fabricantes de antivirus es baja, aspecto que es necesario resaltar. Hay que ser consciente que una vez se ejecutan estos scripts es cuando el análisis por comportamiento de muchas soluciones los detectarán, pero este hecho no ha sido objeto de estudio por parte de LAB52.
Este actor en todos los artefactos analizados muestra a sus víctimas un documento señuelo en árabe con diferentes temáticas. Durante el informe se analizarán estos documentos y quienes podrían ser los objetivos dependiendo de la temática tratada en el documento.
Análisis técnico
Como se ha indicado, durante el mes de agosto de 2018 desde S2 Grupo CERT gestionamos un incidente que tenía como objetivo la diplomacia de diferentes países de Oriente Medio.
Los atacantes utilizaron como herramienta para el control de la víctima un malware realizado en Visual Basic Script (VBS). Partiendo del estudio de este VBS desde S2 Grupo CERT se inició la monitorización de este grupo, encontrando en otras fuentes otros artefactos del mismo grupo pero con diferentes documentos señuelo y con diferentes estrategias de ejecución, persistencia, etcétera. Desde S2 Grupo no se posee suficiente información como para realizar ningún tipo de atribución ni autoría. Se asocia que estos artefactos están relacionados porque reflejan similitudes desde un punto de vista técnico, temporal y por los documentos señuelos utilizados, ya que en ocasiones son idénticos.
Un aspecto observado durante la investigación es que los atacantes después de ejecutar el VBS utilizaban como framework de post-explotación Empire (https://github.com/EmpireProject/Empire).
En total se han podido recopilar cinco scripts más el implicado en el incidente. A continuación detallamos de cada uno de ellos sus características principales.
Script 1: 617bbc71e5f0a645cbb8eeb6d4a1ece96ba0860c8ab5deda6a795e6ad244607a
Este primer fichero se puede ver en Virus Total y posee una detección baja (4/58); el último análisis ha tenido lugar el 12/12/2018.
En este caso el fichero ha sido subido desde Palestina a Virus Total:
En la imagen se puede ver que se ha subido a través de la web, desde PS (Palestina) y además que ha sido subido por primera vez el 05/08/2018.
La comunicación de red se produce por HTTP al dominio micorsoft[.]store al puerto TCP/2082. Este dominio desde que existe ha resuelto a las siguientes direcciones ip:
- 104.31.78.17
- 104.31.79.17
- 185.86.79.243
Actualmente resuelve a una dirección de Cloudflare. El puerto 2082 es uno de los puertos permitidos por Cloudflare para el tráfico HTTP. Cabe destacar que la primera dirección IP 185.86.79.243 está geolocalizada en Ucrania. Esta dirección IP ha sido asignada a diferentes dominios, entre ellos el malicioso.
Aparentemente los atacantes han cambiado de dirección IP y se han ocultado en determinado momento detrás de Cloudflare.
En este script esta información de la comunicación se encuentra toda en la función RunPld(). Esta función tiene como objetivo descargarse código powershell del servidor de mando y control y ejecutarlo:
Otra función común en estos scripts es la función writeDOC. Esta función se encarga de decodificar el documento señuelo (decoy), escribirlo a disco y mostrárselo a la víctima. Este documento está codificado en base64 y embebido en el propio script en una variable.
El script VBS se copia a sí mismo a APPDATA a través de la función copyVBS():
El script por sí solo no establece persistencia en su primera ejecución por lo que o los atacantes la despliegan después cuando ejecutan powershell o la fijan mediante el transporte de este script. El script una vez copiado a APPDATA tendrá el siguiente nombre: Update.vbs.
Por otro lado, si el script se está ejecutando desde APPDATA no muestra el documento y solo ejecuta la función RunPld() que es el backdoor en powershell y que se ha detallado con anterioridad. Si no está siendo ejecutado desde APPDATA muestra el fichero DOC “decoy”, se copia y ejecuta el backdoor (script en powershell).
Cuando la víctima ejecuta el fichero VBS se le abrirá un documento Word con el siguiente contenido (se puede ver a la izquierda en árabe y a su lado la traducción realizada por Google Translate):
El documento que hemos mostrado pretende simular que ha sido enviado desde el Ministerio de Asuntos Exteriores de Arabia Saudita. Presuntamente, parece que el destinatario era el Ministerio de Awqaf y de Asuntos Islámicos de Kuwait, ya que en la misma firma del documento aparece (Kuwait – Jeddah). También estaba dirigido aparentemente al Consulado de Kuwait del Consejo de Cooperación de los Estados Árabes del Golfo, organismo altamente importante dentro de los países del Golfo Arábigo.
El texto menciona que adjunto, el receptor encontrará un documento del Ministerio de Exteriores de Arabia Saudita llamado “asuntos del Hajj”, el cuál es de interés para todos aquellos países árabes que disponen de ciudadanos que mantienen intereses en llevar a cabo la peregrinación a la Meca. Además, incentiva a los receptores a reenviar el documento a otras organizaciones gubernamentales de países con intereses vinculados con el “Hajj” y que hayan sido aprobados por el mismo Ministerio de Cultura de Arabia Saudita. Presuntamente, el autor pretende generar una infección entre los “partner states” de Arabia Saudita; el “target” del emisor podrían ser los miembros del cuerpo diplomático de países con interés en el “Hajj” y sobre todo los diplomáticos que forman parte del Consejo de Cooperación de los Estados Árabes del Golfo, ya que el emisor promueve el reenvío del documento a todas las partes interesadas.
Existen cinco pilares fundamentales dentro de la religión del islam. Uno de ellos es el “Hajj”, el cual implica que todos los musulmanes deben visitar al menos una vez en la vida la Meca. Este monumento está ubicado en la región de Jeddah dentro de Arabia Saudí. El “Hajj” es significativamente relevante para los musulmanes de todo el mundo. Consecuentemente, este texto es atractivo y genera interés tanto a los musulmanes chiitas como a los sunitas.
La fecha de la emisión del documento es relevante ya que se llevó a cabo en agosto, aproximadamente dos semanas antes de la gran peregrinación, justamente cuando miles de personas de fe musulmana iniciarían el peregrinaje hacia Jeddah en Arabia Saudita. Consecuentemente, las probabilidades de abrir el documento por parte de una posible víctima aumentan significativamente.
Script 2: b4c20b56059a6c6762b4c99d04eb9177cb0a4707c58ef575817fb8b702f162aa
Este fichero en Virus Total posee una detección baja, 2/56, y el último análisis ha tenido lugar el 01/12/2018.
En este caso el fichero ha sido subido desde Palestina a Virus Total:
En la imagen se puede que se ha subido a través de la web, desde PS (Palestina) y además que ha sido subido por primera vez el 25/08/2018.
La comunicación de red en este caso se produce también por HTTP al dominio micorsoft[.]store al puerto tcp/2082.
En este caso el script tiene exactamente el mismo código que el hash “617bbc71e5f0a645cbb8eeb6d4a1ece96ba0860c8ab5deda6a795e6ad244607a”. Lo único que varía es el documento señuelo (“decoy”) que podemos ver a continuación:
Las informaciones expuestas en el documento están directamente relacionadas con cuestiones de seguridad y asuntos de política interna de Palestina. Los actores principales mencionados en el texto son Hamas, Al Fatah y el gobierno palestino. La información es un resumen analítico sobre la actual situación política de Palestina e incluso analiza en términos geoestratégicos algunos aspectos de la actualidad. Además, el documento informa sobre las potenciales estrategias políticas que podrían emprender en un futuro los actores mencionados anteriormente. Este tipo de informaciones son de alta relevancia para diplomáticos con intereses políticos en la zona geográfica de Gaza y Palestina. Consecuentemente, podría ser factible que el “target” del documento fueran diplomáticos, políticos y profesionales del sector de defensa.
Script 3: b906f3c19c19e1b20b2d00bfb82b5453d5386d63b4db901ecade0f33dd38326a
Este fichero en Virus Total posee una detección baja, 3/56, y el último análisis ha tenido lugar el 01/12/2018.
En este caso el fichero ha sido subido desde Suecia a Virus Total:
En la imagen se puede confirmar que se ha subido por la community, desde SE (Suecia) y además que ha sido subido por primera vez el 06/11/2018.
La comunicación de red en este caso se produce también por HTTP al dominio micorsoft[.]store al puerto TCP/2082.
En este caso el script tiene exactamente el mismo código que los dos anteriores; el documento señuelo es idéntico a “617bbc71e5f0a645cbb8eeb6d4a1ece96ba0860c8ab5deda6a795e6ad244607a”, variando sólo desde donde ha sido subido y las fechas respecto al primero.
Script 4: 3d4a9466e9428ccb1cde05336f5366b29c7e5ae454ddaa4aa28c75c504c13d96
Este fichero en Virus Total posee una detección baja, 8/56, y el último análisis ha tenido lugar el 12/12/2018. Este documento podemos ver que posee una detección superior al resto, aunque es cierto que alguno no ha sido reanalizado el día 12 de diciembre.
En este caso el fichero ha sido subido desde Palestina a Virus Total:
En la imagen se puede ver que se ha subido a través de la web, desde PS (Palestina) y además que ha sido subido por primera vez el 25/08/2018. La fecha de subida coincide con la fecha del hash “b4c20b56059a6c6762b4c99d04eb9177cb0a4707c58ef575817fb8b702f162aa”.
La comunicación de red en este caso se produce por HTTP al dominio office365-update[.]co al puerto TCP/2082. Este hash cambia el dominio y después la estructura del script es diferente a los demás, aunque mantiene funciones y similitudes con el resto.
La direcciones ip a las que ha resuelto el dominio son:
- 104.24.108.64
- 104.24.109.64
En este caso el dominio siempre ha resuelto a CloudFlare y no se ha observado que haya resuelto a otra dirección ip como en el caso anterior.
El main del script es simple y vamos a ir revisando su flujo:
Vamos a ir viendo que lógica tiene cada una de las funciones.
La primera función que encontramos es writeTXT():
La función lo que hace es guardar, en un fichero de nombre sys.txt y en una ruta fijada desde el script, el contenido de la variable fileContent que es parte de un script en powershell. Hay que destacar que la función de escritura a fichero utilizada es wirteFile(), en la que como se puede apreciar se ha producido un error tipográfico que se ha visto en varios de los scripts que implementan esta funcionalidad.
La función writeSCT():
La función crea un fichero SCT (scriptlet) en disco para ejecutar a través del lenguaje JScript un powershell cuyo código está en el fichero TXT escrito por la función writeTXT().
Para disparar la ejecución se utiliza regsvr32.exe:
La función writeDOC() realiza la misma lógica que en el hash “617bbc71e5f0a645cbb8eeb6d4a1ece96ba0860c8ab5deda6a795e6ad244607a” y que ya ha sido explicada.
En este caso el documento señuelo mostrado a la víctima es el mismo que el presentado en “b4c20b56059a6c6762b4c99d04eb9177cb0a4707c58ef575817fb8b702f162aa”.
Script 5: 4f5d633604b8a3cceb7d582bab640d47e8a5898458c5c2f0e28adcdf01aabf33
Este fichero tiene una tasa de detección más alta que los anteriores: se puede ver que 20/58 antivirus lo identifican como dañino.
En la imagen se puede ver que se ha subido a través de API, desde US (Estados Unidos) y además que ha sido subido por primera vez el 02/09/2018. La fecha de subida es posterior los artefactos subidos desde Palestina, pero cercana en el tiempo.
En este caso se puede ver una referencia a este script en un tweet (https://twitter.com/ItsReallyNick/status/1036687952544448512) de Nick Carr (@ItsReallyNick), donde detalla todos los aspectos técnicos del script:
Viendo el hilo del tweet se puede ver como indican que en este caso se ejecuta un VBScript #Houdini RAT y que el servidor de mando y control es hxxp://149.28.14[.]103:535/is-ready.
Al buscar qué dominios han resuelto a esta dirección ip se observa que el único categorizado como malware es el relacionado con spdns.de y buscando por este nombre de dominio llegamos al análisis https://gist.github.com/JohnLaTwC/ccdcbeb85649ef9feaae045482d694b9 (de @ JohnLaTwC) que se ve como está ese dominio configurado con el puerto 535 y con peticiones HTTP del RAT Houdini. El dominio estuvo resolviendo a direcciones IP hasta el día 30 de Agosto de 2018.
El hecho de que en este caso el actor utilice un Houdini varía respecto al resto de VBS encontrados, que basaban su ejecución en un script powershell que recibía comandos desde un servidor remoto y los ejecutaba, pero aun así son varios los aspectos que nos llevan a pensar que se trata del mismo actor:
- Existen nombres de función que coinciden: writeTXT, writeDOC, wirteFile (esta es un indicador muy importante dado que es el mismo error tipográfico), writeBytes y decodeBase64.
- Después writeDOC tiene la misma lógica y además el documento señuelo está también en árabe.
En este caso el documento señuelo (“decoy”) varía respecto a los anteriores por lo que todo hace presuponer que el objetivo es diferente:
El documento hace referencia a informaciones relacionadas con las Fuerzas de Seguridad en el territorio del norte de Gaza involucradas con la defensa de la frontera. Las informaciones hacen referencia a una acreditación y condecoración por parte de las autoridades gubernamentales palestinas hacia sus miembros de las Fuerzas del orden y cuerpos de seguridad. El “target” de este documento malicioso podrían ser militares, policías, profesionales vinculados al Ministerio de Defensa y miembros del cuerpo diplomático en Gaza. El actual gobierno dentro de la Franja de Gaza es Hamas, un partido que dispone de un brazo militar considerado por diferentes países como grupo terrorista.