pedro laguna durán microsoft student partner [email protected] stop laughing! javascript is...
TRANSCRIPT
Pedro Laguna DuránMicrosoft Student [email protected]
Stop laughing!Javascript is cool now.
Agenda• Breve historia del Javascript• El Javascript en la actualidad• Hacking2.0– Robo de sesiones– Escaneo de intranets– Robo del historial de navegación– Gusanos XSS
Breve historia del Javascript• Lo que conocemos como Javascript es un lenguaje
llamado ECMAScript, creado a partir del Javascript desarrollado por Netscape para su navegador y el Jscript que creo Microsoft para Internet Explorer
• Primera versión en marzo de 1996, para Netscape 2.0, en agosto del mismo año soporte en Internet Explorer 3.0 para JScript 1.0
• Permite la ejecución de código en el contexto del navegador para interactuar con el DOM (Documento Objeto Modelo) de la pagina
• Al ejecutarse en el contexto del cliente permite una primera validación de los datos introducidos en los formularios
• Con solo esto para ofrecer… los programadores no se tomaban muy en serio al Javascript
El Javascript en la actualidad• La API XMLHttpRequest desarrollada inicialmente por
Microsoft en 2000 como parte de su Outlook Web Access ha revolucionado la forma en la que las personas interactúan con las paginas web
• Diferentes implementaciones de los principales navegadores web han dado lugar a que en la actualidad se intente estandarizar su funcionamiento por parte de la W3C
• Su uso en las paginas web se considera como parte del fenómeno llamado Web2.0
• Llamadas asíncronas (¡y síncronas!) que hace el navegador de forma transparente al usuario para hacer mas cómoda su experiencia final
• Diversas consideraciones de seguridad hacen que no sea la herramienta perfecta para el robo de sesiones
Hacking2.0• “Buffer overflow is the past, XSS is the
future”• XSS (Cross Site Scripting) es una técnica
que nos permite ejecutar código en el contexto del navegador de la victima
• Comunidades online y demás sitios que permiten una gran personalización son propensas a tener este tipo de fallos, aunque no son las únicas
• Si conseguimos insertar un código Javascript malicioso podemos comprometer la seguridad de la aplicación web
Robo de sesiones• Cuando nos logamos el servidor nos
asocia un numero identificativo único, la sesión
• La sesión nos permite demostrar que somos un usuario legitimo sin tener que escribir nuestra contraseña en cada pagina a la que naveguemos
• Si logramos la sesión de otro usuario podremos navegar usurpando su identidad sin necesidad de conocer su clave
DEMO
Escaneo de intranets• Conocer la infraestructura interna de
una empresa puede ser interesante para planificar un ataque
• La gran mayoría de los firewalls no bloquean el trafico HTTP
• Al navegar desde una red interna las IPs de clase A, B y C son accesibles
• ¿Y si usamos Javascript para que nos analice la topología de la red?
Escaneo de intranets
Usuario
HTTP
SSH
FTP
JavascriptScanner
Atacante
DEMO
Robo del historial de navegación• Conocer los hábitos de los usuarios nos
ayudara a planificar mejores ataques y poder causar aun mas daño
• Si conocemos fallos de seguridad en varias paginas, usando esta técnica podríamos intentar usar una sesión no cerrada por parte de un usuario para realizar acciones malintencionadas
• Haciendo uso de Javascript y mezclándolo con un poco de CSS podemos lograr conocer que URLs ha visitado un usuario
DEMO
Gusanos XSS• Nueva y devastadora forma de ataque que
tiene por objetivo las comunidades online con gran capacidad de personalización como MySpace o Facebook
• Usando Javascript son capaces de auto replicarse e infectar a otros usuarios del mismo sistema
• Son capaces de provocar una denegación de servicios a la pagina infectada, generando miles de peticiones por segundo y bloqueando el servidor
Gusanos XSS• El gusano más famoso es el llamado Samy Worm• Infecto MySpace el 4 de octubre de 2005 y en menos de 24
horas genero tal cantidad de trafico que los responsables del servicio se vieron obligados a dejar de dar servicio a sus usuarios
• Usa técnicas de ofuscación para evitar los filtros antiXSS creados por los programadores de MySpace
• Apenas ocupa 4Kb, gracias a las técnicas de compresión que uso su creador
• El gusano hacia básicamente tres cosas:– Copiarse en la pagina del usuario infectado para infectar a
otras personas– Agregar como amigo del usuario infectado al creador del
gusano– Añadir un texto en el perfil infectado con el mensaje “but most
of all, samy is my hero”
DEMO
Referencias• Blog de RSnake [http://ha.ckers.org/]• Blog de pdp [http://www.gnucitizen.org/]• Blog de Jeremiah Grossman
[http://jeremiahgrossman.blogspot.com/]• Writing an XSS worm
[http://kuza55.blogspot.com/2006/03/writing-xss-worm.html]
• Detecting, Analyzing, and Exploiting Intranet Applications using JavaScript [http://www.spidynamics.com/assets/documents/JSportscan.pdf]
• Samy worm [http://namb.la/popular/]• Javascript en Wikipedia
[http://en.wikipedia.org/wiki/Javascript]• Hacking Intranet Websites from the Outside (Take 2)
[http://www.whitehatsec.com/home/assets/presentations/blackhatusa07/0807blackhat_hacking.pdf]
http://www.equilibrioinestable.com/[email protected]
¡GRACIAS!