miércoles, 22 de julio de 2015

Análisis del "Format A4.docm"

Se procede a investigar el siguiente archivo:

File Name: Format A4.docm
MD5 Hash Identifier: 5CEF683FEAD4CD7CD3DAC8EF8BB5D4F1




MD5 del archivo a investigar

Este archivo se ha recibido por correo electrónico, desde la dirección: gwenaelle.despres@vediscom.fr


Correo electrónico recibido

Se comprueba el tipo de archivo, determinando que nos encontramos ante un documento Microsoft Word.




Tipo de archivo

Se determina la existencia de macros dentro del documento


Macros detectadas dentro del documento investigado

Se investiga la macro A7, ya que dicha macro inicializará todo el código desarrollado en el documento investigado.

Se determina la existencia del procedimiento "KM_CheckForReady" que será llamado directamente al abrir el documento y que nos llevará al procedimiento "KM_KMotion_Lock"

Código inicial de las macros
El procedimiento "KM_KMotion_Lock" lo encontraremos en la macro A3

Procedimiento "KM_KMotion_Lock"


Se transforma las funciones "Chr()" en sus correspondientes códigos ASCII, para la variable "KhChnjwOhmoq8" que es la que sufre cambios mediante la función "Replace", y por lo tanto es la que se intenta ocultar de las posibles detecciones automáticas.


Contenido de la variable "KhChnjwOhmoq8"

NOTA: La ocultación de la URL emplea múltiples caracteres especiales. Pero la forma de eliminar esos caracteres especiales para poder lanzar la petición una vez que el documento se ejecuta demuestra una optimización de código.

El código ASCII para el valor 59 es: ";", para el valor 60 es: "<", y para el valor 61 es: "="

 Código que reemplaza los caracteres especiales

Se lanza la petición de descarga del ejecutable, pero se obtiene un "403" (Forbidden).

Respuesta obtenida al intentar establecer comunicación contra la URL detectada

Conclusiones

Los análisis realizados a documentos que contienen macros son la mayor parte de la veces iguales, lo único que varía son los métodos de ocultación.

El investigado en este documento implica el uso de algunos caracteres especiales más de lo que suele ser normal. De hecho, se nota que se ha procedido a la optimización en este sentido del código.

Añadir que, el documento descargado se almacena en la carpeta "TEMP" con el nombre: indigakm.exe, y que posteriormente será ejecutado


Archivo que se genera en la carpeta TEMP

jueves, 16 de julio de 2015

Funcionalidad + seguridad

La intención con respecto a este post no es más que recordar que debemos de empezar a trabajar teniendo el concepto de seguridad informática siempre presente, por lo que seré escueto.

Os pongo en antecedentes ... me encuentro realizando un curso on-line en la plataforma de una de tantas compañias de formación.

Primera cosa que me encuentro nada más entrar ...

Página de acceso al curso

NO veo la imagen del candado, lo que indica que mis comunicaciones NO van a ir por un canal cifrado, es decir, toda información enviada o recibida va a ir en texto claro.

Por lo que, no me voy por las ramas, vamos a ver si me paso todos los examenes que me depare el curso si haberme leído ni un solo tema.

Para lo cuál investigo la plataforma y empiezo a buscar en el primer tema el apartado de test/examen/prueba ...

Al encontrarlo, realizo el test:


Test encontrado

Selecciono el botón de continuar:
Botón continuar
               
Se muestra un mensaje con las respuestas acertadas y la solución a todas las preguntas.


Respuestas acertadas

Tras lo cuál y tras pulsar de nuevo el botón de continuar, se produce el envío de los resultados al servidor de la plataforma representado en la variable "Nota".

Envío de información a los servidores de la plataforma educativa

Como se puede percibir este valor podría ser cambiado "al vuelo" para poner cualquier otro valor.

Cambio de valor para colocar un 500

Conclusiones

Se puede modificar cualquier valor en las comunicaciones visualizadas, con los riesgos que ello implica.

Por lo que, por favor, la funcionalidad está bien pero lo funcionalidad + seguridad está mejor.

Notas adicionales.

Añadir que se ha contactado con la empresa responsable de la plataforma para comentarles el problema y sugerirles que instalen en el servidor un certificado que englobe a todo el sitio.



martes, 7 de julio de 2015

Análisis del "22051501.doc"

Se ha procedido a analizar el siguiente archivo.

Nombre: 22051501.doc
MD5: 00E3AF0258E50D0FF0BB0B83AEA4AA6C

Comprobamos que efectivamente nos encontramos ante un documento para Microsoft Word.








Lectura de las primeras posiciones del archivo, donde se define el tipo del mismo.

Se comprueba, en un entorno controlado, la existencia de macros (M) dentro del archivo.


Contenido del "índice" del archivo a estudio

Se procede a la búsqueda de URLs dentro de archivo a estudio mediante un plugin que busca patrones que pudieran coincidir con las típicas cadenas de las URL.


Detección del objeto XMLHTTP dentro del stream 8 del documento.

Se pasa a investigar más en profundidad el stream 8, mediante el análisis del código fuente del mismo


Parte del código fuente del stream 8

Del código obtenido, como se puede apreciar en la imagen anterior, vemos que el procedimiento “baV5XhIz81()” va a resultar de interés su análisis debido a que se utiliza en dicho código la función "Chr()" que permite utilizar el código ASCII para definir el carácter que queremos utilizar.



Procedimiento “baV5XhIz81()”

Se procede a su traducción para una compresión más profunda del funcionamiento.


Procedimiento “baV5XhIz81()” traducido

Se procede a analizar el funcionamiento de la función, concluyendo que lo que esta función realiza es: intenta descarga el archivo “632.exe” desde la URL “nextexpresscompany.com/253/632.exe”, salvando el contenido en la carpeta “TEMP” y dándole otro nombre “blogdynamoocom.exe”. Así mismo, tras la descarga se procederá a ejecutar el archivo.

NOTA: Lo novedoso para mí es la inclusión del carácter “<” dentro de la URL. ¿Otro grado más de camuflaje?

Por último se pasa a analizar el código contenido en el stream 9, para lo cual se visualiza el mismo.

Este stream lo único que contiene es la declaración de variables y la inicialización de las macros mediante el procedimiento “autoopen”, que se lanzará según se ejecute el documento analizado.
















Código incluido en la macro, que muestra las variables declaradas así como el procedimiento de inicio de la macro










Análisis del "632.exe"

Se procede a investigar el archivo con :

Nombre: 632.exe
MD5: CB099EC04BFE4E693F23D84D8F12B66E

Se ha procedido a descarga 4 muestras con distintos navegadores para poder determinar la cantidad de muestras que se despliegan desde la URL: NEXTEXPRESSCOMPANY.COM/253/632.EXE

Sólo se ha encontrado una muestra, que es el hash MD5 referenciado al principio.


Hashes MD5 de las muestras descargadas

Se realiza un análisis estático de una de las muestras, obteniendo datos tan interesantes como que el nombre oficial del archivo es: Rope.exe, que internamente el fichero contiene a su vez otro archivo como MD5: D40DBD523A7518315888457D013D0C3, así como algunos datos más.



















Archivo examinado con “pestudio”

También cabe destacar a en la fecha en la que se escribe este documento, que los motores de la sandbox de VirusTotal que detecta dicho ejecutable como malicioso son 4 de 55, tal y como se puede apreciar en la imagen anterior.

Más información:

https://www.virustotal.com/en/file/666c728d093b39e796508d652a90fe75c9e636d307ab23ed921f542d1a4a983a/analysis/

El archivo que contiene el fichero a examen se encuentra ubicado en la posición: 0x00020000, y ocupa 62535 bytes






















Datos sobre el archivo incluido en el fichero a examen.

Las librerías incluidas en el fichero son descritas en la siguiente imagen:


DLLs incluidas en el fichero a estudio

Se procede a ejecutar una de las muestras en un equipo controlado.

1.- DDL llamadas en ejecución

           DLLs que llama en tiempo de ejecución
               
2.- Operaciones del proceso

En el entorno donde se ha lanzado la ejecución, NO se ha detectado crea ningún proceso hijo.

La no ejecución pudiera ser provocada por la posible detección por parte del fichero a examen de su ejecución en un entorno virtualizado.

3.- Operaciones en el registro de Windows


Información leída del registro

4.- Operaciones de red

Se detectan varias comunicaciones salientes hacía varias direcciones distintas de Internet. Estás conexiones no utilizan protocolo HTTP/HTTPS, sino que se fundamentan exclusivamente en conexiones TCP mediante sockets creados directamente por el fichero a estudio.












Ninguna petición HTTP detectada


Conexiones NO TCP detectadas -1


Conexiones NO TCP detectadas -2

Se detecta también que si una conexión no responde o responde de manera inadecuada, se solicita un intento de conexión hacía otra IP almacena en el propio fichero a examen.

Intentos de conexión detectados

En estas comunicaciones TCP, que se producen hacía el puerto 448/TCP, se intercambia información.



Flujo TCP establecido con la dirección IP: 62.210.214.106

Se prueba a conectar con el servidor ubicado en la IP: 62.210.214.106, a través del puerto 448, obteniéndose como respuesta código html.

Conexión con el servidor 62.210.214.106 por el puerto 448


Si utilizamos un navegador para realizar tal petición obtenemos la siguiente respuesta.

Conexión con el servidor 62.210.214.106 por el puerto 448 mediante un navegador estándar.

Si realizamos la misma operación pero utilizando el protocolo HTTPS, obtenemos la siguiente respuesta.


Conexión con el servidor 62.210.214.106 por el puerto 448 mediante un navegador estándar y utilizando el protocolo HTTPS.

Si intentamos conectarnos con las otras dos IPs de la misma manera que acabamos de hacer nos encontramos que dichas IPs no responden a nuestra petición.


Conexiones Telnet contra la otras IPs detectadas

Solicitamos información sobre el propietario de la IP: 62.210.214.106, obteniendo como resultado el nombre de una empresa de hosting francesa.


Información sobre la IP 62.210.214.106




viernes, 3 de julio de 2015

Análisis del "FG08OEE.doc"

Se ha procedido a analizar el siguiente archivo.

Nombre: FG08OEE.doc
MD5: 2D5295C9B470591379A0E6782F389576

Comprobamos que efectivamente nos encontramos ante un documento para Microsoft Word.








Lectura de las primeras posiciones del archivo, donde se define el tipo del mismo.

Sin realizar nada más pasamos a comprobar, gracias a Internet, la información existente sobre el MD5 anterior.

Se obtienen 31 entradas en el buscador "google", todas ellas de sandbox online. Nos quedaremos con las referencias de la sandbox "VirusTotal":


En ésta sandbox, hace una semana sólo había 4 motores que detectarán el documento como malicioso, a día de hoy lo detectan 33 motores.

Revisando el informe del mismo, lo primero que me llama la atención es la cantidad de alias del archivo.

Alias del archivo analizado


Así como las fechas relacionadas con el primer envío del archivo.

Fechas manejadas por VirusTotal

Con esta información, se procede a analizar el archivo en nuestro entorno controlado.

Se comprueba la existencia de macros (M) dentro del archivo.

Contenido del "indice" del archivo a estudio

Se procede a búsqueda de URLs dentro de archivo a estudio mediante un plugin que busca patrones que pudieran coincidir con las típicas cadenas de las URL.































URLs encontradas dentro del archivo a estudio - 1


URLs encontradas dentro del archivo a estudio - 2


URLs encontradas dentro del archivo a estudio - 3

Se encuentra información bastante interesante, sobre todo en el stream 8, pero antes de pasar a este stream, veremos el stream 7.

De las URLs mostradas nos interesa la primera: www.mcp.com/sams

Cuando la monitorizamos nos encontramos con la siguiente respuesta: 404


Respuesta del servidor a nuestra petición

Llama la atención el campo "X-Pingback", que se pasa a comprobar:

Llamada a la URL del campo "X-Pingback"

Se procede a modificar el método de la petición para ver la respuesta del mismo.

Llamada a la URL del campo "X-Pingback", modificado el metodo de llamada

En la sandbox "VirusTotal" se puede obtener más información:

Se pasa a investigar más en profundidad el stream 8, mediante el análisis del código fuente del mismo


























Código fuente del stream 8

Del código obtenido, resulta de interés el siguiente código.


Procedimiento TOT9Qr3J8P

Se ve la utilización de la función "Chr()" que permite utilizar el código ASCII para definir el carácter que queremos utilizar. Podríamos estar ante un intento de camuflaje.

Se procede a su traducción para una compresión más profunda del funcionamiento.

Procedimiento TOT9Qr3J8P traducido

Se procede a analizar el funcionamiento de la función, concluyendo que lo que esta función realiza es: intenta descarga el archivo “346.exe” desde la URL “vidimsoft.com/708/346.exe”, salvando el contenido en la carpeta “TEMP” y dándole otro nombre “biksenpd.exe”. Así mismo, tras la descarga se procederá a ejecutar el archivo.

Por último se pasa a analizar el código contenido en el stream 9, para lo cual se visualiza el mismo.

Este stream lo único que contiene es la declaración de variables y la inicialización de las macros mediante el procedimiento “autoopen”, que se lanzará según se ejecute el documento analizado.
















Código incluido en la macro, que muestra las variables declaradas así como el procedimiento de inicio de la macro

Conclusiones

Estamos ante un documento de Word que guarda macros con cierto código camuflado, que nos pone en alerta.

Aun así, no sé puede decir que por sí mismo sea malicioso. Habría que analizar el archivo que se intenta descarga para determinar si dicho archivo solicita la descarga de un archivo malicioso. De todas maneras, las referencias encontradas en Internet apuntan a que este archivo es un lanzador de código malicioso.