15

Click here to load reader

Samurai Web Testing Framework 2.0

Embed Size (px)

Citation preview

Page 1: Samurai Web Testing Framework 2.0

Alonso Eduardo Caballero QuezadaConsultor en Hacking Ético, Cómputo Forense & GNU/Linux

Sitio Web: http://www.ReYDeS.com

e-mail: [email protected]

Sábado 21 de Setiembre del 2013

Samurai Web Testing Framework 2.0

Page 2: Samurai Web Testing Framework 2.0

¿Quién Soy?

- Consultor e Instructor Independiente en Hacking Ético, Cómputo Forense y GNU/Linux.

- Ex Integrante de RareGaZz y actual integrante de PeruSEC.

- Ex Redactor en la Revista Linux+ DVD (ES).

- Creador del II Reto Forense Digital Sudamericano - Chavin de Huantar 2012.

- Brainbench Certified Network Security, Brainbench Certified Computer Forensics (U.S.) & Brainbench Certified Linux Administration (General). CNHE, CNCF, CNHAW.

- Más de 10 años de experiencia en el área.

- Twitter: @Alonso_ReYDeS

- LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada/

- Sitio Web: http://www.reydes.com

Page 3: Samurai Web Testing Framework 2.0

Samurai Web Testing Framework

Es un entorno Linux “Vivo” basado en Ubuntu, el cual ha sido configurado previamente para funcionar como un entorno orientado a realizar Pruebas de Penetración Web.

El DVD contiene lo mejor de las herramientas libres y open source, las cuales están orientadas a evaluar y atacar sitios web.

En el desarrollo del entorno, los creadores han basado la selección de herramientas en aquellas que utilizan en sus trabajos.

Cuenta con más de 100 herramientas, extensiones, y scripts, entre los cuales se incluyen:

W3af (Open Source Web Application Security Scanner), BeEF (Browser Exploitation Framework)OWASP WebScarabOWASP ZAP (Zed Attack Proxy)OWASP DirBuster CeWL (Custom Word List generator)SQLmap, Nmap, Nikto2, Metasploit Framwork, etc.

* Samurai WTF 2.0 - http://www.samurai-wtf.org/

Page 4: Samurai Web Testing Framework 2.0

Características de Samurai WTF 2.0

SamuraiWTF 2.0, es una reconstrucción completa de esta distribución orientada a Pruebas de Penetración Web.

Incluye KDE, Gnome y Unity.

Duplica el número de herramientas de su antecesor.

Ahora todas las herramientas pueden ser accedidas en el $PATH.

El objetivo es mover todo el software y configuraciones a paquetes de Debian.

Actualizar todas las herramientas unicamente con el comando “sudo apt-get upgrade”.

La capacidad de añadir herramientas de SamuraiWTF a cualquier distribución Ubuntu/Debian editando el archivo “/etc/apt/sources.list”.

Facilitar la colaboración dentro del equipo de desarrollo.

* SourceForge / Samurai - http://sourceforge.net/projects/samurai/files/

Page 5: Samurai Web Testing Framework 2.0

¿Qué es una Aplicación Web?

Diariamente se interactua con aplicaciones web, como por ejemplo. Google, Facebook, Youtube, Outlook, o Wikipedia.

Una Aplicación Web se define como aquella que puede ser accedida mediante el Protocolo de Transferencia de HiperTexto (HTTP). Por lo tanto, la esencia del Hacking a las Aplicaciones Web consiste en manipular las aplicaciones web vía HTTP. Existen tres manera de realizar esto:

1. Manipulando directamente la aplicación web mediante una interfaz web gráfica.

2. Manipular con el URI (Identificador Uniforme de Recursos).

http://servidor/carpeta/aplicacion?parametro1=ABC&parametro2=456

3. Manipular con los elementos HTTP no contenidos en la URI.

- Métodos, Cabeceras, Cuerpo- Recursos- Autenticación, sesión, y Autorización, etc.

Page 6: Samurai Web Testing Framework 2.0

¿Porqué Atacar Aplicaciones Web?

Las motivaciones son numerosas. Existen características de las aplicaciones web que la hacen atractivas para los atacantes. Al entender estos factores se tendrá una perspectiva más clara sobre cuales son las defensas necesarias a aplicar para minimizar el riesgo.

1. Ubicuidad: Las Aplicaciones Web está en todos lados en la actualidad y continuarán esparciéndose entre redes públicas y privadas.

2. Técnica sencilla: Las técnicas son sencillas y se comprenden con facilidad, debido a que mayormente están basadas en texto. Esto hace la manipulación de las aplicaciones web algo trivial.

3. Anonimato: Internet sigue siendo una región con algo de anonimato en la actualidad, y es sencillo lanzar ataques con poco temor de ser rastreado.

4. Evasión de Firewalls: HTTP/S generalmente es permito de pasar las políticas del firewall, esta no es una vulnerabilidad en el firewall, es una política configurada por el administrador.

5. Código personalizado: Con la proliferación de plataformas web fácilmente accedibles como ASP.NET y LAMP, la mayoría de aplicaciones web son ensamblados por desarrolladores con poca experiencia.

Page 7: Samurai Web Testing Framework 2.0

¿Cómo se Atacan las Aplicaciones Web?

Existen numerosas herramientas que permiten realizar esta tarea y la mayoría de ellas son gratuitas. Cada uno de las herramientas puede ser obtenidas por separado, instaladas y configuradas a gusto personal.

Las herramientas se pueden agrupar en ciertas categorías, por ejemplo:

1. Navegador Web: Mozilla Firefox, Google Chrome, Internet Explorer.

2. Extensiones para el Navegador: Mozilla Firefox (TamperData, FireBug, Cookie Manager+), Internet Explorer. (TamperIE, IR Headers)

3. Proxies HTTP: OWASP WebScarab, OWASP ZAP, Burp Suite.

4. Herramientas en Línea de Comando: cURL, wget, netcat, bash.

5. Scanners App Web:: Nikto2, Arachni, w3af, uniscan.

Page 8: Samurai Web Testing Framework 2.0

Vulnerabilidades más Comunes en App Web

¿Qué es lo que típicamente buscan los atacantes cuando evalúan una aplicación web?. Los problemas son usualmente copiosos, pero pueden reunirse en algunas pocas categorías.

“Open Web Application Security Project” - OWASP ha realizado un gran trabajo en documentar con un consenso general las vulnerabilidades de seguridad en aplicaciones web más críticas.

Es muy interesante su “Top Ten Project”, el cual proporciona una lista regularmente actualizada de los temas de seguridad en aplicaciones web.

Los ejemplos que se expondrán a continuación detallan algunas de estas categorías de OWASP.

1. Cross-Site Scripting (XSS)

2. Injection Flaws (i)

3. Cross-Site Request Forgery (CSRF)

* OWASP - http://www.owasp.org

Page 9: Samurai Web Testing Framework 2.0

Cross Site Scripting

Los ataques Cross-Site Scripting recaen en la deficiencias de validación de entrada / salida en aplicaciones web. Sin embargo, a diferencia de otros tipos de ataque, el objetivo del XSS no es la aplicación en si misma, sino los otros usuarios de la aplicación vulnerable.

Por ejemplo, un usuario malicioso puede publicar un mensaje en una aplicación web “Libro de visitantes” con un contenido ejecutable. Cuando otro usuario visualice este mensaje, el navegador interpretará el código y lo ejecutará, dando control al atacante sobre el sistema del segundo usuario. Por lo tanto la carga de un ataque XSS afecta típicamente la aplicación del usuario final.

Un XSS adecuadamente ejecutado puede ser devastador de una aplicación web , como también en la reputación de la organización. Un XSS puede generar el secuestro de cuentas y sesiones o robo de cookies.

OWASP describe con buen detalle técnico los ataques XSS.

* XSS OWASP - https://www.owasp.org/index.php/XSS

Page 10: Samurai Web Testing Framework 2.0

Sql Injection

Las aplicaciones web modernas confían en contenidos dinámicos. Esto se logra recuperando datos actualizados desde una Base de Datos o un servicio externo. En respuesta a una petición para una página web, la aplicación generará una consulta, algunas veces incorporando porciones de la petición dentro de la consulta.

Si la aplicación no es cuidadosa en la forma como se construye la consulta, un atacante puede alterar la consulta, modificando como esta es procesada por el servicio externo.

Estas fallas de inyección pueden ser devastadoras, ya que el servicio algunas veces confía completamente en la aplicación web, y casi siempre escondido “a salvo” detrás de algunos firewalls.

Una de las plataformas más populares para almacenar datos web es SQL, y muchas aplicaciones web están basadas completamente en scripts front-end que simplemente consultan una base de datos SQL, ya sea en el mismo servidor web o en un sistema back-end separado.

* SQL Injection OWASP - https://www.owasp.org/index.php/SQL_Injection

Page 11: Samurai Web Testing Framework 2.0

Sql Injection (Cont.)

Una de las mecanismos más eficientes para realizar esto es la técnica denominada SQL Injection. Mientras que las fallas de inyección afectan cualquier tipo de dispositivos externos, SQL Injection es de lejos la más prevalente y popular de las fallas.

Una SQL Injection se relaciona al ingreso en bruto de consultas SQL dentro de una aplicación para realizar un acción inesperada. Algunas veces, las consultas existentes son simplemente editadas para lograr los mismos resultados – SQL es fácilmente manipulable por la ubicación de incluso un solo carácter en un lugar seleccionado con acierto, causando que toda la consulta se comporte de manera bastante maliciosa. Algunos de estos caracteres utilizados comúnmente para estos ataques de validación de ingreso incluyen la comilla simple ('), doble guión (--), y el punto y coma (;). Todos estos con un especial significa en SQL.

OWASP describe con buen detalle técnico los ataques SQL Injection.

* SQL Injection OWASP - https://www.owasp.org/index.php/SQL_Injection

Page 12: Samurai Web Testing Framework 2.0

Cross Site Request Forgery

Las vulnerabilidades CSRF se conocen desde hace una década, pero recientemente se han reconocido como un tema bastante serio.

El concepto detrás de un CSRF es sencillo: una aplicación web proporciona a los usuarios una autenticación de sesión persistente, de esta manera no hay necesidad de autenticarse nuevamente cada vez que se solicita una página. Pero si un atacante puede convencer al navegador web del usuario a enviar una petición a un sitio web, puede tomar ventaja de la sesión persistente para realizar acciones en lugar de la víctima. El resultado es una variedad de situaciones: cambio de contraseña de una cuenta, transferencia de dinero, compra de mercancía, y más.

Un CSRF es fácil de explotar. Un atacante inserta una etiqueta “image” dentro de una página web, cuando la víctima carga la pagina, su navegador enviará la petición GET para cargar en enlace insertado en esta etiqueta.

OWASP describe con buen detalle técnico los ataques CSRF.

* CSRF OWASP - https://www.owasp.org/index.php/CSRF

Page 13: Samurai Web Testing Framework 2.0

¿Preguntas?

.

Page 14: Samurai Web Testing Framework 2.0

Demostraciones

Es momento de realizar algunas demostraciones prácticas.

Page 15: Samurai Web Testing Framework 2.0

Alonso Eduardo Caballero QuezadaConsultor en Hacking Ético, Cómputo Forense & GNU/Linux

Sitio Web: http://www.ReYDeS.com

e-mail: [email protected]

Sábado 21 de Setiembre del 2013

¡Muchas Gracias!