POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Samurai Web Testing Framework 2.0
1. Alonso Eduardo Caballero Quezada
Consultor en Hacking Ético, Cómputo Forense & GNU/Linux
Sitio Web: http://www.ReYDeS.com
e-mail: ReYDeS@gmail.com
Sábado 21 de Setiembre del 2013
Samurai Web Testing
Framework 2.0
2. ¿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
3. 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 WebScarab
OWASP 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/
4. 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/
5. ¿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¶metro2=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.
6. ¿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.
7. ¿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.
8. 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
9. 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
10. 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
11. 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
12. 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