Ejecutando un binario mediante la técnica RunPE

La técnica conocida como RunPE la podemos encontrar descrita con varios nombres diferentes como: RunPE, Dynamic Forking, process replacement o process hollowing. También he visto que se refieren a ella como “process zombie”, pero después en otras fuentes mencionan diferencias que podéis leer aquí [5].

Durante los últimos meses hemos observado desde el laboratorio de malware que algunos “bichos”conocidos la implementan, por ejemplo como hancitor[1].

En esta entrada no vamos a explicar la técnica en detalle, ya que con un simple búsqueda en Google por los términos RunPE, Dynamic Forking o Process Hollowing, encontraréis información muy buena sobre la técnica [2][4].

Por tanto, el objetivo de la entrada es ver como un analista cuando se encuentra con un malware que utiliza esta técnica puede obtener el código del malware para analizarlo posteriormente (el código inyectado). Para probarlo, durante esta entrada hemos utilizado el código que podéis encontrar aquí [3]. Como podréis ver está sacado de una entrada del foro “www.rohitab.com” que se referencia como comentario en el mismo código fuente. [Read more…]

Tendencias de malware. Noviembre 2016

Durante este pasado mes de noviembre hemos observado desde el laboratorio de malware de S2 Grupo distintas amenazas que queríamos compartir con vosotros. En este tipo de entradas encontraremos amenazas conocidas, vistas en otras fuentes o analizadas directamente en nuestro laboratorio, pero el objetivo del post es conocer qué tipo de amenazas están activas.

A continuación mostramos un diagrama con la información recopilada desde el laboratorio:

lab-malware-nov16

El primer caso que es necesario repasar es la intensa campaña de spam que hemos sufrido recientemente en el que nos llegaba un fichero adjunto comprimido, que contenía un archivo en formato JavaScript conocido como Nemucod. En caso de ser ejecutado, este instala en nuestro equipo una variante muy común del Ransomware Locky (amigo durante ya varios meses) en formato dll.
[Read more…]

MISP (Malware Information Sharing Platform & Threat Sharing)

La continua evolución de las amenazas y su volatilidad está exigiendo a los profesionales del sector de la seguridad diseñar, desarrollar y explotar soluciones que permitan intercambiar información de una manera rápida, cómoda y sobre todo de una manera distribuida entre los diferentes actores dedicados a velar por la seguridad.

Una de estas soluciones es MISP. De un tiempo a esta parte la herramienta está alcanzando más popularidad y se está convirtiendo poco a poco en una de las herramientas más importantes para el intercambio de indicadores de compromiso. Un indicador de su popularidad es que cada vez son más los productos que están empezando a hablar con MISP; puede verse un ejemplo reciente de cómo desde cuckoo-modified (un fork de Cuckoo Sandbox) se ha añadido un módulo de reporting para interactuar con MISP.

Una de las partes más importantes de la herramienta desde mi punto de vista es su API, pymisp. Es por ello que en esta entrada vamos a ver los pequeños ejemplos que nos aportan desde el proyecto y así ver el potencial de automatización que nos ofrece la herramienta.
[Read more…]

Análisis de nls_933w.dll (II)

En la anterior entrada analizamos ciertas características estáticas que nos daban una idea de lo que hace o lo que podría llegar a hacer la librería. Ahora en esta segunda entrada vamos a analizar las funciones que exporta la librería. Para el análisis estático de la librería nos vamos a apoyar en las herramientas radare2, pestudio y ollydbg.

Como ya vimos en la anterior entrada con la herramienta PEstudio se exportan cinco funciones:

jh0

[Read more…]

Análisis de nls_933w.dll (I)

El objetivo principal de esta entrada y las siguientes que vamos a publicar es ir mostrando diferentes aspectos interesantes del análisis que estamos haciendo de una de las funcionalidades del framework utilizado por el grupo bautizado como “Equation” por la empresa Kaspersky. Este grupo ha utilizado un conjunto de herramientas y funcionalidades, donde alguna de ellas han sido consideradas bastante especializadas y creemos que merecen una especial atención.

Entre todas las herramientas y funcionalidades desarrolladas por el grupo nos hemos centrado en analizar la funcionalidad que permite añadir persistencia en el firmware de los discos duros. De todos modos para más información se puede consultar el siguiente informe de Kaspersky:

https://securelist.com/files/2015/02/Equation_group_questions_and_answers.pdf

Las muestras analizadas sobre las que vamos a trabajar durante los artículos son:

Nombre	        Hash	Valor
nls_933w.dll	MD5	11FB08B9126CDB4668B3F5135CF7A6C5
nls_933w.dll	SHA1	FF2B50F371EB26F22EB8A2118E9AB0E015081500
WIN32M.sys	MD5	2B444AC5209A8B4140DD6B747A996653
WIN32M.sys	SHA1	645678C4ED9BBDD641C4FF4DCB1825C262B2D879

[Read more…]

Análisis de un OLE File con oledump.py

En esta entrada vamos a ver de una manera muy rápida como hacer un análisis de un fichero OLE y analizar los streams que contenga (en este caso se trata de una macro) con la herramienta y reglas de Didier Stevens. El documento no es muy complejo pero nos sirve para ilustrar cómo utilizar esta herramienta.

Hash del fichero cazado en un correo:

e4e46f746fffa613087bba14666a3ceec47e145f  Transferencia_Interbancaria.doc

Paso 1: Lanzamos yara con nuestra reglas:

[Read more…]

Corelan

Post escrito en colaboración con Ernesto Corral.

Cuando se preguntó en la lista de correo de la RootedCON cuanto se estaba dispuesto a pagar por un training de exploiting de Corelan en Madrid la primera respuesta que me pasó por la cabeza fue “shut up and take my money”.

Cuando más tarde se abrió la inscripción tanto Ernesto como un servidor fuimos algunos de los afortunados que conseguimos plaza en el training. Más de una semana ha pasado desde que terminó el training y queremos compartir nuestras impresiones.

Lo primero que quiero dejar claro es que cumplió nuestras expectativas con creces. Aunque se recomendaba tener una base de exploiting, la realidad es que se empezaba desde nivel 0. Vimos como son los internals de Windows, como funciona un debugger, incluso se hizo un repaso de algunas instrucciones de ensamblador. Y llegamos hasta la explotación del navegador utilizando técnicas de heap spray pasando por el camino por el bypass de las protecciones aslr y dep.

[Read more…]

Resolución del ejercicio número 2 de Fusion (II): “Consiguiendo una shell”

En la primera parte de esta entrada llegamos hasta el punto de sobrescribir registro EIP con el valor que nosotros queríamos. Ahora llega el momento de explotar la vulnerabilidad y ejecutar código.

Recordar que el enlace que me ha sido imprescindible para resolver el ejercicio ha sido la entrada del blog de Kroosec. En esta entrada espero, sobretodo, que quede clara la técnica para crear un ROP en múltiples fases y mostrar cuando nos puede venir bien.

Como en la primera entrada, nos plantearemos preguntas e iremos resolviéndolas hasta llegar a explotar la vulnerabilidad:

1. ¿Contra qué nos enfrentamos?
[Read more…]

Resolución del ejercicio número 2 de Fusion (I) – “Controlando EIP”

Siguiendo con los ejercicios de exploiting con los que empezamos en un post anterior, hoy vamos a pegarnos con uno de la máquina virtual Fusion, concretamente nos enfrentaremos al ejercicio Fusion 02. La resolución de este ejercicio la he dividido en dos partes (dos entradas en el blog), en esta primera parte tenemos como objetivo controlar el registro EIP y dejaremos para la segunda parte explotar la vulnerabilidad. Esta entrada toma como guía para su resolución la entrada del blog de kroosec . Aunque intenta ofrecer algunos detalles más, que pueda hacer más fácil entender el ejercicio.... Leer Más

Resolución al ejercicio Heap03 de exploit-exercises.com

Hace ya algún tiempo vi por Twitter a @esanfelix que hacía referencia a una máquina virtual de ejercicios de exploiting y tomé nota de la dirección para cuando encontrara un hueco. Al final este verano encontré pequeños huecos para ir haciendo los ejercicios y os tengo que decir que la experiencia después de haber hecho los ejercicios de la versión protostar es altamente recomendable. Ahora mismo estoy empezando los ejercicios de la versión máquina virtual fusion y el objetivo es hacer todos los que el tiempo libre me permita ;-).... Leer Más