miércoles, 24 de mayo de 2017

Análisis Técnico Ransomware EternalRocks aka MicroBotMassiveNet



Buenas tardes amigos.

Hace unos minutos escribí la 3ra. parte del análisis in deep del virus WANNACRY y todavía me falta 1 parte mas, pero en lo que escribía esos tutoriales salio un nuevo RANSOMWARE llamado:

EternalRocks (a.k.a. MicroBotMassiveNet)
 

Que basados en los análisis que he hecho en primera instancia y que comentaré aquí en este artículo es mucho mas peligroso ya que como sabrán usa un filtrado de utilerías de hacking de la NSA de eua.  que contenía varios exploits como lo son: 

ETERNALBLUE, ETERNALCHAMPION, ETERNALROMANCE and ETERNALSYNERGY,


Este virus nos atrevemos a decir que causara mas daño que el WANNACRY que uso exploits como eternalblue y double pulsar, Eternalrocks usa todos los exploits que fueron filtrados, imaginen que peligro nos espera, pero empecemos el análisis.

Las muestras que me llegaron vienen en un archivo comprimido en Rar con password para evitar su descompresión maliciosa y tiene el hash que ya verifique de autenticidad :



Al descomprimirlo nos crea una carpeta con los ejemplos de este virus que son en este caso 28 elementos:




 Al hechar le primer vistazo de las muestras que están programadas en Visual .NET pero tenemos dos posibles lenguajes de programación usados que son C# y BAsic.   


QUEeee  no puede ser, usaron vISUAL baSIC  para programarlo? jejejejejeje tendremos que verificar,  ya que el chiste de aquí es hacer mas exacto el análisis de en que lenguaje estan hechos y ni tarde ni presuroso al revisar  de una forma mas exsautiva las cabeceras del ejecutable de una forma hexadecimal  y por medio del desemsamblado de cabeceras del ejecutable encontré las siguientes características:



Contiene 5 cabeceras de la cuales su 
Code Offset = 00000400, Code Size = 00484800
Data Offset = 00000400, Data Size = 00484800
 


De las cuales podemos ver que el OBJECT1 tiene unos caracteres raros lo cual me hace pensar que tiene  una protección ya sea ofuscación, compresión y/o encriptación y al analizarlo mas a fondo me doy cuenta que tiene una protección llamada OFUSCACIÓN DE CODIGO:




Se ve que los amigos creadores de este virus se esforzaron mas por ocultar el código de este, mucho mas que los creadores de  WANNACRY que no le pusieron ningún tipo de protección ya sea antidebuggin, anti desensamblado y/o encriptación, ofuscación o compresión, osea estos malandrines jejejejje  lo ocultaron mejor peroooo no tanto verán como le sacamos todo :p.


Al analizar en formato hexadecimal podemos darnos cuenta que es del tipo portable ejecutable y que corre solo en ambientes windows y no en MS-dos,




 Al seguir analizando el código vi algo que me llamo la atención que se parecía mucho al wannacry que fue esto:

Esto problablemente sea que viene empacado como el wannacry o es un password? y entonces ni tarde ni presuroso fui y le cambie la extensión a la muestra, la pase de .exe a .rar y trate de descomprimirla y......



 Fallo, estos que lo crearon parece que no cometieron los mismos errores que el wannacry, pero al continuar analizándolo me encuentro unos string references muy interesantes que pondré en dos imagenes siguientes y que iremos describiendo que son:




 Queeeeee usan  RNGCryptoServiceProvider para entender que esto y por que lo usan primero explicare que es un sistema de cifrado criptográficamente muy fuerte y que se usa como CLASS en . Net con el cual al encriptar genera numeros aleatorios criptograficos muy potentes y es muy útil este para generar claves de sesión aleatorias en AES, por ejemplo una vez que construye el objeto GetBytes () se pasa la longitud en bytes del número aleatorio que desea generar.

Pero por que usaron esta? pues fue muy fácil de usar y generar ya que se puede:

       Calcular el valor de hash para cualquier mensaje dado.
       Facil generar un mensaje que tenga un hash dado.
       Es imposible modificar un mensaje sin cambiar el hash.
       Es imposible encontrar dos mensajes diferentes con el mismo hash.


Tambien este cifrado tiene la carecterística de que en una función hash se le puede poner una huella digital única de una pieza de datos y generar un resumen de hash de un bloque de datos tambien
es muy fácil en .NET. y todavía mejor  se pueden usar varios algoritmos como MD5, SHA1, SHA256.


al seguir analizando el código en hexadecimal tambien me encontré que este ransomware usa:

RijndaelManaged


Uff amigos este virus tiene muchas mas sorpresas y podemos decir que este tipo de algoritmo de cifrado soporta longitudes de clave de 128, 192 o 256 bits; Por defecto a 256 bits y soporta tamaños de bloques de 128, 192 o 256 bits; Por defecto a 128 bits (compatibles con Aes) y puede ser usado en diferentes lenguajes como C# - C++ - F# - VB  claro de .NET.


y al seguirle analizando me llamó la atención este:


 Del cual puedo decir que lo usa para heredar todas las implementaciones de los algoritmos simétricos usados por este cosa fea donde con el BLOCKSIZE obtiene el tamaño de la operación criptografica  en bits  y del cual obtiene el IV que es el vector de inicialización del vector símetrico del offset 8DE2.


 Y del offset 6765745F4B obtiene la llave.



Como lo podemos ver en la imagen y tambien encontré que afecta y busca las versiones de windows:



y después encontré donde hace mención de los exploits usados:




Ahora podemos ver que al ser desensamblado del ransomware podemos ver que


NO  muestra ninguna función importada o exportada pero al ser visto en hexadecimal podemos darnos cuenta que usa la función importada:

KERNEL32.DLL

y la función integrada de kernel32 llamada:

VirtualProtectEx.


Para cambiar la protección de acceso de cualquier proceso.

Ahora como pudimos ver este virus solo tiene una función importada visible al desensamblado que es:

MSCOREE.DLL

Vemos que usa la funcion:  COREXEMAIN. de la cual podemos decir que la usa para inicializar el Common Lenguaje Runtime (CLR) que localiza el punto de entrada en el encabezado CLR del ensamblado ejecutable y comienza su ejecución.





Después de esto me di cuenta que descarga los componentes para infecciones secundarias  y que utiliza el HOST.EXE  para descargar el  componente de TOR del url



Y usa el servidor  ubgdgno5eswkhmpy.onion de donde descarga nuevos componentes, me conecto al servidor .onion, pero no usare Tor si no que lo haré directamente desde firefox para ver que nos dice y al tratar de conectarme me envía la siguiente información:



Con lo cual podemos ver que pide un login y password, ok hasta ahí todo bien, el siguiente paso es analizar el ransomware por el método de debugeo y tratar de encontrar los string references para ver que nos dicen.


ANALIZANDO LOS STRING REFERENCES DEL RANSOMWARE


Aquí lo importante es tratar de conseguir todos los string references y también los folder y archivos que contiene el virus con los cuales ataca la computadora, para eso voy a usar la técnica de debugeo por medio del OLLYDBG, pero recuerden NO VOY A EJECUTAR EL VIRUS OK.   SOLO LO CARGARÉ EN MEMORIA PARA EVITAR UNA INFECCIÓN.

 EMPEZEMOS HABER QUE ENCONTRAMOS:

1.- Primeramente abro el OLLYDBG en modo administrador y cargo a este bicho en el.



Como podemos ver el OLLYDBG NO LO CARGA, me imagino que tiene un tipo de protección antidebuggin, entonces voy a cargar unos plugins que me ayudaran a poder ver el código en el debugger y de repente vean lo que sale:


Listo, creo que no fueron tan inteligentes los creadores de este virus,  se ve que no saben proteger sus códigos maliciosos jejejejeje.

Pero quisiera comentarles que cuando logro abrir el código del virus en el debugger yeaaaaaa sucede lo mágico de esto, inmediatamente en mi computadora se crean 6 folders Y NADA DE INFECCIÓN en mi PC,  son los siguientes y que describiré ahora.




Si amigos como pueden ver ya obtuvimos todos los folder que contiene el EternalRocks.exe  OSEA EL VIRUS QUE SEGÚN ES UNO DE LOS MAS CABRONES EN EL MUNDO, PERO PARECE QUE LES FALTO SERLO MAS.

NOTA: QUE SE ME HACE QUE LES VOY A ENSEÑAR A LOS CREADORES DE ESE VIRUS A PROGERLO MEJOR.....   JAJAJAJAJJAJAJA   :P

Es mas al querer usar un examinador de IL aparece esto:


OSea podemos ver que no  baja de internet muchas cosas, mas bien ya las trae integradas.

ok continuemos con la descripción de cada folder:


FOLDER 1 (Bins)

Contiene 6o archivos que usa para su infección divididos por tipo de archivo:

  7 ejecutables
 7 archivos XML 



Como podemos ver estos son los exploits pero en formato xml, los cuales hablando un poco de XML son un subconjunto de SGML(Estándar Generalised Mark-up Language), simplificado y adaptado a Internet.

SGML (Estándar Generalised Mark-up Language)

    XML no es ,como su nombre puede sugerir, un lenguaje de marcado.
    XML es un meta-lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.

Que no es XML

  1.     No es una versión mejorada de HTML
  2.     HTML es una aplicación de SGML por lo tanto de XML
  3.     No es un lenguaje para hacer paginas WEB
  4.     Y sobre todo no es difícil

¿Por qué XML?

  1.     Es un estándar internacionalmente conocido
  2.     No pertenece a ninguna compañía
  3.     Permite una utilización efectiva en Internet para sus diferentes terminales.

Definición

    Especificación para diseñar lenguajes de marcado, que permite definir etiquetas personalizadas para descripción y organización de datos.

¿Para que sirve XML?

  1.     Representar información estructurada en la web (todos documentos), de modo que esta información pueda ser almacenada, transmitida, procesada, visualizada e impresa, por muy diversos tipos de aplicaciones y dispositivos.
Ventajas de XML
  1.     Fácilmente procesable
  2.     Separa radicalmente el contenido y el formato de presentación
  3.     Diseñado para cualquier lenguaje y alfabeto. (encoding) 

Osea amigos con esta definición podemos darnos cuenta que ejecutan los exploits por medio de los XMl.



                                     FOLDER 2  (ShadowBrokers)


En este archivo podremos encontrar comprimidos los exploits, los ejecutables en bins y los payloads de este virus.
                      

                    FOLDER NO. 3   Configs


Este archivo contiene todos los archivos de configuración de los exploits que se ejecutan





FOLDER NO. 4   PAYLOADS

En este folder se encuentran  dos librerías de la configuración del EternalRocks.exe virus, las cuales se usaran según el sistema operativo infectado, ya sea 64 bits o 32 bits.

Y para terminar la parte no 1 de este análisis técnico del virus EternalRocks tenemos el folder temps en el cual se usa para ir almacenando los datos que va usando para la infección.

Bueno  amigos ya con esto podemos darnos cuenta como funciona el 

Ransomware EternalRocks y cabe mencionar por último que se conecta a su servidor .onion y baja archivos para la infección también.


Nota en este análisis como podrán ver no use ningún SANDBOX  ya que los sandbox te dan todo peladito y en la boca, es mejor hacer todo de forma manual, reverseando el código se pueden hacer las cosas sin infectar tu maquina.

Si tiene dudas o sugerencias favor de hacérmelas saber.

Saludos y si necesitan cursos de  seguridad informática contactenme.

Li. Rodolfo h. Baz
www.ccat.edu.mx
www.rodolfohbaz.net











































6 comentarios:

Crowdstrike -> Solución de errores de actualización de CrowdStrike con BitLocker habilitado

En este pequeño articulo ver como componer el problema de CROWDSTRIKE cuando esta habilitado el BITLOCKER, cabe resaltar que puede ser una e...