viernes, 30 de octubre de 2015

IOC: Mutex

Los códigos maliciosos realizan modificaciones en los sistemas para acceder a espacios del mismo de manera no autorizada, con múltiples intenciones más o menos invasivas.

Es en ese momento cuando se pueden interpretar esas modificaciones que se realizan en el sistema como indicadores de que el sistema ha sido comprometido.

Esto se conoce como Indicador de Compromiso (Indicator of Compromise - IOC)

Actualmente existen diversas iniciativas para definir cómo se deben documentar los indicadores de compromiso:

1.- Incident Object Description and Exchange Format (IODEF)*, creado por miembros del IETF Extended Incident Handling (INCH) Working Group, que forman parte del IETF Security Area.

2.- Open Indicators of Compromise (OpenIOC)**, creado por la empresa de seguridad MANDIANT.

3.- Cyber Observable eXpression (CybOX)***, creado por los miembros de MITRE ****

* http://www.ietf.org/rfc/rfc5070.txt
** http://www.openioc.org
*** http://cybox.mitre.org
**** http://www.mitre.org


Mediante estos IOCs, es posible definir todos los elementos que compondrían un compromiso, como pueden ser rutas directorios, nombres de ficheros, firmas MD5, claves del registro de Windows, nombres de dominio, direcciones IP, etc.

Entre estos IOCs están los MUTEX

Un MUTEX (mutual exclusión) es un objeto que permite bloquear un recurso del sistema con la intención de controlar el uso del mismo por parte de los distintos procesos lanzados por el sistema, es decir, viene a ser un testigo.

Quién posea ese testigo podrá hacer uso del recurso controla por el mismo.

Para nuestro objetivo, estos MUTEX pueden ayudar a descubrir la presencia de un programa malicioso dentro de un sistema, ya que algunos programas maliciosos usan estos objetos con el mismo propósito que un programa legítimo. Es decir, un programa malicioso podría usar un MUTEX para indicar la infección de un sistema, por lo que, si algún otra programa malicioso chequea el sistema en busca de un MUTEX con un nombre específico y lo encuentra, sabrá que el sistema ya se encuentra infectado.

NOTA: El identificador único de un MUTEX es el nombre.

Existen varias herramientas que nos permiten conocer los mutex que gestiona nuestro sistema, repasemos:

1.- CheckMutex – Es una herramienta de línea de comandos, desarrollada por Jaime Blasco, que pregunta a nuestro sistema por la presencia de mutex en concreto (nombre).

Sólo se encuentra disponible el código fuente

2.- EnumerateMutex – Es una herramienta de línea de comandos, desarrollada por Jaime Blasco, que genera una lista con todos los MUTEX activos en nuestro sistema

Sólo se encuentra disponible el código fuente

3.- Handle – Herramienta de línea de comandos, ésta vez proporcionada por Microsoft, que enumera la lista de MUTEX activos en nuestro sistema

NOTA: Esta herramienta no sólo saca la lista de MUTEX, por lo que para obtener la información que nos interesa tenemos que escribir:

Handle –a | findstr Mutant

Utilizando la herramienta “Handle” para encontrar los objetos Mutex

4.- Process Explorer – Es un herramienta gráfica.

Se obtiene mediante la opción “Find>Find Handle or DLL …”, en la pantalla emergente solicitar el tipo “Mutant” que se corresponde con los objetos MUTEX.

Utilizando “Process Explorer” para buscar los objetos Mutex

5.- Monitor de recursos – Herramienta gráfica incluida en los sistemas Windows.

Monitor de recursos de un sistema Windows 7

6.- Volability, mediante el uso del comando: mutantscan


Referencias:

1.- Guia STIC 423 de Octubre de 2015 (Indicadores de compromiso -IOC)
2.- https://digital-forensics.sans.org/blog/2012/07/24/mutex-for-malware-discovery-and-iocs
3.- https://www.alienvault.com/open-threat-exchange/blog/malware-exploring-mutex-objects
4.- https://threat.com/new-technique-complicates-mutex-malware-analysis/111517

PD: ¡¡¡¡Muchísimas gracias Josechu!!!!

miércoles, 28 de octubre de 2015

Análisis del "dlbgbcafqkruwhxbe.exe"

Siguiendo con el análisis posteado con anterioridad, pasamos a analizar:

Con Nombre:        dlbgbcafqkruwhxbe.exe.
Con MD5:            6BDFEC74D0B55A1861767381EEC38320
VT:                       3/56

Al realizar un análisis estático lo que más llama la atención son la cantidad de nombres de ejecutables.


Indicadores del análisis estático


Nombres de ejecutables entre las cadenas de texto encontradas en el ejecutable.

Al final, después de realizar el análisis dinámico, el único ejecutable que se encontrado es de nombre: GHAPE.exe. Es decir, nuestra muestra extrae dicho ejecutable y lo lanza.

Este archivo donde se almacena este ejecutable es: la carpeta “Temp” del usuario que lanza el ejecutable.

Información aportada por el análisis dinámico

Ubicación


El ejecutable que es lanzado y que tiene como datos:

Nombre:                GHAPE.exe
MD5:                     9EF74005E31BC004AA1D453C319281CF
VT:                         20/55
Y a día de hoy es bastante conocido (Google)

Conclusión

A las conclusiones de la anterior entrada, hay que añadir:

MD5:                                    9EF74005E31BC004AA1D453C319281CF
Ubicación en disco:              *\temp\ghape.exe.


Más los datos que podáis sacar de los distintos análisis dinámicos expuesto en Internet.

Análisis del "Payment_Info.xls"

Se ha detectado el siguiente documento ofimático:

Nombre:                 Payment_Info.xls
MD5:                     0C14A99C9C969A98FF52BEC57094B152
VT:                         6/55

Que contiene 4 macros, de las cuales la de interés es la siguiente:


Macros contenidas en el documento

Contenido de la macro

Como se puede observar nos encontramos frente a un código que utiliza ciertas técnicas de ofuscación como puedan ser la utilización de la función: Chr(), la utilización de la función: Asc(), o incluso la utilización de XOR.

Muestra de la utilización de ciertas técnicas de ofuscación

En cualquier caso, este documento lanza una petición hacía Internet, más concretamente solicita la siguiente URL:

www.canload.xyz/coco/GoodghsrtahragrdwRRgr.exe

NOTA: Actualmente el recurso se encuentra activo, pero para poder acceder a él, no vale con realizar una petición si más.

Petición realizada directamente sin ejecutar el lanzador.

Petición realizada por el lanzador

El archivo descargado se almacena en:

c:\docume~1\admini~1\locals~1\temp\

Con Nombre:          dlbgbcafqkruwhxbe.exe.
Con MD5:              6BDFEC74D0B55A1861767381EEC38320
VT:                         3/56

Conclusiones
A falta de analizar el último fichero detectado, os recomiendo bloquear en vuestros sistemas de seguridad:

MD5:                                   0C14A99C9C969A98FF52BEC57094B152
MD5:                                   6BDFEC74D0B55A1861767381EEC38320
URL:                                    www.canload.xyz/coco/GoodghsrtahragrdwRRgr.exe
Ubicación en disco:             *\temp\dlbgbcafqkruwhxbe.exe.
Mutex:                                local\mutex_msosharedmem


En cuanto al código de macro que se puede comentar…

sábado, 24 de octubre de 2015

Variante/revisión/evolución

En la anterior entrada, elaboré una macro para obtener la URL de un código publicado en pastebin por parte de un blog que sigo habitualmente.

Ahora, este mismo blog ofrece otra entrada y otro código publicado en pastebin , que supone una variante/revisión/evolución del anterior.

Concretamente el nuevo código es:


Función con la nueva ecuación

La modificación en nuestra macro personalizada es fácil.

Macro adaptada a la nueva ecuación

Es igual de fácil cambiar la macro para buscar alguna otra URL dentro de la misma información, aunque hay que tener en cuenta los valores que provocan error en la ecuación

Conclusiones

Este código es muy fácil variarlo para convertirlo en algo "nuevo", pero realmente el mínimo común múltiplo de estos dos códigos, al igual que el de muchos lanzadores vistos en documentos ofimáticos, es el uso de la función "Chr()". Por lo que si un documento ofimático tiene macros, y estas utilizan la función "Chr()", ...







jueves, 15 de octubre de 2015

Macro para la obtención de una URL

Revisando la entrada de uno de los blog que suelo leer (URL blog) en la que se informa sobre un lanzador en formato Word, he podido analizar la macro que contenía el documento word del cual se habla y que se encuentra en pastebin.  (URL macro en pastebin)

Lo primero que he querido saber, ha sido la forma en que el programador ha ofuscado la URL desde donde se descarga el verdadero malware.

Para ello, he estado leyendo el código hasta que he encontrado las siguientes funciones:

Petición GET

Función que devuelve la URL

En este punto, se me ha ocurrido escribir una macro para generar la URL que se nos comenta en el blog, si necesidad de ejecutar el documento en ninguna sandbox.

El código es el siguiente:

Función para obtener la URL

Pero me ha surgido la siguiente pregunta.
 ¿Y si existe algún otra URL escondida en el código y sólo depende del valor que se tenga en la variable “LenLen”?.

Para ello se ha desarrollado el siguiente código, pero teniendo en cuenta lo siguiente:

La variable “LenLen” sólo puede ir hasta el valor más bajo que se encuentre en el array, en nuestro caso: 49, ya que si no obtendríamos un error en tiempo de ejecución por intentar resolver: Chr(-1), u otro valor negativo.

Función que da todas las posibles URLs

Conclusiones

Para desgracia de mi “paranoia”, no existe ninguna combinación que nos de otra URL a la ya aportada.

Y para más INRI, el recurso ya no se encuentra disponible para su descarga.


viernes, 9 de octubre de 2015

Actualiza tus sistemas de seguridad - urgente

A través de un correo electrónico con las siguientes cabeceras del origen:

Received: from 231-111-231-201.fibertel.com.ar (201.231.111.231) by
 ex.mail.ovh.net (188.165.185.33) with Microsoft SMTP Server id 15.0.1130.7
 via Frontend Transport; Thu, 8 Oct 2015 16:53:33 +0200
From: RingCentral <fax@ringcentral.com>
Content-Type: multipart/alternative;
        boundary="Apple-Mail=_690929EB-015E-2881-C1CE-5EB8DAA263CA"
Message-ID: <F036CEA3-C0C5-3C8B-CC2D-325D2B4AA756@rotaio.com>

Se recibe como adjunto el documento Word con datos:

Nombre: ringcetral_fax_(419) 643-1898.doc
MD5: 0CBB1491224A46425B7DE4DB488B1911
Ratio detección (VirusTotal): 22/56

Este archivo contiene a su vez un ejecutable, cuyos datos son:

Nombre: s11ce1.exe
MD5: AB853E8A74788E62522E45BD44D25763

Ratio detección (VirusTotal): No hay datos sobre dicho MD5

jueves, 8 de octubre de 2015

Un hermoso código


Analizando un documento Word me he encontrado con la siguiente macro.


Primera parte


Segunda parte y última.
Conclusiones

Es una hermosa Windows Shell implementada en la macro de un documento Word, ¿verdad?

lunes, 5 de octubre de 2015

Gracias a un blog de seguridad se revisa 4535.EXE

A raíz la información leída en el blog: blog.dynamoo.com/2015/10/malware-spam-your-invoices-incident.html.

Comentar tal y como marca la entrada, MD5 a bloquear:

87B01608B8170029816DF5EED11CD9C5
CE94C036DAC774B3CB8C7A07FF333C7F
29B56DDFAB41F92B0447783E1EF6CCD8 

URLs a bloquear:

agridiotiko.com/432/4535.exe
poncho-zwerfkatten.be/432/4535.exe

IPs:

84.246.226.211

Por mi parte añado.

Tras ejecutar el archivo 4535.exe, podemos ver que:

Las comuniciones tras comprobar que el servidor se encuentra a la escucha por el puerto 448, intenta establecer un túnel basado en GPRS. Más concretamente, se intenta utilizar el protocolo GTP, que es un grupo de protocolos  de comunicaciones basados en IP que se usan para portar el servicio GPRS dentro de las redes GSM y UMTS.

(Más información en Wikipedia)

Intentos de montar un túnel GTP

Si realizamos una petición mediante una comunicación telnet, podemos ver que las comunicaciones se establecen contra un servidor “nginx/1.0.15”.


Prueba de conexión

Se realiza una petición HTTP, pero avisa que nos estamos intentando conectar con un puerto configurado para escuchar protocolo HTTPS.


Petición HTTP

Si realizamos la petición mediante HTTPS, obtenemos:


Petición HTTPS


sábado, 3 de octubre de 2015

Análisis del "2015-AUGUS-INVOICE.doc" - parte 2

Tras descubrir la macro y la función que contenía el código camuflado, se procede a analizar el procedimiento: BadlooDcurl()


Ejecución paso a paso del procedimiento BadlooDcurl()

La variable: “IaInpkUCvOFAvgGcHPIp”, almacena el valor: ewqpkXiyzHDgLzMxtKsz.exe


Valor contenido en la variable “ IaInpkUCvOFAvgGcHPIp”

La variable: “XQBcNCnHTknMoayrNMJU”, almacena una ubicación, concretamente la carpeta “Temp” del usuario que ejecuta el documento.



Valor contenido en la variable “XQBcNCnHTknMoayrNMJU”


La variable: “XQBcNCnHTknMoayrNMJU”, almacena una URL: “firstrepubllic.com/bhost.exe”



Valor contenido en la variable “tgpTxuNFxowklLUCkvoj”


La función: “ApMLroswpTJxUSSfwxYW”, solicita la descarga del ejecutable ubicado en la web “firstrepublic” y lo almacena en la carpeta “Temp”, comentada anteriormente, con el nombre del ejecutable: “ewqpkXiyzHDgLzMxtKsz.exe”




Funcionalidad de la función “ApMLroswpTJxUSSfwxYW”

Y por último se procede a ejecutar el archivo descargado mediante la función: “KbtCMtGNZZwfklI




Funcionalidad de la función “KbtCMtGNZZwfklI”

Comentar que cuando se ha intentado descarga el archivo: “bhost.exe”, de la ubicación localizada nos hemos encontrado con que no se resuelve la petición DNS.


Petición DNS no resuelta

Aun así, hemos procedido a preguntar por la reputación de dicha URL, encontrándonos que 7 de 65 motores, consideran que dicha página es maliciosa (ver).

En dicha página también se puede observar el análisis realizado para el archivo descargado.

Conclusión

En vista de lo anterior, recomendamos bloquear las URLs:

firstrepubllic.com/bhost.exe

Así como los archivos con MD5:


229397852fa5a9a7b8a6927cb1e32b87 (Se corresponde con el MD5 del archivo bhost.exe)