Análisis de Malware (Static Analysis) [Parte 1]

13:50 0 Comments A+ a-


"Análisis Estático" ¿Qué quiere decir?

Se trata de obtener  información  de  archivos (Malware's), pero sin ejecutar el mismo. Esto implica que en el análisis estático se utilizará algunas aplicaciones que permitan analizar el código del programa con el fin de obtener(el tipo de archivo, en que lenguaje y cuando se ha programado, librería que usa,..etc.).



Comencemos, hace poco me descarga un programa de un foro X: "TiGeR-Firewall-Setup.exe", me puse a revisar si no traía regalitos, así que para comenzar busque por la red,  si existe alguna web oficial o si es de algún autor que posteo en algún foro( esto puede significar mucho o nada al momento de analizar), encontré uno y me lo descargue, al observar los archivos, existía una diferencia de Tamaño en los archivos y al compararlos también la diferencia de Hash de los archivo.


    Archivo Sospechoso:
       
  • Nombre         =     TiGeR-Firewall-Setup.exe
  • Hash MD5    =     15903C8FAE011F2A7969525796F0E30A
  • Tamaño        =     2,89 MB

       
       
    Archivo Original:

  • Nombre         =     TiGeR-Firewall-Setup_o.exe
  • Hash MD5    =     E84762B1128B1E910E6D632FC88A732B
  • Tamaño        =     2,69 MB
           

HASH:Un hash es un valor de tamaño fijo obtenido como resultado de aplicar una función matemática (hash function) a un valor de entrada, obteniendo en teoría un resultado único para ese valor. De tal modo que si H(x) = H(y) entonces x=y.
"extraída de elixicorp".
Siguiendo con esto, ahora utilizaremos la siguiente herramienta:

"RDG Pack Detector" ¿Qué es?. Es un detector de packers,Cryptors,Compiladores, Packers Scrambler,Joiners,Installers.

Esto para ver en que lenguaje se hizo, también se puede observar la diferencia que hay entre los archivos.
 


 De aqui extraemos lo siguiente: Visual .Net, Múltiples protecciones, UPX, antidebuggers,...y ademas el archivo contiene un archivo adjunto, ahora extraeremos el archivo adjunto, para ello utilizaremos esta misma herramienta...



Cargamos el archivo extraído a  RDG Pack detector. y vemos lo siguiente:


 como podemos ver se ve otro archivo adjunto, podemos seguir extrayendo, hasta llegar con el programa original ya que según lo que se ve esta bindeado, pero a partir de este momento utilizaremos otra aplicación.
 "de4dot32" (de4dot es un Deobfuscator/ de código abierto escrito en C#  para .NET Reverse Engineering.)
 Vamos usarla, para que se vea claro, ya que si lo cargamos directamente en .Net Reflector o CodeReflector, al inter usarla usar, será ilegible gran parte del código y no sacaremos nada.




miramos otra vez desde RDG Pack Detector:


Nos muestra: Confuser 1.9...Ahora utilizaremos una herramienta más:
"ConfuserStringDecryptor1.0".



Ahora lo cargamos desde ".Net_CodeReflect"( .NETCodeReflect permite des compilar cualquiera. NET para C #, VB.NET o MSIL ), después de mirar casi todo,  encontramos algo interesante:


Encontramos lo siguiente:


  • "java.exe"
  • "TEMP"
  • "d2be3e6d11846430c067fc874a79f583"
  • "evilevil.no-ip.org"
  • "1177"
  • "True"


Y a partir de aquí se puede sacar  conclusiones.

Crear un archivo "java.exe" en el directorio Temporal ("TEMP") y conecta  a la direccion "evilevil.no-ip.org" a través del puerto "1177"
y que ademas tiene 2 opciones marcadas como "True" que supongo que debe ser: 1.-auto inicio + 2.-Protección BSOD, Generalmente  el puerto y el lenguaje(.NET) que viene aquí hace suponer que se trata de: "nJRAT"

Jaja o simplemente  eso(de: java.exe,temp,evilevil.no-ip.org)son solo textos incrustados en la aplicación.. para eso

Autor: Fudmario