Análisis de malware sirio

Ayer estuve varias horas recolectando samples para hacer mi primera entrada en el blog sobre el análisis de malware pero sólo vi keyloggers y servidores de DarkComet cifrados con crypters en .NET, así que buscando en google encontré esta página y aunque el último sample es de 2014 me pareció curiosa.

El primer análisis es del primer sample de la web (a8ef5ccebd2e3babdd243a2861673c26). Quiero aclarar que no soy un experto en análisis así que mis procedimientos quizá no sean los más correctos.

a8ef5ccebd2e3babdd243a2861673c26

Un primer vistazo rápido con CFF Explorer nos muestra que es un ejecutable .NET así que veremos si se puede decompilar. Para ello usaré ILSpy ya que es el que mejor me ha funcionado en la máquina virtual. Al decompilar el ejecutable y abrimos cualquier clase vemos que parece ser que está ofuscado. FIG1

Suerte que tenemos de4dot. Normalmente uso un par de veces de4dot por el ejecutable por si las moscas y en este caso parece ser que acerté. FIG2

En una de las clases vemos una variable bastante larga cifrada con Base64, seguramente un ejecutable, pero me entra la curiosidad que empiece por <COMPRESSED> y acabe en </COMPRESSED> así que hay que buscar en el resto de clases alguna referencia a una función de compresión. FIG3

Encuentro a la primera la clase encargada de la compresión al ver que hay una llamada ClsCompressedString (¿seré un genio?) y una rápida búsqueda en Google me lleva a esta página donde seguramente el súper hacker habrá sacado el código. Creo un nuevo proyecto en VB.NET y uso la clase para descomprimir y descifrar la string usando la misma función que usa el crypter en una de sus clases. El archivo cifrado se puede descifrar con la clase clsCompressedString comentada antes, luego convirtiendo el resultado (string hexadecimal) a una array de bytes y por último descomprimiendo con GZip. El resultado es (otro) ejecutable .NET, el cual, al decompilarlo (con dnSpy) parece ser un servidor de NjRAT 0.6.4 que conecta al DNS aliahmahhmod.zapto.org, offline en el momento de escribir el post.

7263e1d84b350c1465bb4c4c77b1bcec

CFF Explorer nos revela que es un ejecutable .NET (qué sorpresa) así que lo pasamos por de4dot, que indicará que no está ofuscado (unknown ofuscator) por eso lo decompilaré directamente. En ILSpy vemos sólo hay dos clases pero buscando en una de ellas (frmMain) vemos que en el método frmMain_Load (que se ejecutará al abrirse el formulario) hay un código para guardar un archivo en AppData con nombre ‘sql’ (niños malos). FIG4

ILSpy no me deja guardar el recurso así que lo abrí desde dnSpy y así lo pude guardar. Al examinar el archivo con CFF Explorer me llevé una enorme sorpresa el ver que era… otro ejecutable .NET. Al decompilar dicho ejecutable veo que sólo tiene una clase llamada Downloader así que tendré que analizarlo durante horas para saber cual es su propósito. FIG5

Ambos archivos no están disponibles. Un punto para ellos.

28bf01f67db4a5e8e6174b066775eae0

Tercer round. CFF Explorer nos muestra que es, increíblemente, un ejecutable .NET. Ya sabéis la historia: de4dot, ILSpy/dnSpy, buscar, etc. Este ejecutable sólo tiene una clase llamada Windows que no es más que un formulario que droppea dos ejecutables desde recursos llamados server.exe (muy original…) y psiphon3.exe.

El ejecutable psiphon3 me pareció bastante “profesional” así que lo busqué en Google y encontré esta información en la misma página oficial:

What is Psiphon 3?

Psiphon 3 is a circumvention tool from Psiphon Inc. that utilizes VPN, SSH and HTTP Proxy technology to provide you with uncensored access to Internet content. Your Psiphon 3 client will automatically learn about new access points to maximize your chances of bypassing censorship.

Psiphon 3 is designed to provide you with open access to online content. Psiphon does not increase your online privacy, and should not be considered or used as an online security tool.

Así que supongo que será una herramienta auxiliar para el otro ejecutable (server.exe) que analizaré ahora.

Este ejecutable (.NET como no) está ofuscado con Crypto Ofuscator. Una vez decompilado… sigue estando ofuscado. de4dot no puede limpiar el ejecutable así que al mirar el código fuente no entiendo nada de nada. Tendré que tirar de análisis dinámico. Para ello usaré TcpView y Sandboxie.

Sandboxie nos revela que el ejecutable se autocopia en AppData con el nombre Explorer.exe y en la carpeta de Autoinicio con nombre chrome.exe. TcpView nos muestra que intenta conectarse a 31.9.48.141:1960.

Conclusión

Durante estos pequeños análisis he sacado tres conclusiones:

  • Los sirios aman .NET.
  • Los sirios realmente aman .NET.
  • Sus técnicas son bastante simples. Se sirven de crypters .NET para RATs públicos (NjRAT).

Si tienes alguna duda, comentario o sugerencia, notifícanos a través de indeseables.git@gmail.com y si te ha gustado la entrada puedes compartirla!.


Autor: Blau

Web: http://indeseables.github.io

Git: Github
Linkedin: Linkedin
Clave pública (PGP): NOP
Comentarios Disqus