Tag Archive Ingenieria Reversa

BySin Rostro

Reversing en Malware 3 – Análisis estático

Bueno, bueno, ya por fin comenzaremos con la practica, no es que no quiera pasar de lleno a ella, si no que quiero que queden claros algunos recursos que usaremos. Además podemos aprender más cosas así 🤓.

Sin han llegado hasta aquí sin haber leído mis 2 anteriores post les recomiendo ir rápidamente allá y leerlas porque están geniales aquí tienes el Primer Post y acá tienes el Segundo Post.

Análisis Estático

Ok, lo primero que haré será dejar una serie de cosas que debemos (aunque sea una hipótesis) obtener con este análisis. Están en el orden en que yo las haría. Así que si encuentras la ultima o la 3ra no importa pero si deberíamos tener la mayoría si no es que todas 😉.

1.- Información del archivo (tipo de archivo, cabeceras, tamaño, etc)
2.- Hashing y análisis con VirusTotal
3.- PE Información (DLLs, Librerías, etc)
4.- Recolección de Strings
5.- Ejecución del archivo
6.- Captura Trafico de Red
7.- ¿¿Como ha llegado ahí??

Ya había pasado el link del primer archivo con el que trabajaremos pero por si acaso no lo has descargado aquí esta de nuevo recuerden que la contraseña es “hpsi”.

1.- Información del archivo

Ya lo he descargado y comenzare abriendo el archivo desconocido (aún) con un editor hexadecimal estoy usando HxD – Hexeditor. Y esto es lo que veo cuando le cargo el archivo desconocido.

Como se pueden dar cuenta la cabecera del archivo me dice MZ, si eres de los que alguna vez a realizado wargames de esteganografía sabrán casi inmediatamente de que tipo de archivo se trata si no, les dejo una lista del inicio las cabeceras de algunos archivos.

.PNG                     PNG   |END
.GIF                       GIF   |END
.JPG/JPEG         ÿØÿà   ÿÙ
.BMP                    BM
.EXE                     Mz
.MP3                    ID3
.RAR                    Rar
.ZIP                      Pk
.PDF                    %PDF

Bueno con esto podemos decir que el tipo de archivo es un .EXE, un ejecutable del OS win2, así que podemos agregarle la extensión a ese archivo el cual se vera así.

2.- Hashing y análisis en VT

Bien ahora quisiera pasarlo al script de python que creamos en el post anterior y ver que resultados nos arroja.

Baya si que es un chico peligroso, como pueden ver de los 63 tests, 59 fueron True osea que fue amenaza positiva y la mayoría me dice que es un troyano/backdoor así que ya podemos ir imaginando que es lo que este chico hace.

3.- PE información

Ok, veamos que nos devuelve la información del PE en este caso usare dos herramientas para que vean que esta cosa del análisis es muy versátil 😂😂.

La primera es PEview veamos que es lo que esta importando.

Ok en este programa esta haciendo 5 importaciones veamos en el segundo que nos devuelve.

EL programa se llama CFF explorer.

Bueno al parecer no hay problema en eso ya que nos devuelve los mismos resultados ustedes eligen 😁😁

Ok, Ok, ¿¿Bueno pero para que me sirve saber esto de las importaciones?? se estarán preguntando. La respuesta es sencilla, para saber que es lo que planea hacer el archivo.exe.

Por ejemplo la DLL 5 osea la WS2_32.dll le permite al .exe configurar conexiones de red ya que esta DLL configura sockets como lo podemos leer aquí.

4.- Strings

Muy bien hagamos una recopilación de información que tenemos hasta ahora:

El archivo desconocido ya no lo es más, ya que identificamos que era un .EXE,

sabemos que la mayoría de los antivirus lo reconocen como troyano/backdoor,

que importa 5 DLLs y que una de ellas es usada para crear o configurar conexiones de red,

vaya, si que parece un troyano 😈😈.

Ahora deberíamos tratar de averiguar a donde es que hace esa conexión, si es que la hace.

Con la obtención de strings podríamos averiguar eso y otras cosas más.

Un ejemplo, si el archivo manda un mensaje al ser ejecutado…, podríamos saber que es lo que este dice o si crea una carpeta o ingresa a una ruta cual es el nombre de estas, etc, etc. El problema aquí como en cualquier caso de Ingeniería Reversa claro, será la cantidad de strings que se puedan obtener ya que esta puede ser extremadamente grande y en ocasiones nos puede confundir en lugar de ayudarnos.

Vamos pues a ello, utilizare esta vez la herramienta llamada Bin Text pero de nuevo ustedes pueden usar la que crean conveniente. Esto es lo que me arroja.

Esas 4 llaman mi atención (Bueno hay mas pero por ahora no lo mencionare 😉).

  1. http://www.ueopen.com/test.html
  2. cmd.exe
  3. /c del
  4. 60.248.52.95:443

Algunas de las otras me dan una idea de como es que trabaja pero estas 4 son muy llamativas al ojo, ¿No creen?

Bueno ya con estas cadenas de texto podríamos suponer que hace 2 conexiones una a la URL y otra a la dirección IP y que probablemente borre nuestro disco duro 😱😱😱😱 jajaja no, no, bromeo cmd /c indica un comando en este caso del., el cual sí quiere decir borrar (delete) pero aun no se que exactamente, ¿¿tal vez la siguiente linea que esta abajo de ese string??

Bueno mientras son peras o son manzanas pasemos al siguiente punto.

5.- Ejecución del archivo

Nota importante:.

Estoy trabajando en Virtual Environment (Entorno virtual) osea que si se me jode el sistema, tengo la posibilidad de recuperarlo, siempre y cuando tenga configurado un snapshot.

Espero no me juzguen por mi paradoja de lo virtual que intento explicar con la imagen 😅😂😥.

Bien explicando un poco mejor, estoy virtualizando un sistema Win2, dentro de ese sistema operativo win2 he creado un punto en donde he preservado el estado actual de la máquina, sus dispositivos, documentos, configuraciones, etc. Por supuesto, puedes crear snapshots dentro de los snapshots, por eso decía eso de las paradojas, por que es como si crearas 2 o 3 o mas realidades que afectan a ese sistema operativo win2. Una imagen vale más que 1000 palabras.

Puedes regresar a cualquier estado al cual le tengas hecho un snapshot, claro siempre y cuando no esté dañado 😂.

Bueno continuando con lo que nos interesa es momento de correr nuestro debian 64 bits y corroborar que existe conexión entre las dos máquinas.

Muy bien tengo conexión de win2 a Debian, ahora haré un snapshot de este punto antes de ejecutar el archivo.

Mientras tanto en Debian tengo corriendo wireshark y veo que a capturado el ping que he realizado, confirmándome que efectivamente hay conexión entre las máquinas.

Muy bien corro el archivo y esto es lo que sucede.

Obtenemos las capturas de estos paquetes, he señalado 3 cosas., de izquierda a derecha,

tenemos la dirección IP del Win2,

la dirección IP a la que el malware intenta hacer la conexión,

el Puerto Local que ha usado el malware en Win2

y por ultimo el puerto Remoto de la dirección IP posible del C&C.

He realizado la misma captura pero desde el mismo Win2 y obviamente son los mismo resultados.

Noten que el archivo mientras era ejecutado y hacia las debidas conexiones sigue estando en el escritorio pero una vez terminada esas tareas ha desaparecido, bueno en realidad ha sido eliminado por el mismo.

Resumiendo,

podemos decir que con la ayuda PEview obtuvimos la muy posible fecha de compilación del archivo, no podemos afirmar con toda certeza pero al menos tenemos una fecha estimada.

Ok veamos.

- fecha: 2009/05/14
- Lenguaje: Microsoft Visual C++ 6.0
- Strings encontradas(Ahora si añadiré una más):
   - 60.248.52.95:443 # Host y puerto al que conecta
   - http://www.ueopen.com/test.html # ?? Probablemente url de test para conexion ???
   - cmd.exe # Referencia hacia la consola de windows 
   - /c del  # Comando para su auto-eliminación (delete itself  "cmd.exe /c $PATH > null")
   - *(SY)#  # Usado posiblemente para generar una Shell remota
- Despues de correr el archivo:
   - conecta a 60.248.52.95
   - genera una Shell inversa
   - y se auto elimina
- Con la información que hemos recolectado no podríamos decir como ha llegado
  ese archivo a la computadora, quiero decir, si ha sido enviado por medio 
  de phishing, un downloader lo a descargado, venia empaquetado con otra app,
  o de plano nos lo hemos bajado nosotros tratando de encontrar el crack para
  plant Vs zombies o alguna otra herramienta de softonic... 
  

Y podemos decir que nuestras hipótesis acerca de lo que este archivo realizaba estaban bien fundadas, bueno eso y además que el análisis con virustotal también nos dijo eso 😂😂😂.

Bueno hasta aquí creo que es un buen inicio en análisis estático hay muchas cosas mas que afrontar en este tipo de análisis pero como dije es una introducción ya iremos adentrando más en ello.

Saludos Hackers y hasta la próxima.