jueves, 20 de abril de 2017

Mirando debajo de las faldas de un "posible" malware.

Siempre que se analiza un archivo PE (archivos ejecutables para sistemas Windows), todo el mundo recomienda hacer un pequeño análisis estático.

El objetivo de esto: "intuir" si nos encontramos ante un "bicho malicioso" o no.

Dentro de los distintos puntos a mirar, siempre hay que mirar las SECCIONES del archivo.

Pero para entender que es una sección, es necesario entender que es un archivo PE, y para ello se usará la definición dada por el Wikipedia.

NOTA: https://es.wikipedia.org/wiki/Portable_Executable

Según la Wikipedia:

Definición de archivo PE según la wikipedia.

De manera gráfica, un archivo PE se compone de:

Composición de un archivo PE, de manera gráfica.

De las secciones existentes, las más comunes e interesantes.

SECCIÓN
DESCRIPCIÓN
.text    

Contiene las instrucciones que la CPU ejecutará y por lo tanto, debería ser la única sección que contuviera código.
.rdata 

Normalmente contiene los datos de sólo lectura usados por el ejecutable. Si no existen las secciones: .idata y .edata, está sección también puede contener funciones a exportar o importar.
.data   
Contienen los datos globales del ejecutable.
.idata
Si está presente en el ejecutable, almacena información sobre las funciones a importar.
.rdata 

Si está presente en el ejecutable, almacena información sobre las funciones a exportar
.pdata

Sólo está presente en los ejecutables de 64 bits, y almacena información sobre el manejo de las excepciones.
.rsrc    

Contiene los recursos usados por el archivo PE que no son considerados partea del ejecutable, tales como: iconos, imágenes, menús y cadenas.
.reloc  
Contiene información para la recolocación de librerías.

QUÉ BUSCAR

De las anteriores secciones, la sección que dará más información para determinar si un archivo PE puede ser un archivo malicioso es la sección: .rsrc.

El motivo es que en dicha sección más utilizada para embeber/contener otro programa, el cuál podría ser extraído y ejecutado por el programa anfitrión.

Nos encontramos, por tanto, con una manera de ocultación.

Para determinar si un archivo trae embebido otro debemos fijarnos en el tamaño de la sección.

Otros indicios a buscar son las secciones con nombres no habituales.

COMO BUSCARLO

Todos los archivos PE pueden ser editados fácilmente mediante editores y editores hexadecimales, pero entonces, se debería tener un conocimiento profundo sobre la estructura interna de dichos archivos. Por esto existen ciertos programas que interpretan la información interna de los archivos PE y la muestran estructurada y fácilmente legible.

En nuestro caso, para poder ver toda la información de las secciones de las que se compone un archivo PE, deberemos irnos a: IMAGE_SECTION_HEADER.

EJEMPLOS

MD5: 0E066D6FAF758DD2C6CCFBEA1F989973

NOTA: Este archivo es un conocido ransomware, más concretamente: Cerber

Contiene un sección: .rsrc de 438 bytes

MD5 del archivo a estudiar

Según VT, 42 motores de 57 lo detectan como malicioso.

Secciones del archivo analizado - Parte 1

Secciones del archivo analizado - Parte 2

MD5: B15B187ADA85381027ABE8E30831385

Contiene un sección: .rsrc de 1192 bytes

MD5 del archivo a estudiar

Según VT, 45 motores de 58 lo detectan como malicioso.

Secciones del archivo analizado.

MD5: 1EEAE1E6FD62B56B03BA6EA7CE226EF9

Contiene un sección: .rsrc de 384 bytes, además de una sección de nombre: .gfids


MD5 del archivo a estudiar

Según VT, 48 motores de 62 lo detectan como malicioso.

Secciones del archivo analizado.


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

sábado, 1 de abril de 2017

This is my way!!!!!!

Hace tiempo se leyó la siguiente entrada en el blog de Didier Steven:

https://blog.didierstevens.com/2017/03/07/update-oledump-py-version-0-0-27/

Más concretamente, el vídeo referente al nuevo plugin de la herramienta "oledump", que se denomina: plugin_str_sub.

https://youtu.be/tnPWKHiHpBo

En ella se enseña una manera de des-ofuscar el código de las macros de un archivo ofimático para poder comprender el código de las macros.

Esta lectura permitiría encontrar información útil que pueda ser utilizada para alimentar cualquier sistema de inteligencia desplegado.

En este sentido, se va a comentar a continuación una manera de extraer información de archivos ofimáticos utilizados como "downloaders" y cuyas macros se pueden modificar. Todo ello sin necesidad de des-ofuscar el código.

Para ello vamos a analizar el archivo ofimático con md5:
F0B58E18DFF22D0A6D1B91076A1B463B

Md5 del archivo a analizar

Al ser un downloader, lo que buscamos es la URL desde donde se intentará descargar, el archivo analizado, el archivo verdaderamente malicioso. Para ello, lo primero que se hará es abrir el archivo, mejor en un entorno controlado, sin permitir la ejecución de macros.

Apertura del documento sin ejecutar las macros que trae el archivo

Tras esto, se procederá a modificar las macros que tengan el archivo analizado, que pueden venir codificadas

Observamos las macros que trae el archivo

Accedemos al código de la macro

En este punto, comentar que el lo que siempre hay que buscar es la cadena: "RUN", ya que esta cadena pertenecerá a la instrucción que permite lanzar un comando dentro del sistema operativo Windows.

Búsqueda de la cadena: "run".

Instrucción que permite lanzar un comando a nivel del sistema operativo Windows.

La línea encontrada consistirá en:

<variable definida como un objeto "wscript.shell" >.run <comando a ejecutar>,<apariencia de la ventana de windows>,<valor que indica si es necesario esperar a que el comando termine>

Más información:
https://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx

Esa línea debemos comentarla con el comando "msgbox", para ver el contenido de la variable que contiene el comando, de la siguiente manera:

Comentamos la instrucción

Tras dicha modificación, debemos guardar los cambios y volver a ejecutar el archivo, pero está vez, permitiremos la ejecución de las macros.

Tras el cambio , lanzamos la ejecución del documento permitiendo la ejecución de macros.

El resultado final será:

Mensaje devuelto mostrando el contenido que se va a ejecutar.



Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

martes, 21 de marzo de 2017

La nueva pasarela de malware - Última parte

Y por último en este desfile, aunque no son las únicas tendencias, comentar que la idea es utilizar algún servicio público en Internet a través del cual se pueda solicitar una web, es decir, que pueda funcionar como proxy-web. El ejemplo: el traductor de Google, el cual permite traducir páginas web en su totalidad, mientras que la ejecutan.

Además, en este caso, las comunicaciones generadas van cifradas, lo que dificulta el uso de IPS/IDS o cualquier otro elemento de seguridad a nivel de red que se utilice. Además, el cifrado dificulta cualquier tipo de análisis por parte de un analista.

Más información:

https://www.securityartwork.es/2017/02/28/volvamos-al-collins/

PoC

Imaginad que se "contrata" un dominio y espacio para el mismo en Internet, en donde se dejará el "regalo" malicioso, o mejor, se accede de "aquella manera" al siguiente recurso, dejando en el mismo, "el regalo"

http://science.sciencemag.org/content/355/6330/1112

Tras lo cual se monta una campaña ... en este caso supondremos que hemos recibido por ejemplo, un ".html" con el siguiente contenido:


Contenido del archivo ".html" que se recibe.

Cuando se ejecuta dicho código obtenemos.


Resultado final de la ejecución de la página ".html" ejecutada

Del tráfico "snifado", se comprueba las comunicaciones realizadas directamente al sitio:
science.sciencemag.org
Del tráfico "snifado", se comprueba las comunicaciones realizadas directamente al sitio:
translate.google.com


La comunicación va cifrada.


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

martes, 7 de marzo de 2017

La nueva pasarela de malware - Parte 4

Continuando con el desfile se presentan los archivos ...

ARCHIVOS .SVG

Los archivos ".svg" (Scalable Vector Graphics o Gráficos Vectoriales Redimensionables) son archivos que contienen un código XML para expresar un gráfico vectorial.

El problema radica en que estos archivos son capaces de contener código javascript, por lo que son archivos susceptibles de utilizarse para hacer el mal.

Toda ejecución, en principio, tendrá lugar dentro de la Sandbox del navegador, por lo que no "deberían" escapar de este, pero nunca se sabe.

PoC

Para probar lo anteriormente comentado, se crea el archivo: PoC-SVG.svg, con el código:

Contenido del archivo: PoC-SVG.svg

NOTA: En las pruebas que se han realizado ha sido fundamental no quitar la siguiente cadena: "xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink". Sin ella, el archivo ".svg" no es comprensible y por lo tanto, no obtendríamos los efectos deseados.

Tras el consiguiente doble click, se abre el Internet Explorer obtenido los siguientes resultados:

Gráfico SVG presentado y solicitud para permitir la ejecución del código javascript


Presentación de la orden: alert('Hola Mundo! :}'

Redirección de la web de San Google.

Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

Más información:
http://unaaldia.hispasec.com/2017/02/creias-que-las-imagenes-eran.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hispasec%2FzCAd+%28%40unaaldia%29
https://es.wikipedia.org/wiki/Scalable_Vector_Graphics
https://www.w3.org/TR/SVG11/intro.html

jueves, 2 de marzo de 2017

La nueva pasarela de malware - Parte 3

Continuando con el desfile se presentan los archivos ...

HTA (HTML Application)

Es un programa cuyo código fuente es código HTML, HTML dinámico y/o uno o más lenguajes scripts soportado por el explorador Internet Explorer (VBScript o JavaScript). El código HTML es usado para el interface , mientras que el lenguaje script es usado para la lógica del programa.

Su extensión es: ".hta".



Código de un programa HTA.

Estos archivos con extensión .HTA, se ejecutan sin las restricciones del modelo de seguridad del navegador, es decir, se ejecutan como una aplicación "totalmente confiable".

El motor de los archivos HTA es: mshta.exe, que es dependiente de Internet Explorer, por lo que si no se tiene instalado el Internet Explorer, los archivos HTA no se ejecutarán.

Desde la versión de Internet Explorer 5 hasta la 11 los archivos HTA son soportados, aunque también hay que decir, que las versiones 10 y 11 los soportan pero con menos funciones activas.

Ejecución del programa: PoC-HTA.hta


Ejecución del archivo: PoC-HTA.hta, a través de: mshta.exe

Navegador Internet Explorer ejecutado tras el lanzamiento de la aplicación: PoC-HTA.hta

Un el uso de dicha técnica para el despliegue de *ware lo encontramos en una nueva variante de ransomware llamada: Spora, que se ha descubierto en Enero de este año y que aunque sólo afectaba a usuarios de habla rusa, personalmente, ya lo he empezado a ver por nuestros lares.

Código HTA del ransomware Spora.

Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

Más información:
https://en.wikipedia.org/wiki/HTML_Application#Security_considerations
https://www.vmray.com/blog/spora-ransomware-dropper-hta-infect-system/


lunes, 27 de febrero de 2017

La nueva pasarela de malware - Parte 2

Continuando con el desfile se presentan los ...

ARCHIVOS .JSE


Los archivos con extensión ".jse", son archivos JScript Encoded, desarrollados por Microsoft.

Estos archivos están relacionados con los archivos con extensión ".vbe". Se comentaron en la entrada: http://4null0.blogspot.com.es/2016/02/analizando-el-archivo-updatedat.html

Son fácilmente ejecutados mediante WScript.exe o  CScript.exe, como cualquier archivo JavaScript o VisualBasic Script.

Tal y como se puede ver en la siguiente imagen el contenido del mismo es totalmente ilegible.

Contenido de archivo: Multa_N_Expediente_19-002-923.jse

Se ha encontrado que últimamente se distribuyen muchos archivos ofimáticos que contienen contenido ilegible, pero que si analizamos la macro que poseen, se puede ver que el contenido ilegible se corresponde con el contenido de un archivo con extensión ".jse" que es extraído del documento ofimático para su ejecución.


Contenido ilegible del archivo ofimático: Multa_N_Expediente_19-002-923.doc

Macro del archivo


Función que se ejecuta tras cerrar el documento, y en donde se puede ver la creación del archivo con extensión ".jse" con el contenido del documento, así como su posterior ejecución.

Estos archivos con extensión ".jse" pueden ser decodificamos mediante el código comentado en la entrada del blog referenciada anteriormente.


Ejecución de la script ".vbs" que permite descifrar tanto los archivos con extensión ".vbe" como ".jse"


Codigo del archivo con extensión ".jse" tras descifrarlo


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia