1. •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.
3. Gracias
• A toda la organización:
• La gente de ITPro.es, Hackplayers y CracksLatinos
• En especial a estos dos grandes:
@_Angelucho_
@1GbDeInfo
4. ¿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‟
7. ¿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
10. 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:
Winsock@miequipoestaloco.com (Tengo paypal,
bitcoins… vamos a medias)
12. Formas de cargar una libería I
• Carga estática:
• Carga dinámica: a petición
13. Formas de cargar una libería II
• Desde otro proceso
• Desde otra librería
• Desde el sistema operativo
o
o
Driver
Applnit_DLLs
• Buscando como implementar una nueva función
o
o
Plug-in
Addons
14. Diferencias entre las cargas
Carga estática:
• Permite modificar el código ANTES de ser ejecutado
• NO permite el uso de hilos
Carga dinámica:
• 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
23. 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,…)
24. 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
29. 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
To do’s
• 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