Análisis de TrumpBot

(Este año no hemos publicado la habitual imagen de la playa como aviso de vacaciones, aunque creo que es evidente que no hemos estado mucho por aquí. Sea como fuere, ya estamos aquí de nuevo).

A mediados del mes de julio capturamos una muestra de un binario de tipo ELF y arquitectura ARM que nos llamó la atención. Durante el siguiente documento se va analizar dicha muestra.

sha256: 9013164a2694a44cbafb22ea6c842af7fd26f327073a9d52b2c2e266ffd499fc

 La primera instrucción que ejecuta en el sistema el malware es la escritura de la cadena “TRUMP IS DADDY” en la terminal del sistema infectado.

Tras ello, el malware conecta con el servidor C2 a través de la IP 198.50.154.188 utilizando la instrucción !getid. En caso de recibir datos del servidor, el bot enviará 7 bytes pertenecientes al paquete recibido.

Una vez establecida la conectividad, el bot se mantendrá a la espera de la orden del servidor C2 a través de la llamada al sistema nanosleep, ubicada en la función fcn.0000c84c. Según se ha podido detectar, el malware tiene habilitadas cuatro posibles instrucciones: !webfuck, !rape, !urid y !exit, a través de los cuales implementa dos ataques de denegación de servicio HTTP Flood y UDP Flood.

El primer ataque detectado es HTTP Flood, el cual se ejecuta a través de la instrucción !webfuck y permite la adición de parámetros adicionales como la URL, además del host, característica que permite ajustar el ataque contra recursos específicos.

El contenido de la petición del C2 se compara a través de la función fcn.00009c80.

Tras la gestión de los datos obtenidos desde el servidor C2, se elabora la petición HTTP a través de la función fcn.000082d4.

(Pinchar para ampliar)

La otra opción dedicada a la denegación de servicio es !rape, la cual emplea el ataque UDP Flood.

Podemos observar cómo, del mismo modo que el anterior ataque, accede hasta tres veces a la función fcn.0000b758, dedicada a la gestión de la información recibida por parte del servidor C2. Finalmente, llama a la función fcn.000081cc, que será la encargada de elaborar la petición UDP a través de los parámetros indicados.

Destacar la característica que dota de nombre al malware, el cual lleva a cabo la denegación de servicio a través del envío de la cadena “trumpisdaddyrepetidas veces contra el host y puerto indicado.

Por último, la otra opción (además de !exit) implementada en el malware es la instrucción !urid, la cual tiene como función implementar un tiempo de reposo hasta la próxima activación.

Puesto que no se detectan funciones dedicadas a la difusión del malware, todo parece indicar que la muestra analizada forma parte de un engranaje más grande y que su única función es la implementación de una backdoor para la comunicación con el servidor C2.

Tras el análisis, podemos concluir que TrumpBot se trata de una nueva botnet IoT cuyos principales objetivos son routers y cámaras web de arquitectura ARM. Se trata malware sencillo pero efectivo, pues mediante pocas líneas de código implementa dos ataques además de características que permite la personalización de campos, los cuales repercuten directamente en la efectividad del ataque.

Linux.Bew: un backdoor para el minado de Bitcoin

En el siguiente artículo vamos a analizar una muestra del binario catalogado por varias firmas antivirus como Linux.Bew. (Virustotal), malware de tipo ELF del cual hemos detectado actividad durante este último mes.

sha256: 80c4d1a1ef433ac44c4fe72e6ca42395261fbca36eff243b07438263a1b1cf06

Lo primero que podemos detectar es la extracción de información intrínseca del proceso haciendo uso del archivo /proc/self/exe, cuya información será remitida más tarde hacia el servidor C&C.

[Read more…]

Tendencias de malware junio 2017. Destacado: NotPetya

Como todos los meses, desde el laboratorio de malware queremos compartir con vosotros lo que se está cociendo en el mundo del malware. Recordar que en este tipo de entradas encontraremos amenazas conocidas, vistas en otras fuentes o analizadas directamente en nuestro laboratorio, pero el objetivo del post es conocer qué tipo de amenazas están activas.

A continuación, mostramos un diagrama con la información recopilada este mes desde el laboratorio:

Para poder observar de un modo más visual determinadas tendencias relativas a la infraestructura de algunas amenazas actuales, una vez más queremos mostraros unas gráficas que consideramos interesantes. La idea es sencilla y consiste en recopilar de diferentes fuentes abiertas y de fuentes propias, direcciones IP de Command and Control (C2 a partir de ahora).

[Read more…]

El lado mimi (mimikatz) de #NotPetya

Uno de los aspectos que más nos ha llamado la atención desde el laboratorio de malware de #NotPetya es el módulo que según parece contempla código de la herramienta mimikatz. Es una automatización del proceso de cualquier test de intrusión que creemos que merece la pena estudiar y tratarla con cariño, para aprender. Para el análisis nos centramos en la versión de 32 bits del binario:

[Read more…]

Revisión de Trickbot V24

Desde el laboratorio de malware, como ya se imaginará más de uno, le tenemos cierto cariño a Trickbot. Es curioso ver cómo avanzan paso a paso en cuestión de semanas. Hace relativamente poco estaban añadiendo objetivos nuevos en su versión 19, y en pocos días, avanzan hasta la versión 24, con nuevas mejoras en cuestión de ofuscación de información y de ocultación en el sistema.

En esta entrada vamos a repasar los detalles interesantes que hemos visto modificados en esta última versión.

Lo primero, para constatar cual es la versión del binario que nos ha caído entre manos, extraemos de las strings del proceso la versión de la configuración que carga de sus recursos.

Como podemos observar, se trata de la versión 1000024, y el código de campaña es mac1.

[Read more…]

Nuestras radiografías de NotPetya

Desde el laboratorio de malware hemos estado atentos y analizando varios aspectos de lo que se ha llamado NotPetya, Wannapetya, ExPetya, etc. Lo que primero que nos preocupó en el laboratorio era conocer exactamente como se estaba propagando el malware. Para ello partimos de la dll (027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745) que se puede encontrar en Hybrid Analysis.

En el entorno de laboratorio levantamos dos máquinas Windows 7 sin los parches para protegernos de EternalBlue. El análisis de McAfee también ha mostrado el mismo comportamiento a nivel de red en este magnífico informe publicado durante los primeros días. A partir de ahí planteamos los siguientes dos escenarios:

Escenario 1:

Las dos máquinas no están en el dominio, pero existe en las dos máquinas un usuario con las mismas credenciales. Estas máquinas están en el mismo segmento de red.

Una vez preparado el entorno ejecutamos la dll del siguiente modo:

$ rundll32.exe  petya.dll,#1

A partir de este momento vemos como el equipo A (11.11.11.66) empieza a generar peticiones ARP para descubrir nuevos equipos dentro del mismo segmento de red. En nuestro caso, encuentra el equipo B (11.11.11.4) e inmediatamente intenta la autenticación sobre la máquina remota y se autentica. A continuación, el malware empieza a copiar la dll (en nuestro caso la hemos llamado lolz.dll) al recurso remoto:

[Read more…]

Análisis de Erebus. Un ransomware para Linux

Esta semana hemos conocido que la empresa surcoreana NAYANA, proveedora de servicios web, sufrió un ataque de una variante del ransomware Erebus. El caso llamó la atención dado que infectó a 153 servidores, todos ellos con sistema operativo Linux, en el cual más de 3.400 archivos se han visto afectados.

En este artículo vamos a llevar a cabo un análisis sobre una muestra del ejecutable encargado de llevar a cabo la infección en esta última campaña de Erebus:

sha256: 0b7996bca486575be15e68dba7cbd802b1e5f90436ba23f802da66292c8a055f
[Read more…]

Campaña de infección de Zyklon y Cerber

Las últimas semanas estamos observando múltiples campañas de correos con documentos ofimáticos adjuntos, cuya finalidad es instalar diferentes tipos de malware en nuestros sistemas. En este post queremos repasar una campaña concreta que ha evolucionado sensiblemente en los últimos días, pero cuya finalidad se ha mantenido. La evolución ha consistido en el nombre de los documentos adjuntos, pues en principio, todos venían con el nombre “resume.doc” y posteriormente han empezado a añadir un nombre aleatorio al principio “[Nombre]_resume.doc.

Fichero Hash
Resume.doc 952c2637787e737714ce8bdd24e9f41179865f1431c2ad4bc8e849b88c2a2ab9
Resume.doc 1969f5bc5be1db820eff204504ba53efbf9ecd63a9b4af0b3f545586aec847ca
Kathleen_Resume.doc 4bbff4c776705bbf2d4be4a3ef1c9211fa2c691d90970c0cdc8b1c11f82a98a0
Itunes.exe 4a2bf3912a679c0a3b591f13004b36bd2e77938b61e2a29badfec0d2c8b21c23
Itunes.exe 9b8e7a442e4b7b08e6d25629f97ebd65%da2deac7a1677d9700b9ddf9f640b3f
Itunes.exe dd6178ae524b31d668e555caf22d72b50a467a0221a505357cf1e8d2d8861ccf

El Documento en cuestión muestra lo siguiente al ser abierto:

[Read more…]

Hooking de funciones VBScript con Frida

El trabajo de análisis requiere de una lucha continua contra código desconocido, ofuscado y cifrado. Recientemente me encontraba peleándome con un VBScript que, cómo no, se encontraba ofuscado (al menos dos capas de protección). Tras superar la primera protección y empezar con la segunda, comprobé que el método de descifrado en este punto no era trivial. Esto se sumaba a una aversión, por cuestiones meramente personales, por este lenguaje. Un análisis dinámico me podía dar la secuencia de comandos que finalmente se ejecutaban, pero perdía entonces visibilidad de todo cuanto había ocurrido por mitad. Y… ¿quién sabe? A lo mejor hay alguna técnica antianálisis por mitad que modifica el comportamiento del script para contactar contra otra infraestructura diferente. Siempre con el modo paranoico encendido.

Decidí que iba a atajar el asunto de raíz. Tanto el primer script como el segundo descifrado, después de desprotegerse, hacían uso de la función ‘Execute’ de VBScript para dar vida a su código antes protegido. Internamente, el proceso que ejecuta el script (‘wscript.exe’ en este caso), tendría que manejar el buffer descifrado y pasarlo a otra función que se encargue de ejecutarlo. Pero… ¿Dónde se encontraba susodicha función?

Con fines didácticos, en lugar de analizar la aplicación usando el modo rápido, voy a suponer que desconocemos la estructura del propio ‘wscript.exe’ y de las funciones de las librerías que carga. En primer lugar, ¿Qué hace el script y qué espero ver al analizar ‘wscript.exe’?

Ilustración 1: Script inicial cifrado

Ilustración 1: Script inicial cifrado

[Read more…]

Evolución de Trickbot

Desde el laboratorio de malware de S2 Grupo llevamos tiempo vigilando los movimientos de un troyano conocido como Trickbot. Su relación con Dyre, otro troyano más antiguo con el que comparte muchas características de diseño, y la velocidad a la que evoluciona, ha captado nuestro interés desde que vimos las primeras muestras.

Este malware se suele catalogar como troyano bancario puesto que hasta el momento ha estado muy orientado al robo de datos referentes a banca, pero su diseño modular permite que en cualquier momento puedan ampliar sus capacidades para realizar cualquier tipo de acción extra.

Durante sus primeras versiones, ya se realizaron muy buenos análisis como los de @hasherezade en el blog de malwarebytes y de Xiaopeng Zhang en el de Fortinet. Pero el desarrollo de Trickbot ha seguido durante los últimos meses, llegando a la versión 17 en menos de 6 meses. Por ello hemos pensado que sería interesante comprobar los cambios que ha sufrido durante su evolución y profundizar en algunas de sus técnicas más curiosas a la hora de realizar distintas acciones.

Junto con estos factores, un reciente aumento en sus objetivos y campañas de infección, ha motivado que decidamos dedicar tiempo y esfuerzo extra en realizar un análisis más profundo de esta amenaza.

Hemos recopilado el resultado de dicho análisis en el reporte que adjuntamos a continuación y que esperamos resulte de utilidad a más de uno.

– Descargar informe –

[Read more…]