Pedro Laguna Durán Microsoft Student Partner plaguna@informatica64.com Stop laughing! Javascript is...

Post on 03-Jan-2015

8 views 2 download

Transcript of Pedro Laguna Durán Microsoft Student Partner plaguna@informatica64.com Stop laughing! Javascript is...

Pedro Laguna DuránMicrosoft Student Partnerplaguna@informatica64.com

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/plaguna@informatica64.com

¡GRACIAS!