Proyecto integrador. Las TIC en la sociedad S4.pptx
Hacking a sistemas CMS
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 Seguridad en CMSs
9. Seguridad
Principios b´asicos
Seguridad en profundidad
M´ınimo privilegio
Eslab´on m´as d´ebil
Proporcionalidad
Participaci´on universal
Integraci´on ciclo de vida
Zequi V´azquez @RabbitLair Seguridad en CMSs
10. Seguridad en profundidad
El Abismo de Helm era inexpugnable. . .
Zequi V´azquez @RabbitLair Seguridad en CMSs
11. ¿Qu´e es un CMS?
Aplicaci´on web que permite . . .
Crear, administrar y publicar contenidos
Interfaz de f´acil uso
Versionado del contenido
Separaci´on en capas: dise˜no y contenido
Gesti´on de usuarios y roles
Zequi V´azquez @RabbitLair Seguridad en CMSs
15. Seguridad en CMS
A tener en cuenta
Componentes desactualizados o sobreescritos
M´odulos/plugins discontinuados
WPScan http://wpscan.org/
Drupal X-Ray http://www.drupalxray.com/
Vulnerabilidades de Wordpress https://wpvulndb.com/
Lista de CVEs de Drupal http://goo.gl/alFGYa
Lista de CVEs de Wordpress https://goo.gl/D1nZLg
Zequi V´azquez @RabbitLair Seguridad en CMSs
20. Recogida de informaci´on
Hazte con todos
Lo primero: recorrido manual por la aplicaci´on
Ingenier´ıa social (tel´efonos, correos corporativos, phishing)
Fichero robots.txt
Fichero sitemap.xml
“Fingerprint” de servidor, framework, versiones. . .
Crawlers, spiders, robots. . .
Herramientas autom´aticas: Burp, ZAP, Nikto2, w3af,
Accunetix
Mapeado de entradas de la aplicaci´on
Revisar foros de la comunidad, peticiones de ayuda y GitHub
Zequi V´azquez @RabbitLair Seguridad en CMSs
22. Recogida de informaci´on
Hacking con buscadores
Utilizaci´on de operadores avanzados del buscador.
site: Limitar la b´usqueda a un ´unico dominio
cache: Buscar en la cach´e de Google
inurl: Resultados que contienen un valor en la URL
ext:, filetype: Buscar ficheros con la extensi´on indicada
Zequi V´azquez @RabbitLair Seguridad en CMSs
23. Pruebas sobre servidor
Elemental, querido Watson
M´etodos HTTP permitidos (PUT, DELETE, TRACE)
M´odulos instalados en servidor e int´erprete
Configuraci´on de plataforma (Apache, PHP, MySQL. . . )
Revisar backups en el ´arbol web (*.sql, *.bak. . . )
Ficheros temporales de c´odigo fuente
Rastro del sistema de versionado (Git, SVN)
Esc´aner de puertos (Nmap)
Firewall/IDS/Web Application Firewall
Zequi V´azquez @RabbitLair Seguridad en CMSs
25. Gesti´on de identidad y autorizaci´on
El carn´e y los papeles, por favor
Definici´on de roles y permisos asignados
Elevaci´on de privilegios
Referencias inseguras
URLs abiertas al p´ublico
Enumeraci´on de cuentas de usuario
Ataques de fuerza bruta (All hail Hydra!)
Zequi V´azquez @RabbitLair Seguridad en CMSs
27. Autenticaci´on
Credenciales por canal inseguro (MitM, SSLStrip)
Pol´ıtica de contrase˜nas d´ebil
Recordar contrase˜nas: ¿se vuelve a enviar la pass?
Autenticaci´on mediante redes sociales
Segundo factor de autenticaci´on
Zequi V´azquez @RabbitLair Seguridad en CMSs
28. Gesti´on de la sesi´on
Duraci´on de la sesi´on
Gesti´on de cookies (cifrado, atributos httpOnly y Secure)
Robo de cookie de sesi´on = Robo de identidad
Cross Site Request Forgery
Zequi V´azquez @RabbitLair Seguridad en CMSs
29. Validaci´on de datos de entrada
Cross Site Scripting
SQL injection
Poluci´on de par´ametros HTTP
Valores de cookies
Inyecci´on de c´odigo
Subida de ficheros
Permisos de ejecuci´on
Zequi V´azquez @RabbitLair Seguridad en CMSs
30. Drupalgeddon
El santo grial
15 de octubre del 2014
Se publica la versi´on 7.32, parches de seguridad
Permite una inyecci´on SQL siendo usuario an´onimo
El reporte estuvo en el bug tracker 7 meses
Zequi V´azquez @RabbitLair Seguridad en CMSs
31. Gesti´on de errores
Exposici´on de c´odigos y textos de error
Exposici´on de trazas
Zequi V´azquez @RabbitLair Seguridad en CMSs
32. Denegaci´on de servicio
No liberaci´on de recursos
Almacenamiento de demasiada informaci´on en la sesi´on
Bloqueo de usuarios
Entrada de usuario en un bucle
Gesti´on de peticiones repetitivas (LOIC)
Zequi V´azquez @RabbitLair Seguridad en CMSs
34. M´as testing. . .
Criptograf´ıa d´ebil
Errores en l´ogica de
negocio
Tests en lado de cliente
Librer´ıas JavaScript
Endpoints AJAX
No solo web. . .
Zequi V´azquez @RabbitLair Seguridad en CMSs
36. Un vector de ataque simple
Detecci´on de XSS almacenado (filtro “Full HTML”)
Inyectar JS que env´ıa cookies a atacante (SOP, httpOnly)
Atacante inyecta cookie en su navegador
Zequi V´azquez @RabbitLair Seguridad en CMSs
37. Un vector de ataque simple
Activaci´on de m´odulo “PHP filter”
Modificar nodo para que use este filtro
Ejecutar comandos de sistema desde PHP (disable functions)
Lanzar shell reversa con netcat (cortafuegos saliente)
Zequi V´azquez @RabbitLair Seguridad en CMSs
38. Un vector de ataque simple
A partir de aqu´ı. . .
Escalado de privilegios para obtener root (CVE-2012-0809)
Persistencia del acceso
T´ecnica de pivoting: escanear red interna
¡En la imaginaci´on (y en el contrato) est´a el l´ımite!
Zequi V´azquez @RabbitLair Seguridad en CMSs
40. . . . ¡ojo con la interfaz silla-teclado!
Zequi V´azquez @RabbitLair Seguridad en CMSs
41. En resumen. . .
Objetivo del auditor: securizar
Defensa en todas las capas
Buenas pr´acticas
Mucha documentaci´on, ¡no hay excusa!
La importancia de la formaci´on
Zequi V´azquez @RabbitLair Seguridad en CMSs
43. Referencias
Securing your Drupal site
https://drupal.org/security/secure-configuration
Hardening Wordpress
http://codex.wordpress.org/Hardening WordPress
Damn Vulnerable Web Application
http://www.dvwa.co.uk
Aplicaciones web vulnerables para practicar
https://www.amanhardikar.com/mindmaps/Practice.html
The Hacker News
http://thehackernews.com/
Zequi V´azquez @RabbitLair Seguridad en CMSs
44. Esto es todo, amigos...
¡Gracias!
@RabbitLair
ezequielvazq[at]gmail[dot]com
Zequi V´azquez @RabbitLair Seguridad en CMSs