lunes, 21 de diciembre de 2015

Analizando el archivo: "435323.jpg"

Me debía esta entrada desde hace mucho tiempo.

En un blog sobre malware aparecen dos peticiones realizadas por un lanzador basado en un archivo Excel.

rmansys.ru/utils/inet_id_notify.php
s01.yapfiles.ru/files/1323961/435323.jpg


Siguiendo el primer enlace obtenemos:


Recurso no encontrado en la primera URL

Siguiendo el segundo enlace, obtenemos:

Recurso encontrado en la segunda URL

El recurso ésta vivo, pero no se puede descargar debido a que el navegador reinterpreta la extensión e intenta mostrar el contenido.

Por este motivo se utiliza la herramienta “wget” para obtener el recurso .jpg.

Petición “wget” realizada para obtener el recurso .jpg.

Tras la descarga se comprueba el tipo de archivo (magic number) mediante la visualización de los primeros bytes

Revisión del contenido inicial del archivo.

Nos encontramos ante un archivo PE para sistemas Windows.

Se procede a comprobar si dicho archivo es detectado por AVs, para ello se utiliza la web de VirusTotal.

AVs que detectan el archivo según VirusTotal.

La muestra encontrada es bastante conocida.

Se pasa a analizar el contenido de las distintas secciones del archivo PE, centrándose principalmente en la sección “rsrc”.

Comprobación del tamaño de la sección “.rsrc” del archivo PE.

La sección “.rsrc” de un fichero PE es habitualmente utilizada para embeber archivos que nada tienen que ver con el propio programa, y que a su vez, suelen ser ejecutables

En este caso la sección “.rsrc” ocupa: 2,29 MB ((2407424 (bytes) / 1024) /1024) de 2,34 MB, que es el tamaño total del archivo.

Se procede a comprobar de manera manual la existencia de más archivos ejecutables PE en esta sección. Para ello se utilizará como patrón la cadena: “MZ”, que se corresponde con el “magic number” de los ficheros PE.

Pero para buscar exclusivamente en la sección en la que nos estamos centrando, se debe comprobar  la dirección de inicio y fin de la sección.


En nuestro caso, la sección va desde la dirección: F0000, hasta la dirección: 25B000


Patrón de búsqueda encontrado en la sección “.rsrc”

Se encuentran gran cantidad de coincidencias del patrón de búsqueda como se muestra en la imagen anterior.

Pero quizás lo que más llama la atención es la información que rodea al patrón de búsqueda, ya que parece que nos encontramos con información cifrada o empaquetada.

NOTA: Podríamos estar ante un archivo embebido empaquetado o cifrado, para obstaculizar análisis, que fuera desempaquetado o descifrado por el programa camuflado como archivo “.jpg”

Se procede a seguir revisando el archivo “jpg” de manera estática, con la intención de confirmar nuestra hipótesis.

Se encuentran los siguientes datos:

Información sobre el fichero PE analizado

Es decir, nos hemos encontrado un archivo comprimido y autoextraíble, que anteriormente se llamaba “WExtract.exe”.

Todo lo revisado anteriormente cobrar sentido, aún más cuando le cambiamos la extensión por la de: .exe, y tenemos un fabuloso icono asociado a la extensión para el archivo.



Archivo a análisis con extensión .exe

lunes, 30 de noviembre de 2015

Análisis parcial de "najydfdp.exe"

Mientras se analiza la siguiente muestra de malware:

Nombre:                 najydfdp.exe
MD5:                     24DC349285FE3222630D9019E908F0D1

Nombre y MD5 de la muestra analizada

Se encuentra una funcionalidad muy llamativa de la misma.

Pero para llegar a ella, primero se pondrá en situación.

Cuándo lanzamos la muestra (análisis dinámico básico), se crea un proceso de nombre: “jjprnqwb.exe”, que a su vez, crea dos procesos de nombre: “svchost.exe”.

Árbol de procesos de jjprnqwb.exe

Información sobre el proceso de jjprnqwb.exe

Información sobre el proceso hijo: svchost.exe, con PID 3408


Información sobre el proceso hijo: svchost.exe, con PID 1840


NOTA: Los procesos padres, tanto el: najydfdp.exe, como el: jjprnqwb.exe son eliminados

Imagen final tras lanzar la muestra.

Aquí es donde empieza la funcionalidad comentada.

Lo interesante de estos dos procesos es que “deben” existir los dos a la vez, ya que si uno de los dos “muere”, el otro proceso recupera el proceso “muerto” para mantener la infección.

Para muestra un botón.

Los procesos originales tenían como PID los valores: 1840 y 3408.

Si eliminamos el proceso con PID: 1840, el proceso con PID: 3408, vuelve a lanzar el ejecutable que le ha lanzado a él mismo y que a su vez, volverá a lanzar el ejecutable: svchost.exe con otro PID distinto.


Secuencia tras eliminarse el proceso con PID: 1840

Lo mismo ocurriría si el otro proceso fuera eliminado (se elimina el proceso con PID: 3408).


Secuencia tras eliminarse el proceso con PID: 3408

Conclusiones

Nos encontramos con un control de la infección, es decir, un sistema que no permite que el proceso infeccioso pueda ser detenido de manera sencilla.

Anexo

En la segunda secuencia se puede ver la ejecución del archivo: anxmghqx.exe. Este archivo reside en la carpeta: Documents and Settings/<usuario>/Configuración local/Datos de programa/rkjavehh/

Tal información se obtiene gracias a que en el proceso de infección se ha modificado el registro de Windows para incluir en la secuencia de arranque la ejecución del archivo antes mencionado.

Ubicación del archivo: anxghqx.exe


Secuencia de arranque configurada en el Registro de Windows

Aunque no sólo nos encontramos esto, sino que otro archivo se ha configurado dentro de la secuencia de arranque, tal y como se puede apreciar en la foto anterior.

El nuevo archivo es: jjprnqwb.exe, y la ubicación en la reside: Documents and Settings/<usuario>/Configuración local/Temp

Ubicación del archivo: jjprnqwb.exe

NOTA ADICIONAL:

Comparando todos los archivos encontrados, incluso el archivo qswhllov.exe encontrado en la misma ubicación que el archivo “jjprnqwb.exe”.

TODOS SON EL MISMO.



Comparación de MD5s

jueves, 19 de noviembre de 2015

Una espina clavada con los documentos ofimáticos

Desde hace tiempo quería investigar un poco más sobre los documentos ofimáticas que no son utilizados como lanzadores.

Estos tipos no pueden considerarse como malware como tal, ya que  suelen realizar solicitudes de descarga de un ejecutable (malware), para luego, una vez descargado, ejecutarlo dentro del sistema.

DE entre los documentos ofimáticos encontrados que se podría catalogar como NO lanzadores, he seleccionado la siguiente macro como podía haber seleccionado otra. La diferencia no radical en el funcionamiento, sino en los nombres de variables, etc.

Macro del documento ofimático - Parte 1

Macro del documento ofimático - Parte 2

Entre las funciones que nos encontramos en la macro está la copia del documento ofimático origen por dos veces, en la ubicación: $TEMP\, con lo nombres: 322.rtf y 311.rtf.

Creación de los archivos 311.rtf y 322.rtf en la ubicación $TEMP\

Así como  la creación del archivo: $TEMP\pm2.exe, que con posterioridad se ejecuta.

Creación del archivo: $TEMP\pm2.exe y su posterior ejecución.

El contenido de este ejecutable, lo encontraremos dentro del propio documento ofimático.

Más concretamente en este caso, la encontramos en un objeto OLE Nativo de 181.467 bytes.

Estructura del documento ofimático, y en el recuadro rojo el objeto OLE embebido

Si revisamos el contenido del “stream”, nos encontramos con un archivo de tipo PE almacenado sin cifrar, ya que a simple vista se puede ver el “magic number” de estos tipos de archivos. O podemos ver la típica cadena de error que aparece cuando intentamos ejecutar el archivo en un entorno no propicio, o las distintas secciones en que se divide el archivo (text, rdata, data, rscr).

Archivo ejecutable embebido en el documento ofimático

Sin necesidad de ejecutarlo podemos extraer el contenido del ejecutable embebido.

Ejecutable extraído con el nombre: prueba.exe

Se obtiene el MD5 y un análisis estático del mismo, en donde lo que en primer lugar llama la atención es la gran cantidad motores que según VirusTotal detectan el archivo.

MD5 del archivo y los motores que lo detectan según VirusTotal.


Es decir, nos encontramos ante un gran conocido (informe de VirusTotal)

lunes, 16 de noviembre de 2015

El primer ransomware para Linux y su correspondiente herramienta de recuperación

El pasado 6 de noviembre, se hizo público, por parte de Dr. Web,  la existencia de un ransomware desarrollado para servidores Linux, denominado: Linux.Encoder.1 (Descripción técnica).

Hoy leo que Bitdefender ha sacado una herramienta para descifrar los archivos cifrados por este ransomware. Todo es debido a que:

“Linux.Encoder.1 cifra documentos, aplicaciones, código fuente y archivos multimedia utilizando el algoritmo de cifrado AES-128 con una clave que se genera localmente en el dispositivo de la víctima. La clave AES se cifra, a su vez, con una clave RSA para asegurar que los archivos no se pueden recuperar sin pagar el rescate.

Romper el cifrado RSA y AES es casi imposible, y la clave privada RSA necesaria para descifrar la clave AES solamente se almacena en la máquina del atacante. Sin embargo, los investigadores de Bitdefender descubrieron un defecto en la forma en que se genera la clave AES.

En lugar de generar claves aleatorias seguras y vectores de inicialización, la muestra derivaría dos piezas de información de la función rand () de libc generado con la fecha y hora actual del sistema en el momento de cifrado. Esta información puede ser fácilmente recuperada examinado marca de tiempo del archivo ", dijo Bitdefender.

Este es un gran defecto de diseño que permite la recuperación de la clave AES sin tener que descifrar con la clave pública RSA vendido por el operador (s) del troyano".

martes, 10 de noviembre de 2015

Bitdefender crea una "vacuna" contra Crytowall 4.0

He leído en el blog  HackPlayer.com que la firma de antivirus BitDefender a ha sacado una “vacuna” para la última versión de CryptoWall, la 4.0.


Parece que esta versión del Cryptowall, desarrollada en Rusia, no afecta a los usuarios de ese país, ya que dicha versión antes de empezar a realizar las tareas para las que está programado, comprueba si se encuentra activo el teclado en ruso. (Noticia desde BitDefender).

En este sentido, lo que parece hacer la  "vacuna" es: de manera preventiva activa el teclado en lenguaje ruso.

martes, 3 de noviembre de 2015

Análisis del "ticket_11022015-33788993.doc" y demás

Detectado a través de un correo electrónico el siguiente  archivo:

Nombre:                 ticket_11022015-33788993.doc
MD5:                     2F0222A86166A602B14E3DACD556C9D0
VT:                         18/54

Por la macro de dicho archivo, que ya es bastante conocida, al menos su funcionamiento. Se crea un archivo de:

Nombre:                 s1ks.pm2.exe
MD5:                     429eb39728f227ce94404499f8f0963d
VT:                         N/A

Procedimiento detectado en la macro.

Este último archivo, realiza comunicaciones hacía Internet.

Entre las peticiones DNS que se han detectado están los siguientes dominios:

EEXTENSIONS.CO
THETEDRENRE.RU
UNLACCOTHE.RU
WICYTERGO.RU
WWW.10203040.AT
WWW.ESHTARI.ME

Solicitudes de resolución DNS de los dominios detectados al ejecutar: s1ks.pm2.exe

Las URLs detectadas son:

wicytergo.ru/gate.php (peticion POST)
unlaccothe.ru/gate.php (peticion POST)
EEXTENSIONS.CO/gate.php (peticion POST)
THETEDRENRE.RU/gate.php (peticion POST)
WWW.10203040.AT/gate.php (peticion POST)
WWW.ESHTARI.ME/gate.php (peticion POST)

Petición detectada por nuestro servidor fantasma - 1

Petición detectada por nuestro servidor fantasma - 2

Conclusiones

Se debería detectar/bloquear en nuestros sistemas de seguridad los siguientes datos:

Nombre:             ticket_11022015-33788993.doc
MD5:                 2F0222A86166A602B14E3DACD556C9D0
Nombre:             s1ks.pm2.exe
MD5:                 429eb39728f227ce94404499f8f0963d
URLs:                wicytergo.ru/gate.php (peticion POST)
  unlaccothe.ru/gate.php (peticion POST)
  EEXTENSIONS.CO/gate.php (peticion POST)
  THETEDRENRE.RU/gate.php (peticion POST)
  WWW.10203040.AT/gate.php (peticion POST)
  WWW.ESHTARI.ME/gate.php (peticion POST)
Mutex:               local\mtxlog meinig nition.ig nitionmutex




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…