lunes, abril 29, 2019

TIDoS Framework: Un proyecto para auditar webs desde la consola de comandos

Las aplicaciones web son suculentos objetivos para los cibercriminales que quieren entrar en tu empresa o en tu negocio, por ello cuando diseñemos y desarrollemos cualquier aplicativo web debemos tener la seguridad en mente en cada momento de su ciclo de vida. Una tarea muy importante es pasar las pertinentes pruebas de seguridad a todos los niveles que lleva la creación, puesta en marcha y mantenimiento de un servicio web.

Figura 1: TIDoS Framework: Un proyecto para auditar webs desde la consola de comandos

Como sabéis, el diseño de una aplicación debe estar en la fase de creación e implementación, como vimos en el artículo de "SecDevOps: Una explicación en cinco minutos" y llevar a cabo nuestro querido y necesario proceso de Ethical Hacking constantemente sacando el máximo partido de las técnicas de Hacking Web Technologies , ya sean Server-Side como son las vulnerabilidades de SQL Injection en aplicaciones web o los ataques Client-Side como XSS, CSRF, ClickJacking y similares.

Figura 2: Libro de Hacking Web Technologies escrito por Chema Alonso,
Pablo González, Ricardo Martín, Enrique Rando y Amador Aparicio

Para hacer esta segunda parte, es decir, para hacer las pruebas de Ethical Hacking, existen numerosas herramientas que nos ayudan en la tarea. De ellas hemos hablado y seguiremos hablando de muchos, pero hoy quiero hablar de TIDoS, que es un framework menos conocido.

Figura 3: TiDoS framework en GitHub

La herramienta se usa a través de una interfaz de texto intuitiva, en este framework se agrupan distintas funcionalidades destinadas a probar nuestras aplicaciones webs, además cuenta con módulos para hacer recolección información, tanto de manera pasiva, como activa.

Preparando nuestro equipo para usar TIDoS

Lo primero, antes de empezar a probar sus funciones, es instalar las dependencias y descargar la herramienta. Para trabajar aquí se hará uso de una versión de Kali Linux, tan útil para el pentesting, como siempre. Ejecutamos el siguiente comando:
sudo apt install libncurses5 libxml2 nmap tcpdump libexiv2-dev build-essential python-pip default-libmysqlclient-dev python-xmpp
Figura 4: Instalando dependencias para TIDoS en Kali Linux

Para continuar, descargamos TIDoS del repositorio de GitHub, ejecutando el siguiente comando:
git clone https://github.com/0xinfection/tidos-framework.git
A continuación, nos movemos al directorio de TIDoS y lo vamos a instalar. Para ello basta con ejecutar uno de sus ficheros:
chmod +x install; ./install
Se mostrará la siguiente pantalla, y al dar a la tecla Enter, empezará el proceso de la instalación. Pasado un rato no muy largo, tendremos que ver un mensaje por pantalla que nos diga que el proceso ha terminado: "Setup successful".

Figura 5: Instalando TIDoS en Kali Linux

Llegados al final de esta parte del proceso de la instalación,  ya está todo listo para empezar a probar el framework con aplicaciones web y ver qué se puede sacar de esta herramienta.

Haciendo uso de TIDoS

Ya podemos iniciar el framework. Para ello basta con poner tidos en una terminal y empezar a probarla. El uso es sencillo, cuenta con menús y números que tendremos que ir seleccionando, para testear las diferentes funcionalidades. Además tendremos que dar cierta información para que pueda realizar su trabajo correctamente configurando cada prueba.

Figura 6: Iniciando TIDoS y configurando el objetivo

El primer dato que introducir será el nombre de dominio FQDN o la dirección IP del objetivo. En nuestro caso es la dirección IP de una máquina de pruebas en la red local. Recuerda tener permisos o ser el propietario de la web a probar, no te metas en líos innecesarios por probar una herramienta. Eso sí, siempre puedes probar sitios Hacking Friendly.

Nada más iniciar, veremos menú inicial, que nos dará cinco opciones para comenzar a trabajar sobre nuestro objetivo, que son las siguientes que puedes ver a continuación:
  1. Reconnaissance & OSINT
  2. Scanning & Enumeration
  3. Vulnerability Analysis
  4. Explotiation (Beta)
  5. Auxiliary Modules
La opción de Exploitation se encuentra en fase beta y aún tiene que crecer, por lo que la obviaremos. El punto de los Auxiliary Modules tampoco se probará en esta primera toma de contacto. En este apartado se nos ofrecen opciones para generar hashes, hacer encodes de payloads o extraer metadatos de imágenes entre otras opciones.

La primera opción que vamos a elegir es hacer es un poco de Hacking con Buscadores usando Google que se encuentra en el punto 1 dentro de las opciones de OSINT. Ponemos el termino a buscar y limitamos el número de resultados (recomiendan no poner más de 30).

Figura 7: Buscando información sobre Chema Alonso

Existen muchas otras opciones, que te invito a investigar. Ahora pasamos al punto de Scanning & Enumeration, y probamos a usar un escáner de puertos del tipo Stealth, nos pide el rango de puertos y si queremos ponerlo en modo verbouse.

Figura 8: Configurando un scanner de puertos en modo stealth

Hace su función correctamente, aunque para estos casos sigo prefiriendo tirar de nmap como hace la gran mayoría de pentesters, que sus opciones son cuasi-infinitas. Pero siempre viene bien conocer alternativas. El resultado de esta prueba se muestra en la imagen siguiente.

Figura 9: Resultado del escaner en modo stealth

Toca pasar al punto de Vulnerability Analysis, y escanear en búsqueda de vulnerabilidades web en el objetivo. Dentro de la página Mutillidae II, proyecto de OWASP, se cuenta con un entorno con varias vulnerabilidades. Este objetivo nos puede servir como entorno perfecto de pruebas para ver cómo se comporta TIDoS.

Figura 10: Libro de Hacking Web Applications: Client-Side Attacks
(XSS, CSSP, SSRF, XSPA, SSJS) en 0xWord

En esta primera evaluación probamos la detección de los bugs de Clickjacking, dentro de los bugs básicos, y obtenemos el resultado que se ve en la imagen siguiente. Podemos guardar el código de la PoC que ha dado positivo en un fichero HTML.

Figura 11: Se ha detectado un código vulnerable a ClickJacking

Si pasamos a probar una de las vulnerabilidades críticas (XSS), para usar este módulo, tenemos que elegir entre dos modos, el automático o el manual, donde le pasamos la URL a probar.

Figura 12: Prueba de XSS manual positiva

Como se puede ver, al probar el payload se ha conseguido un valor positivo que habrá que probar en real a ver si es un falso positivo o de verdad es vulnerable - en este caso es vulnerable -.

PoC – Vídeo TIDoS

La mejor forma de conocer una herramienta es probarla, pero para abrir boca, otra opción que puede ayudar es ver un pequeño vídeo de la herramienta en acción. Aquí dejamos una pequeña PoC lanzando el módulo de XSS que acabamos de probar.

Figura 13: PoC: Prueba de XSS con TIDoS

Conclusión

TIDoS es una herramienta para tener en cuenta, y si te ánimas, ayudarla a crecer. Todavía tiene posibles mejoras, por ejemplo, a veces se queda pillada o entra en bucles infinitos y hay que tirar de CTRL+C y toca volver a empezar. Además, bajo mi punto de vista debería dar más información sobre los problemas que se va encontrando. Por ahora te regresa al menú y antes, durante un segundo ,muestra las excepciones, que se pueden ver en la imagen siguiente, por problemas de conectividad que se detectan con bloqueos de seguridad o fallos de red.

Figura 14: Error de conexión que se puede leer solo durante 1 segundo

Estaremos atentos a las actualizaciones, y seguiremos probando la herramienta, a ver si llegan mejoras y nuevas funcionalidades. Desde luego es un trabajo muy grande y hay que agradecer este tipo de proyectos y ayudarles a seguir creciendo, dando ideas, con críticas constructivas o haciendo Pull Requests a los proyectos (aunque éste actualmente no acepta). Desde aquí quiero felicitar a 0xInfection por dar vida a TIDoS.

¡Hasta la próxima!

Autor: Josué Encinar García (@JosueEncinar), autor del blog BoomerNiX y Security Researcher en  ElevenPaths y en el equipo de Ideas Locas de la unidad CDO de Telefónica.

No hay comentarios:

Publicar un comentario