Top Banner
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.
30

¿Nadie piensa en las DLLs?

Jul 12, 2015

Download

Documents

navajanegra
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ¿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.

Page 2: ¿Nadie piensa en las DLLs?

¿Nadie

piensa en

las DLL?Adrián Pulido

Aka: WiNSoCk

@winsock

Page 3: ¿Nadie piensa en las DLLs?

• A toda la organización:

• La gente de ITPro.es, Hackplayers y CracksLatinos

• En especial a estos dos grandes:

@_Angelucho_ @1GbDeInfo

Gracias

Page 4: ¿Nadie piensa en las DLLs?

¿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‟

Page 5: ¿Nadie piensa en las DLLs?

Estadística VirusTotal

• ¿En serio 500.000 fotografías?

Page 6: ¿Nadie piensa en las DLLs?

Detectando el virus

Page 7: ¿Nadie piensa en las DLLs?

¿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

Page 8: ¿Nadie piensa en las DLLs?

En el mundo real

Page 9: ¿Nadie piensa en las DLLs?

0Day Visual Basic 6.0

Y no muestro el MS11-067

de casualidad :P

Page 10: ¿Nadie piensa en las DLLs?

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)

Page 11: ¿Nadie piensa en las DLLs?

¿Cómo funciona generalmente

un ejecutable?

Page 12: ¿Nadie piensa en las DLLs?

Formas de cargar una libería I

• Carga estática:

• Carga dinámica: a petición

Page 13: ¿Nadie piensa en las DLLs?

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

Page 14: ¿Nadie piensa en las DLLs?

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:

Page 15: ¿Nadie piensa en las DLLs?

Y una vez cargada…

Page 16: ¿Nadie piensa en las DLLs?

Demo: No todo tiene que ser .DLL

Page 17: ¿Nadie piensa en las DLLs?

Quiero a todos más ilusionados

que el niño del anuncio

Page 18: ¿Nadie piensa en las DLLs?

• Funcionamiento

normal

• Funcionamiento

modificado

Page 19: ¿Nadie piensa en las DLLs?

Inicialización (Precarga)

Page 20: ¿Nadie piensa en las DLLs?

Demo: Precarga DLL

• No existe función

• Es ejecutado 2 veces

• Es llamado antes que el ejecutable

• No acepta hilos*

Page 21: ¿Nadie piensa en las DLLs?

Demo: Windows 7

Page 22: ¿Nadie piensa en las DLLs?

Proceso ninja

Page 23: ¿Nadie piensa en las DLLs?

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,…)

Page 24: ¿Nadie piensa en las DLLs?

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

Page 25: ¿Nadie piensa en las DLLs?

Detección de Antivirus II

• Si estando en

memoria

carga una

librería…

Page 26: ¿Nadie piensa en las DLLs?

Demo: En memoria

Page 27: ¿Nadie piensa en las DLLs?

Demo: Wireshark

Page 28: ¿Nadie piensa en las DLLs?

¡Sorpresa!

Page 29: ¿Nadie piensa en las DLLs?

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

Page 30: ¿Nadie piensa en las DLLs?

¿Y tú, ya piensas en las DLL?

@winsock