Representantes de la empresa cordobesa "Proxy Consulting" (Miguel Ángel Arroyo y Carlos García) nos ofrecen un instructivo e intesantísimo taller sobre hacking ético.
IES Gran Capitán. Sysmana04.
3. Presentación
Consultoría cordobesa especializada
en seguridad de la información
Desde 2006
www.proxyconsulting.es
Blog: www.hacking-etico.com
www.proxyconsulting.es
4. Algunos de nuestros servicios:
Hacking Ético Externo
Seguridad Perimetral
Hacking Ético Web
Aula Segura
Oficina Segura
www.proxyconsulting.es
6. Índice – Hacking Ético Web
OWASP
OWASP Top 10
Demostración ataques
Inyección SQL
Cross Site Scripting
Manipulación cabeceras HTTP y POST
Robo de credenciales*
Aplicación web segura
Programación segura
WAF
www.proxyconsulting.es
7. OWASP
Open Web Application Security Project (2001)
Determinar y combatir las causas que hacen que
el software sea inseguro
Fundación (2004) / Comunidad
Documentos
Herramientas
www.owasp.org
www.proxyconsulting.es
8. OWASP Top 10
“Los diez riesgos más importantes en
Aplicaciones Web”
Documento educativo. De cada riesgo:
Descripción del mismo
Escenario de ejemplo
Cómo verificar si nuestra aplicación es
vulnerable
Recomendaciones para prevenirlo
Gratuito
www.proxyconsulting.es
12. Demostración de ataques
SQLi
XSS
Manipulación datos HTTP
Robo de credenciales*
www.proxyconsulting.es
13. Inyección SQL
Incluir comandos mal intencionados en los datos
de una aplicación los cuales son enviados a un
interprete
El intérprete toma estos datos y los ejecuta como
válidos: código SQL
Impacto Severo
Pérdida o corrupción de datos
Negación de acceso
Toma de posesión completa del servidor
www.proxyconsulting.es
14. Inyección SQL
"SELECT * FROM usuario WHERE
email='".$_POST['log']."'
AND
password='".$_POST['pwd']."'";
www.proxyconsulting.es
15. Inyección SQL
"SELECT * FROM usuario WHERE
email='".$_POST['log']."'
AND
password='".$_POST['pwd']."'";
"SELECT * FROM usuario WHERE
email='i52gagac@uco.es'
AND
password='password'";
www.proxyconsulting.es
16. Inyección SQL
"SELECT * FROM usuario WHERE
email='".$_POST['log']."'
AND
password='".$_POST['pwd']."'";
Usuario: ' OR '1'='1
Password: ' OR '1'='1
www.proxyconsulting.es
17. Inyección SQL
"SELECT * FROM usuario WHERE
email='".$_POST['log']."'
AND
password='".$_POST['pwd']."'";
Usuario: ' OR '1'='1
Password: ' OR '1'='1
www.proxyconsulting.es
18. Inyección SQL
"SELECT * FROM usuario WHERE
email='".' OR '1'='1."'
AND
password='".' OR '1'='1."'";
Usuario: ' OR '1'='1
Password: ' OR '1'='1
www.proxyconsulting.es
19. Inyección SQL
"SELECT * FROM usuario WHERE
email='' OR '1'='1'
AND
password='' OR '1'='1'";
Sentencia correcta y verdadera
www.proxyconsulting.es
20. Cross Site Scripting (XSS)
Datos no validados de un atacante son enviados al
navegador de una víctima
Estos datos pueden estar:
Encontrarse almacenados en una base de datos
Ser reflejados desde una entrada web
Impacto moderado:
Robo de sesión
Robar datos sensibles
Redireccionar usuario hacia sitio de malware o phising
www.proxyconsulting.es
21. Manipulación cabeceras HTTP
Testear aplicaciones modificando parámetros POST
Validación en lado del cliente en lugar del servidor
www.proxyconsulting.es
22. Aplicación web segura
Seguridad debe estar presente en todas las fases del
proyecto
Diseño y programación segura
Auditoría de seguridad
WAF
www.proxyconsulting.es
23. Programación segura
Buenas prácticas a la hora de programar: OWASP Top
10
Sanitizar previamente entradas del usuario
OWASP Enterprise Security API
OWASP AntiSamy Project
Mínimo privilegio en las conexiones a base de datos
Validar referencias directas a objetos
www.proxyconsulting.es
24. OWASP Enterprise Security API
API con objetos y métodos que permiten validaciones y
controles eficientes.
Evitar vulnerabilidades comunes
Versiones para la mayoría de lenguajes de
programación web:
ASP.NET, Java, PHP, ColdFusion, Javascript, Ruby,
Pytho, etc.
www.proxyconsulting.es
26. ESAPI – Manejo de validación y Codificación
www.proxyconsulting.es
27. WAF
Entradas -> Código en servidor
Sanitizar todas las entradas -> Costoso
modSecurity:
Plugin para servidor
Sólo disponible en Apache
PHPIDS:
IDS para aplicaciones PHP
Reglas
Libertad toma decisiones
www.proxyconsulting.es
28. PHPIDS
Utilización de IDS Web: PHPIDS
Paso por PHPIDS de peticiones:
SESSION
POST
GET
COOKIE
Detecta XSS, SQLi, RFE, LFI, DoS, LDAP, etc.
Medidas planteadas:
Si existe grado de amenaza: redirección a web con aviso
Si no existen amenaza: continuar script PHP
Demostración
www.proxyconsulting.es
31. Índice
Buscadores como herramienta para Pentesters
Direcciones de correo
Archivos y carpetas con información sensible
Metadatos (Foca online)
Usuarios y contraseñas
Search Engine Hacking
Google
Bing
Shodan
www.proxyconsulting.es
32. Buscadores como herramienta
Herramienta de gran utilidad para la fase de
obtención de información.
Se trata de un proceso pasivo y poco intrusivo.
Pasivo porque no existe comunicación directa con el
objetivo (posibilidad de usar versiones cacheadas).
Poco intrusivo porque no hay consecuencias directas
tras la búsqueda.
Obtenemos direcciones de correo electrónico,
archivos, metadatos, usuarios y contraseñas.
www.proxyconsulting.es
33. SEH con Google
Google indexa todo lo que hay en la red, salvo
aquello que nosotros no “queremos” que se indexe,
robots.txt.
Potentes comandos de búsqueda muy útiles para el
Hacking Ético.
Uso de versiones cacheadas para mantener la
pasividad.
Ruido documental; cómo reducirlo.
www.proxyconsulting.es
36. SEH con Google - MySQL
Una de las búsquedas más usadas es la de localizar
servidores MySQL.
Es bastante sencillo sabiendo usar las frases claves
apropiadas, y reduciendo el ruido documental.
“welcome to phpmyadmin” “your mysql server is
running” –”not allowed”
Contramedida: evitar indexación del directorio
/phpmyadmin con la cláusula disallow en nuestro
fichero robots.txt.
Más información en www.hacking-etico.com.
www.proxyconsulting.es
37. SEH con Bing – Direcciones correo
Bing tiene ciertos comandos que Google no tiene,
por ejemplo el comando near.
Nos puede venir muy bien para encontrar
direcciones de correo electrónico.
Los resultados de búsqueda varían cuando se usa el
comando near para buscar direcciones: correo near:3
ayuncordoba.es.
Conseguimos mejor resultados.
www.proxyconsulting.es
38. SEH con Bing – Direcciones correo
www.proxyconsulting.es
39. SEH con Bing – Dominios por IP
Otro comando muy interesante es el comando ip,
que nos muestra todos los dominios que apuntan a
una determinada ip.
Nos puede ayudar a encontrar nuevos dominios y
subdominios que apuntan a dicha ip,
¿virtualhosts?
Con los resultados podemos ampliar el scope
(alcance) de la auditoría. Ejemplo con ayuncordoba.es
(195.57.42.107).
Aparecen nuevos dominios y subdominios.
www.proxyconsulting.es
40. SEH con Bing – Dominios por IP
www.proxyconsulting.es
41. SEH con Shodan – Recursos
Buscador orientado a buscar otros recursos en
Internet que no son documentos; routers, puntos
de acceso, servidores, cámaras ip…
Herramienta realmente interesante desde el punto
de vista del pentester.
Servicio gratuito pero limitado. Registro gratuito
aumenta resultados de búsqueda y filtros (net, port,
country, city, geo...). Opción de pago.
Por ejemplo, podemos buscar dispositivos con snmp.
www.proxyconsulting.es
43. SEH con Shodan – Geo y cámaras IP
Shodan cuenta con unos filtros muy interesantes
que son country y city. Éste último sólo funciona
con ciudades grandes, por ejemplo, con Córdoba
no funciona. Pero tenemos el filtro geo…
Podemos usar las coordenadas de Córdoba, en
formato decimal, para especificar que se busquen
recursos sólo de Córdoba.
Usaremos el filtro geo:37.884722,-4.778889.
Veamos un ejemplo buscando cámaras IP en Córdoba.
www.proxyconsulting.es
44. SEH con Shodan – Geo y cámaras IP
www.proxyconsulting.es
45. Recuerda
Que Google no sólo sirve para buscar documentos
o sitios Web.
Que hay otros buscadores, como Bing, que nos
pueden aportar otros resultados interesantes, que
Google no nos da.
Que Shodan nos permite encontrar recursos
hardware, como servidores, routers, impresoras…
Y que uséis lo aprendido aquí de forma ética y
legal.
www.proxyconsulting.es