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…]

Módulo Radare2 para Yara

Desde el equipo de YaraRules Project nos gustaría presentaros un nuevo módulo que hemos desarrollado que permite utilizar la información que nos provee radare2 para crear firmas de Yara.

Ya hemos hablado en este blog de Yara (potente herramienta open-source para búsqueda de patrones en binarios) que además, nos permite ampliar sus funcionalidades a través del uso de módulos, bien usando los ya oficialmente distribuidos (PE, ELF, Cuckoo, Math, etc), bien diseñando nuestros propios módulos (como explica muy bien aquí la documentación de Yara).

Por otro lado, todos los que conocemos radare2 sabemos que es un framework de reversing muy versátil, open-source, y que entre otras muchas funcionalidades, nos permite obtener mucha información de un binario y además soporta tantos tipos de formatos de ficheros (ELF, Java Class, Mach-O, COFF, Gameboy, Nintendo Switch bins, SNES roms, WASM, Compiled LUA, PCAP files, etc.), que resulta difícil encontrar otra herramienta de estas características que lo haga.
[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…]

Análisis del Timeline de una evidencia con Plaso

Plaso, evolución de la herramienta conocida como log2timeline, es una herramienta desarrollada en Python que permite extraer la línea temporal de todos los eventos ocurridos en un sistema. Admite como como datos de entrada ficheros, discos virtuales, dispositivo de almacenamiento , algún punto de montaje o un volcado de imagen de disco. Como nota aclaratoria aunque la nueva herramienta pasa a denominarse plaso, para ejecutarla se hará a través de “log2timeline.py” lo cual puede llegar a causar confusión.

Plaso nos ofrece un conjunto de herramientas, que de forma resumida son:

  • log2timeline: extraer el time line de todos los eventos.
  • psort: procesamiento de los datos extraídos.
  • pinfo: muestra los datos del fichero de almacenamiento plaso.
  • image_export: exporta ficheros de una imagen.

Log2timeline se encarga de analizar los datos recibidos como parámetro de entrada generando un fichero de salida con formato “plaso”, el cual contendrá toda la información de los datos analizados. Dicho fichero de almacenamiento plaso contendrá información como:

  • Cuando se ejecutó la herramienta.
  • Metadatos de los ficheros analizados de los datos de entrada.
  • La información parseada.
  • Número de eventos extraídos de los datos de entrada.

Para las pruebas realizadas he optado por usar una imagen de prueba en formato EnCase (parte1 y parte2), accesible para cualquiera que quiera realizar las pruebas.

[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…]

Investigar una alerta de IDS desconocida (TROJAN ABUSE.CH SSL Fingerprint Blacklist Malicious SSL Certificate Detected)

Hace unos días me encontré con una alerta que me llamo la atención, pues era la primera vez que la veía. La alerta en cuestión era ET TROJAN ABUSE.CH SSL Fingerprint Blacklist Malicious SSL Certificate Detected (Ixeshe CnC).

A primera vista, solo por el nombre de la alerta, queda claro que hay un fingerprint de SSL que está en la blacklist de Abuse.ch. Además, parece que es utilizado para acceder o conectarse al C2 Ixeshe. Para conocer con exactitud por qué ha saltado la alerta me dirijo a la web de documentación de Emerging Threats, en concreto a esta dirección http://doc.emergingthreats.net/bin/view/Main/2022960.

Desde la web de Emerging Threats queda claro el patrón de búsqueda. Lo primero es que haya una conexión establecida desde el servidor (flow:established,from_server;), que además aparezca el contenido 0900b5c752c98781b503 (content:”|09 00 b5 c7 52 c9 87 81 b5 03|”;) seguido de 550403 (content:”|55 04 03|”;) y finalmente que apareca 0x09localhost (content:”|09|localhost”;). Indicar que se han obviado algunas partes de la regla de Snort. Si el lector lo requiere puede dirigirse a http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node32.html donde se documentan todas las opciones.

[Read more…]

Petya / NotPetya, esa es la cuestión

Si hace poco más de un mes el mundo quedaba suspendido por el ataque del ransomware WannaCry, la historia se ha vuelto a repetir.

Poco después del mediodía de ayer llegaban las primeras informaciones acerca de la posible infección de varias empresas y organismos gubernamentales por una variante del ransomware Petya. Entre los países más afectados se encuentran Ucrania, Rusia, Polonia o Italia, aunque todo apunta a que empresas españolas también han resultado afectadas.
[Read more…]