•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 ejec...
¿Nadie
piensa en
las DLL?
Adrián Pulido
Aka: WiNSoCk
@winsock
Gracias
• A toda la organización:
• La gente de ITPro.es, Hackplayers y CracksLatinos
• En especial a estos dos grandes:
...
¿Qué ocurre con las librerías?
• ¡Nadie piensa en las librerías!
• No se entiende qué hacen las librerías
• Los antivirus ...
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.
• Per...
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...
¿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
o
Driver
Applni...
Diferencias entre las cargas
Carga estática:
• Permite modificar el código ANTES de ser ejecutado
• NO permite el uso de h...
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...
Detección de Antivirus I
• No se analiza la memoria (si ya está en memoria)
• No se analiza si el binario está roto
• No ...
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
prog...
¿Y tú, ya piensas en las DLL?
@winsock
of 30

¿Nadie piensa en las DLLs?

Published on: Mar 3, 2016
Source: www.slideshare.net


Transcripts - ¿Nadie piensa en las DLLs?

  • 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.
  • 2. ¿Nadie piensa en las DLL? Adrián Pulido Aka: WiNSoCk @winsock
  • 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‟
  • 5. Estadística VirusTotal • ¿En serio 500.000 fotografías?
  • 6. Detectando el virus
  • 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
  • 8. En el mundo real
  • 9. 0Day Visual Basic 6.0 Y no muestro el MS11-067 de casualidad :P
  • 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)
  • 11. ¿Cómo funciona generalmente un ejecutable?
  • 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
  • 15. Y una vez cargada…
  • 16. Demo: No todo tiene que ser .DLL
  • 17. Quiero a todos más ilusionados que el niño del anuncio
  • 18. • Funcionamiento normal • Funcionamiento modificado
  • 19. Inicialización (Precarga)
  • 20. Demo: Precarga DLL • No existe función • Es ejecutado 2 veces • Es llamado antes que el ejecutable • No acepta hilos*
  • 21. Demo: Windows 7
  • 22. Proceso ninja
  • 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
  • 25. Detección de Antivirus II • Si estando en memoria carga una librería…
  • 26. Demo: En memoria
  • 27. Demo: Wireshark
  • 28. ¡Sorpresa!
  • 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
  • 30. ¿Y tú, ya piensas en las DLL? @winsock

Related Documents