¿Nadie piensa en las DLLs?

30
Hoy en día se tiene la falsa creencia de que todas las infecciones por malware sólo se propagan a través de ficheros ejecutables y se tiende a olvidar otros posibles métodos de infección como la utilización de DLL‟s. Mediante la manipulación y modificación de éstas, usando técnicas específicas, los atacantes pueden lograr evitar las medidas de seguridad de los antivirus y conseguir la ejecución de código en el sistema. El objetivo de esta charla es dar a conocer estas técnicas de infección y concienciar acerca de que no sólo con ejecutables se puede infectar un equipo.

Transcript of ¿Nadie piensa en las DLLs?

•Hoy en día se tiene la falsa creencia de que todas las

infecciones por malware sólo se propagan a través de

ficheros ejecutables y se tiende a olvidar otros

posibles métodos de infección como la utilización de

DLL‟s. Mediante la manipulación y modificación de

éstas, usando técnicas específicas, los atacantes

pueden lograr evitar las medidas de seguridad de los

antivirus y conseguir la ejecución de código en el

sistema.

•El objetivo de esta charla es dar a conocer estas

técnicas de infección y concienciar acerca de que no

sólo con ejecutables se puede infectar un equipo.

¿Nadie

piensa en

las DLL?Adrián Pulido

Aka: WiNSoCk

@winsock

• A toda la organización:

• La gente de ITPro.es, Hackplayers y CracksLatinos

• En especial a estos dos grandes:

@_Angelucho_ @1GbDeInfo

Gracias

¿Qué ocurre con las librerías?

• ¡Nadie piensa en las librerías!

• No se entiende qué hacen las librerías

• Los antivirus les prestan menos atención

• Se cree que sólo nos pueden infectar con un „*.EXE‟

Estadística VirusTotal

• ¿En serio 500.000 fotografías?

Detectando el virus

¿Qué es una DLL?

• Un contenedor de código y datos.

• Pueden ser utilizados por uno o más programas al

mismo tiempo.

• Permite realizar aplicaciones modulares,

segmentando el código en funciones que serán

incluidas en la librería o DLL

En el mundo real

0Day Visual Basic 6.0

Y no muestro el MS11-067

de casualidad :P

Búsqueda de 0days

• Aplicaciones que aceptan pluggins

• Que los cargan en el inicio

• Que permiten ser compartidos

• Y una vez localizados AVISAR A LA COMUNIDAD!

• PD: Si alguno cobra una pasta por un 0day:

[email protected] (Tengo paypal,

bitcoins… vamos a medias)

¿Cómo funciona generalmente

un ejecutable?

Formas de cargar una libería I

• Carga estática:

• Carga dinámica: a petición

Formas de cargar una libería II

• Desde otro proceso

• Desde otra librería

• Desde el sistema operativo

o Driver

o Applnit_DLLs

• Buscando como implementar una nueva función

o Plug-in

o Addons

Diferencias entre las cargas

• Permite utilizar hilos

• Si no carga/existe no falla la aplicación

• Se puede camuflar mucho mejor

• No sale en un análisis de librerías (estático)

• Se puede retrasar la carga

• Permite modificar el código ANTES de ser ejecutado

• NO permite el uso de hilos

Carga estática:

Carga dinámica:

Y una vez cargada…

Demo: No todo tiene que ser .DLL

Quiero a todos más ilusionados

que el niño del anuncio

• Funcionamiento

normal

• Funcionamiento

modificado

Inicialización (Precarga)

Demo: Precarga DLL

• No existe función

• Es ejecutado 2 veces

• Es llamado antes que el ejecutable

• No acepta hilos*

Demo: Windows 7

Proceso ninja

Libertad de programación

• Se puede utilizar un lenguaje de alto nivel

• Libertad para programar cualquier cosa

• Acceso a toda la memoria del proceso

• Captura de credenciales

• Posterior envío (HTTP,FTP,…)

Detección de Antivirus I

• No se analiza la memoria (si ya está en memoria)

• No se analiza si el binario está roto

• No detecta si no hace nada maligno

• No lo detecta si no hay firma conocida

Detección de Antivirus II

• Si estando en

memoria

carga una

librería…

Demo: En memoria

Demo: Wireshark

¡Sorpresa!

Ventajas• Se pueden hacer librerías en lenguajes de alto nivel.

• Sólo hay que modificar una librería y afecta a más programas

• Modificación de firmas (AV) en caliente

• Es menos conocido que los ejecutables

• Se puede ocultar mucho mejor que un ejecutable

• Publicar la parte más técnica en el blog:www.miequipoestaloco.com

• Una librería “Maestra”, programada para descubrir fallos (0Days)

• Una aplicación que busque librerías modificables

To do’s

¿Y tú, ya piensas en las DLL?

@winsock