SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Sobre mi
¿Qui´en soy?
Ezequiel ”Zequi”V´azquez
Desarrollo backend
Sysadmin & DevOps
Hacking & Seguridad
Ponente en CONs desde 2013
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Sobre mi
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
´Indice
1 Introducci´on
2 An´alisis de Vulnerabilidades
3 ¿Y si no parcheo?
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
´Indice
1 Introducci´on
2 An´alisis de Vulnerabilidades
3 ¿Y si no parcheo?
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
La vida de un parche
Etapas
1 Descubrimiento de vulnerabilidad → equipo seguridad
2 Implementaci´on de parche, publicaci´on de nueva versi´on
3 Hackers estudian parche con ingenier´ıa inversa → POC
4 Confirmaci´on POC → ataques masivos
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Vale, yo parcheo, pero . . .
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Vale, yo parcheo, pero . . .
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
´Indice
1 Introducci´on
2 An´alisis de Vulnerabilidades
3 ¿Y si no parcheo?
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
SA-CORE-2014-005
CVE-2014-3704
Parche publicado el 15 de Octubre de 2014
Inyecci´on SQL como an´onimo
Afecta a Drupal 7.x anteriores a 7.32
25/25 en el ´ındice NIST
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
Arrays en m´etodo HTTP POST
El m´etodo POST env´ıa valores al servidor
Generalmente, enteros o strings, pero tambi´en arrays
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
Sanitizaci´on de consultas a BD
Fichero includes/database/database.inc
M´etodo expandArguments
Consultas con condici´on “column IN (a, b, c, . . . )”
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
Sanitizaci´on de consultas a BD
Fichero includes/database/database.inc
M´etodo expandArguments
Consultas con condici´on “column IN (a, b, c, . . . )”
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
Sanitizaci´on de consultas a BD
Fichero includes/database/database.inc
M´etodo expandArguments
Consultas con condici´on “column IN (a, b, c, . . . )”
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
La vulnerabilidad
No se sanitiza correctamente el ´ındice del array
La variable envenenada se pasa a la base de datos
Resultado: Se puede inyectar SQL a discrecci´on
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
La vulnerabilidad
No se sanitiza correctamente el ´ındice del array
La variable envenenada se pasa a la base de datos
Resultado: Se puede inyectar SQL a discrecci´on
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 1
Vamos a verlo
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
SA-CORE-2018-002
CVE-2018-7600
Parche publicado el 28 de Marzo de 2018
Ejecuci´on remota de c´odigo como an´onimo
Afecta a todas las versiones
24/25 en el ´ındice NIST
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
Los render arrays
En Drupal 4.7 se introdujo la Forms API
Array cuyas claves comienzan por “#”
En Drupal 7 se generaliz´o para renderizarlo todo
Comportamiento recursivo
Callbacks: post render, pre render, value callback, . . .
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
Enviando formularios
El valor enviado se almacena en #value
M´etodo POST de HTTP permite valores de tipo array
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
La vulnerabilidad
Usamos POSTMAN o similar para saltarnos el formulario
En un campo en el que se asume un string, se env´ıa un array
El array enviado tiene ´ındices comenzando por “#”
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
La vulnerabilidad
Enga˜namos a Drupal para que re-renderice el campo mail
Usamos la Ajax API para ello
El campo se renderiza, y el post render se ejecuta
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 2
Vamos a verlo
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
SA-CORE-2018-004
CVE-2018-7602
Parche publicado el 25 de Abril de 2018
Ejecuci´on remota de c´odigo como autenticado
Afecta a todas las versiones
20/25 en el ´ındice NIST
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
El par´ametro destination
Par´ametro GET que redirige a una URL tras finalizar ejecuci´on
Se pasa por stripDangerousValues para sanitizarlo
No detecta doble codificaci´on: “#” → “ %23” → “ %2523”
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
El par´ametro destination
Par´ametro GET que redirige a una URL tras finalizar ejecuci´on
Se pasa por stripDangerousValues para sanitizarlo
No detecta doble codificaci´on: “#” → “ %23” → “ %2523”
La opci´on trigering element name
Fichero includes/ajax.inc
Identifica qu´e elemento se us´o para el env´ıo
Marca un elemento de formulario para re-renderizar
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
La vulnerabilidad: primer paso
POST a la URL de un formulario de confirmaci´on
trigering element name con valor form id en POST data
Destination contiene un campo con post render envenenado
La llamada POST redirige al formulario de confirmaci´on
El payload debe ir codificado para URL
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
La vulnerabilidad: primer paso
POST a la URL de un formulario de confirmaci´on
trigering element name con valor form id en POST data
Destination contiene un campo con post render envenenado
La llamada POST redirige al formulario de confirmaci´on
El payload debe ir codificado para URL
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
La vulnerabilidad: segundo paso
Ejecutar como AJAX llamada POST a la acci´on de cancelar
/file/ajax/actions/cancel/ %23options/path/[form build id]
Ajax API procesa el formulario, y ejecuta el post render
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Drupalgeddon 3
Vamos a verlo
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
´Indice
1 Introducci´on
2 An´alisis de Vulnerabilidades
3 ¿Y si no parcheo?
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Ataques “in the wild”
No hag´ais esto en casa
Extracci´on completa de base de datos
Malware de minado de criptomonedas
Servidor como proxy malicioso
Infecci´on de usuarios
Defacement / Black SEO
???
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
En conclusi´on
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
Esto es todo, amigos...
¡Gracias!
@RabbitLair
ezequielvazq[at]gmail[dot]com
Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades

Más contenido relacionado

Similar a DrupalCamp Spain 2018: CSI, autopsia de vulnerabilidades

CSRF: El Nuevo Target.
CSRF: El Nuevo Target.CSRF: El Nuevo Target.
CSRF: El Nuevo Target.Dylan Irzi
 
Hack & Beers - Seguridad en Drupal
Hack & Beers - Seguridad en DrupalHack & Beers - Seguridad en Drupal
Hack & Beers - Seguridad en Drupalzekivazquez
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesNextel S.A.
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesPablo Garaizar
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]RootedCON
 
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Oskar Laguillo
 
VULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONVULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONTensor
 
Vulnerability assessment and exploitation
Vulnerability assessment and exploitationVulnerability assessment and exploitation
Vulnerability assessment and exploitationTensor
 
Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)YuniorGregorio2
 
Seguridad en WordPress con WPHardening
Seguridad en WordPress con WPHardeningSeguridad en WordPress con WPHardening
Seguridad en WordPress con WPHardeningDaniel Maldonado
 
Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Polo Perez
 
Lab1.4.5
Lab1.4.5Lab1.4.5
Lab1.4.5UNAD
 
Inyecciones SQL para Aprendices
Inyecciones SQL para AprendicesInyecciones SQL para Aprendices
Inyecciones SQL para AprendicesTensor
 
Base de la infraestructura tecnica y proteccion de activos de informacion
Base de la infraestructura tecnica y proteccion de activos de informacionBase de la infraestructura tecnica y proteccion de activos de informacion
Base de la infraestructura tecnica y proteccion de activos de informacionMaestros Online
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Jose Gratereaux
 

Similar a DrupalCamp Spain 2018: CSI, autopsia de vulnerabilidades (20)

CSRF: El Nuevo Target.
CSRF: El Nuevo Target.CSRF: El Nuevo Target.
CSRF: El Nuevo Target.
 
Hack & Beers - Seguridad en Drupal
Hack & Beers - Seguridad en DrupalHack & Beers - Seguridad en Drupal
Hack & Beers - Seguridad en Drupal
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
 
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
 
VULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONVULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATION
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Dns spoofing
Dns spoofingDns spoofing
Dns spoofing
 
Ataque Dns spoofing
Ataque Dns spoofingAtaque Dns spoofing
Ataque Dns spoofing
 
Vulnerability assessment and exploitation
Vulnerability assessment and exploitationVulnerability assessment and exploitation
Vulnerability assessment and exploitation
 
Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)
 
Seguridad en WordPress con WPHardening
Seguridad en WordPress con WPHardeningSeguridad en WordPress con WPHardening
Seguridad en WordPress con WPHardening
 
Kali linux v2_re_y_des
Kali linux v2_re_y_desKali linux v2_re_y_des
Kali linux v2_re_y_des
 
Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)
 
Lab1.4.5
Lab1.4.5Lab1.4.5
Lab1.4.5
 
Inyecciones SQL para Aprendices
Inyecciones SQL para AprendicesInyecciones SQL para Aprendices
Inyecciones SQL para Aprendices
 
Vulnerabilidad de paginas web
Vulnerabilidad de paginas webVulnerabilidad de paginas web
Vulnerabilidad de paginas web
 
Base de la infraestructura tecnica y proteccion de activos de informacion
Base de la infraestructura tecnica y proteccion de activos de informacionBase de la infraestructura tecnica y proteccion de activos de informacion
Base de la infraestructura tecnica y proteccion de activos de informacion
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 

Más de zekivazquez

Drupal Dev Days 2018 - Autopsy of Vulnerabilities
Drupal Dev Days 2018 - Autopsy of VulnerabilitiesDrupal Dev Days 2018 - Autopsy of Vulnerabilities
Drupal Dev Days 2018 - Autopsy of Vulnerabilitieszekivazquez
 
Security for Human Beings
Security for Human BeingsSecurity for Human Beings
Security for Human Beingszekivazquez
 
Information is Power
Information is PowerInformation is Power
Information is Powerzekivazquez
 
Hackea tu propia Harley
Hackea tu propia HarleyHackea tu propia Harley
Hackea tu propia Harleyzekivazquez
 
Seguridad para todos
Seguridad para todosSeguridad para todos
Seguridad para todoszekivazquez
 
DrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme ScalingDrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme Scalingzekivazquez
 
Drupal Extreme Scaling
Drupal Extreme ScalingDrupal Extreme Scaling
Drupal Extreme Scalingzekivazquez
 
Taller Drupal - Jornadas Software Libre UCA
Taller Drupal - Jornadas Software Libre UCATaller Drupal - Jornadas Software Libre UCA
Taller Drupal - Jornadas Software Libre UCAzekivazquez
 
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013zekivazquez
 

Más de zekivazquez (9)

Drupal Dev Days 2018 - Autopsy of Vulnerabilities
Drupal Dev Days 2018 - Autopsy of VulnerabilitiesDrupal Dev Days 2018 - Autopsy of Vulnerabilities
Drupal Dev Days 2018 - Autopsy of Vulnerabilities
 
Security for Human Beings
Security for Human BeingsSecurity for Human Beings
Security for Human Beings
 
Information is Power
Information is PowerInformation is Power
Information is Power
 
Hackea tu propia Harley
Hackea tu propia HarleyHackea tu propia Harley
Hackea tu propia Harley
 
Seguridad para todos
Seguridad para todosSeguridad para todos
Seguridad para todos
 
DrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme ScalingDrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme Scaling
 
Drupal Extreme Scaling
Drupal Extreme ScalingDrupal Extreme Scaling
Drupal Extreme Scaling
 
Taller Drupal - Jornadas Software Libre UCA
Taller Drupal - Jornadas Software Libre UCATaller Drupal - Jornadas Software Libre UCA
Taller Drupal - Jornadas Software Libre UCA
 
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Último (12)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

DrupalCamp Spain 2018: CSI, autopsia de vulnerabilidades

  • 1.
  • 2. Sobre mi ¿Qui´en soy? Ezequiel ”Zequi”V´azquez Desarrollo backend Sysadmin & DevOps Hacking & Seguridad Ponente en CONs desde 2013 Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 3. Sobre mi Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 4. ´Indice 1 Introducci´on 2 An´alisis de Vulnerabilidades 3 ¿Y si no parcheo? Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 5. ´Indice 1 Introducci´on 2 An´alisis de Vulnerabilidades 3 ¿Y si no parcheo? Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 6. La vida de un parche Etapas 1 Descubrimiento de vulnerabilidad → equipo seguridad 2 Implementaci´on de parche, publicaci´on de nueva versi´on 3 Hackers estudian parche con ingenier´ıa inversa → POC 4 Confirmaci´on POC → ataques masivos Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 7. Vale, yo parcheo, pero . . . Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 8. Vale, yo parcheo, pero . . . Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 9. ´Indice 1 Introducci´on 2 An´alisis de Vulnerabilidades 3 ¿Y si no parcheo? Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 10. Drupalgeddon 1 SA-CORE-2014-005 CVE-2014-3704 Parche publicado el 15 de Octubre de 2014 Inyecci´on SQL como an´onimo Afecta a Drupal 7.x anteriores a 7.32 25/25 en el ´ındice NIST Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 11. Drupalgeddon 1 Arrays en m´etodo HTTP POST El m´etodo POST env´ıa valores al servidor Generalmente, enteros o strings, pero tambi´en arrays Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 12. Drupalgeddon 1 Sanitizaci´on de consultas a BD Fichero includes/database/database.inc M´etodo expandArguments Consultas con condici´on “column IN (a, b, c, . . . )” Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 13. Drupalgeddon 1 Sanitizaci´on de consultas a BD Fichero includes/database/database.inc M´etodo expandArguments Consultas con condici´on “column IN (a, b, c, . . . )” Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 14. Drupalgeddon 1 Sanitizaci´on de consultas a BD Fichero includes/database/database.inc M´etodo expandArguments Consultas con condici´on “column IN (a, b, c, . . . )” Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 15. Drupalgeddon 1 La vulnerabilidad No se sanitiza correctamente el ´ındice del array La variable envenenada se pasa a la base de datos Resultado: Se puede inyectar SQL a discrecci´on Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 16. Drupalgeddon 1 La vulnerabilidad No se sanitiza correctamente el ´ındice del array La variable envenenada se pasa a la base de datos Resultado: Se puede inyectar SQL a discrecci´on Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 17. Drupalgeddon 1 Vamos a verlo Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 18. Drupalgeddon 2 SA-CORE-2018-002 CVE-2018-7600 Parche publicado el 28 de Marzo de 2018 Ejecuci´on remota de c´odigo como an´onimo Afecta a todas las versiones 24/25 en el ´ındice NIST Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 19. Drupalgeddon 2 Los render arrays En Drupal 4.7 se introdujo la Forms API Array cuyas claves comienzan por “#” En Drupal 7 se generaliz´o para renderizarlo todo Comportamiento recursivo Callbacks: post render, pre render, value callback, . . . Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 20. Drupalgeddon 2 Enviando formularios El valor enviado se almacena en #value M´etodo POST de HTTP permite valores de tipo array Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 21. Drupalgeddon 2 La vulnerabilidad Usamos POSTMAN o similar para saltarnos el formulario En un campo en el que se asume un string, se env´ıa un array El array enviado tiene ´ındices comenzando por “#” Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 22. Drupalgeddon 2 La vulnerabilidad Enga˜namos a Drupal para que re-renderice el campo mail Usamos la Ajax API para ello El campo se renderiza, y el post render se ejecuta Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 23. Drupalgeddon 2 Vamos a verlo Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 24. Drupalgeddon 3 SA-CORE-2018-004 CVE-2018-7602 Parche publicado el 25 de Abril de 2018 Ejecuci´on remota de c´odigo como autenticado Afecta a todas las versiones 20/25 en el ´ındice NIST Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 25. Drupalgeddon 3 El par´ametro destination Par´ametro GET que redirige a una URL tras finalizar ejecuci´on Se pasa por stripDangerousValues para sanitizarlo No detecta doble codificaci´on: “#” → “ %23” → “ %2523” Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 26. Drupalgeddon 3 El par´ametro destination Par´ametro GET que redirige a una URL tras finalizar ejecuci´on Se pasa por stripDangerousValues para sanitizarlo No detecta doble codificaci´on: “#” → “ %23” → “ %2523” La opci´on trigering element name Fichero includes/ajax.inc Identifica qu´e elemento se us´o para el env´ıo Marca un elemento de formulario para re-renderizar Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 27. Drupalgeddon 3 La vulnerabilidad: primer paso POST a la URL de un formulario de confirmaci´on trigering element name con valor form id en POST data Destination contiene un campo con post render envenenado La llamada POST redirige al formulario de confirmaci´on El payload debe ir codificado para URL Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 28. Drupalgeddon 3 La vulnerabilidad: primer paso POST a la URL de un formulario de confirmaci´on trigering element name con valor form id en POST data Destination contiene un campo con post render envenenado La llamada POST redirige al formulario de confirmaci´on El payload debe ir codificado para URL Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 29. Drupalgeddon 3 La vulnerabilidad: segundo paso Ejecutar como AJAX llamada POST a la acci´on de cancelar /file/ajax/actions/cancel/ %23options/path/[form build id] Ajax API procesa el formulario, y ejecuta el post render Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 30. Drupalgeddon 3 Vamos a verlo Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 31. ´Indice 1 Introducci´on 2 An´alisis de Vulnerabilidades 3 ¿Y si no parcheo? Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 32. Ataques “in the wild” No hag´ais esto en casa Extracci´on completa de base de datos Malware de minado de criptomonedas Servidor como proxy malicioso Infecci´on de usuarios Defacement / Black SEO ??? Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 33. En conclusi´on Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades
  • 34. Esto es todo, amigos... ¡Gracias! @RabbitLair ezequielvazq[at]gmail[dot]com Zequi V´azquez @RabbitLair CSI: Autopsia de Vulnerabilidades