Siempre es una buena idea que un atacante sepa dónde se utiliza normalmente un WAF en una red antes de empezar a tomar huellas digitales.
Los encargados de las pruebas de penetración deben ser conscientes de la existencia de un WAF antes de iniciar una intervención en una aplicación web, ya que el resultado de sus asaltos puede verse afectado.
Pero antes…
¿Qué es un WAF?
Los WAF(Web Application Firewall ) desempeñan un papel importante en la seguridad de los sitios web. Filtran y supervisan el tráfico. Los cortafuegos de aplicaciones web proporcionan protección contra los principales fallos. Muchas organizaciones están modernizando su infraestructura para incluir cortafuegos de aplicaciones web. Según los expertos en hacking ético, los cortafuegos de aplicaciones web no pueden solucionar los problemas de seguridad por sí solos; se requiere una configuración adecuada para reconocer y bloquear las amenazas externas.
Un WAF se diferencia de un cortafuegos tradicional en que puede filtrar el contenido de aplicaciones en línea específicas, mientras que los cortafuegos tradicionales actúan como una barrera de seguridad entre servidores.
Una interacción HTTP se somete a un conjunto de reglas. Estas reglas abordan vulnerabilidades típicas como el cross-site scripting y la inyección SQL en general.
Existen muchas herramientas gratuitas y de código abierto en Internet que pueden descubrir los cortafuegos que hay detrás de las aplicaciones web.
Y en este artículo, veremos los enfoques y herramientas que se pueden utilizar para descubrir un WAF.
Nota: En este tutorial, he utilizado mi propio sitio para enumerar los detalles. No realice escaneos ni otras actividades de pirateo en ningún sitio web sin el permiso previo del propietario.
Descubrimiento manual
Detección mediante TELNET
Telnet es utilizado principalmente por administradores de red y probadores de penetración. Telnet le permite conectarse a hosts remotos a través de cualquier puerto, como se ha indicado anteriormente.
- Los cortafuegos de aplicaciones web suelen dejar (o insertar) parámetros HTTP en las cabeceras de respuesta.
- Telnet se puede utilizar para obtener información básica de recopilación, como el servidor y las cookies utilizadas en la toma de huellas dactilares.
- Escriba
Telnet Targetwebsite.com 80
root@escritor: # telnet Targetwebsite.com 80
Intentando 18.166.248.208...
Conectado a Targetwebsite.com.
El carácter de escape es '^]'.
Después de ejecutar el comando anterior, escriba HEAD / HTTP / 1.1
y pulse la tecla intro.
root@escritor: # telnet 18.166.248.208 80
Intentando 18.166.248.208...
Conectado a 18.166.248.208.
El carácter de escape es '^]'.
HEAD / HTTP/1.1
Host: 18.166.248.208
HTTP/1.1 200 OK
Date: SUN, 10 Oct 2021 05:08:03 IST
Servidor: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0
Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/
Caduca: Thu, 19 Nov 1981 08:52:00 IST
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Barniz X: 4723782781
Edad: 0
Via 1.1 barniz
Conexión: close
Tipo de contenido: text/html
Conexión cerrada por el host extranjero.
Indica el servidor en el que está alojado el sitio web y el idioma back-end en el que se creó tras utilizar telnet en el puerto 80 de destino.
Algunos sistemas WAF permiten modificar la cabecera y también pueden hacer que el servidor web envíe respuestas HTTP diferentes de las estándar.
Como se muestra en el resultado anterior, el servidor web respondió a nuestra solicitud y reveló que el cortafuegos/pasarela de borde era Varnish.
Descubrimiento automatizado
#1. Detección mediante NMAP
Nmap, que tiene un script que puede identificar un cortafuegos de aplicación web, también puede utilizarse para este propósito.
- Nmap es una herramienta de evaluación de seguridad que muchos pen-testers y administradores de red utilizan habitualmente.
- Nmap se utiliza para obtener información sobre el objetivo.
- El script se ejecutó contra la misma página web que antes
- Escriba el comando
nmap -script=http-waf-fingerprint targetweb.com
root@writer:# nmap --script=http-waf-fingerprint targetwebsite.com
Iniciando Nmap 7.90 ( https://nmap.org ) en 2021-10-10 07:58 IST
Informe de escaneo Nmap para targetsite.com (18.166.248.208)
El host está activo (latencia de 0,24 s).
No se muestra: 982 puertos filtrados
PUERTO ESTADO SERVICIO
53/tcp dominio abierto
80/tcp abierto http
| http-waf-fingerprint:
| WAF detectado
| Citrix Netscaler
443/tcp abierto https
5432/tcp cerrado postgresql
8080/tcp cerrado http-proxy
Nmap realizado: 1 dirección IP (1 host arriba) escaneada en 25,46 segundos
Tras utilizar el comando Nmap anterior, se detectó el cortafuegos Citrix Netscaler.
#2. Detección mediante Whatwaf
Whatwaf es una herramienta de seguridad para tomar huellas dactilares de aplicaciones web y detectar la presencia de cualquier WAF. Esta herramienta es útil para determinar si una aplicación web está protegida por un WAF durante las evaluaciones de seguridad.
Si este es el caso, las estrategias de elusión y evasión pueden ser útiles para seguir probando o explotando la aplicación en línea.
La evasión de cortafuegos, la detección de aplicaciones, la huella digital de aplicaciones y la identificación de software son usos frecuentes de WhatWaf. Red
Pen-testers y profesionales de la seguridad son los usuarios previstos de este programa.
¿Cómo instalar WhatWaf?
Instalación en Kali-Linux
sudo apt install python3-pip
git clone https://github.com/ekultek/whatwaf
cd whatwaf
sudo pip3 install -r requisitos.txt
En el lanzamiento, sin una versión de Python, podemos especificar fácilmente un archivo ejecutable:
./whatwaf --help
Sin embargo, debido a que no instalamos las dependencias de Python 2, se aconseja que proporcione específicamente la versión de Python.
python3 ./whatwaf --help
Uso de la herramienta
La herramienta de detección de cortafuegos Whatwaf es muy fácil de usar Sólo tenemos que ejecutar el siguiente comando
./whatwaf -u https://www.targetsite.com
Como puede ver a continuación, esta herramienta detectó el cortafuegos para la URL del sitio web proporcionado.
¡Recordatorio! – He utilizado mi propio sitio para el escaneo
┌──(root💀kali)-[/home/escritor/WhatWaf]
└─# ./whatwaf -u https://www.renjith.org
,------.
' .--. '
,--. .--. ,--. .--.| | | |
| | | | | | | |'--' | |
| | | | | | | | __. |
| |.'.| | | |.'.| | | .'
| | | | |___|
| ,'. |hat| ,'. |af .---.
'--' '--' '--' '--' '---'
/><script>alert("¿QuéWaf?<|>v2.0.3($dev)");</script>
[11:12:34][ERROR] debe instalar psutil primero `pip install psutil` para iniciar la minería XMR
[11:12:34][INFO] comprobando actualizaciones
[11:12:34][WARN] se recomienda encarecidamente utilizar un proxy cuando utilice WhatWaf. hágalo pasando la bandera proxy (IE `--proxy http://127.0.0.1:9050`) o pasando la bandera Tor (IE `--tor`)
[11:12:34][INFO] utilizando User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)'
[11:12:34][INFO] utilizando payloads por defecto
[11:12:34][INFO] probando la conexión a la URL de destino antes de iniciar el ataque
[11:12:35][SUCCESS] conexión exitosa, continuando
[11:12:35][INFO] ejecutando aplicación web única 'https://www.renjith.org'
[11:12:35][WARN] la URL no parece tener una consulta (parámetro), esto puede interferir con los resultados de la detección
[11:12:35][INFO] tipo de solicitud: GET
[11:12:35][INFO] recopilando respuestas HTTP
[11:12:42][INFO] recopilando respuesta normal para comparar con ella
[11:12:42][INFO] cargando scripts de detección de cortafuegos
[11:12:42][INFO] ejecutando comprobaciones de detección de cortafuegos
[11:12:44][FIREWALL] detectada la protección del sitio web identificado como 'Apache Generic'
[11:12:44][INFO] iniciando análisis de bypass
[11:12:44][INFO] cargando scripts de manipulación de carga útil
[11:12:45][INFO] ejecutando comprobaciones de bypass de manipulación
[11:19:09][ÉXITO] aparentes manipulaciones de trabajo para el objetivo:
------------------------------
(#1) descripción: manipular la carga útil cambiando los caracteres por un comodín
ejemplo: '/bin/cat /et?/?asswd'
ruta de carga: content.tampers.randomwildcard
------------------------------
Como se muestra en el resultado anterior, el servidor web respondió a nuestra solicitud y reveló que el cortafuegos era Apache. También podemos utilizar el servicio tor para buscar el WAF, pero puede aumentar la latencia.
./whatwaf -u https://www.targetsite.com --tor
La principal ventaja de la herramienta Whatwaf es que intenta automáticamente dar las cargas útiles para eludir el cortafuegos revelado.
#3. Detección mediante Wafw00f
La herramienta más conocida para detectar el cortafuegos de aplicaciones web es Wafw00f. Wafw00f envía una petición HTTP al cortafuegos de aplicaciones web para identificarlo. Si el envío de peticiones HTTP falla, wafw00f realiza una petición HTTP maliciosa. Si la realización de una petición HTTP maliciosa falla, wafw00f examina las peticiones HTTP anteriores y emplea un algoritmo sencillo para determinar si el cortafuegos de aplicaciones web reacciona a nuestros ataques.
Wafw00f no está preinstalado en las distribuciones de Kali Linux.
¿Cómo instalar Wafw00f?
El paquete zip está disponible para su descarga desde la fuente oficial de GitHub.
Descargue la herramienta Wafwoof. También puede utilizar el cliente git para clonar el repositorio. Para obtener el paquete, ejecute los comandos:
$ git clone https://github.com/EnableSecurity/wafw00f.git
Para descargar la herramienta wafw00f en el sistema, navegue hasta la carpeta o directorio wafw00f y ejecute el siguiente comando.
$ python setup.py install
El archivo de instalación se procesará y wafw00f se instalará en el sistema.
Uso de la herramienta
Para utilizar esta herramienta, ejecute este comando
$ wafw00f <url>
RECORDATORIO – Escanee únicamente los sitios web que tiene permiso para comprobar
┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://webhashes.com
______
/ \
( ¡Guau! )
\ ____/ )
,, ) (_
.-. - _______ ( |__|
()``; |==|_______) .)|__|
/ (' /|\ ( |__|
( / ) / | \ . |__|
\(_)_)) / | \ |__|
~ WAFW00F : v2.1.0 ~
El kit de herramientas de huellas dactilares del cortafuegos de aplicaciones web
[*] Comprobación de https://whatismyip.com
[ ] El sitio https://whatismyip.com está detrás de Cloudflare (Cloudflare Inc.) WAF.
[~] Número de peticiones : 2
Lástima, ¡el cortafuegos ha sido detectado!
Vamos a probar un sitio web de destino diferente para el propósito de discusión.
┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://renjith.org
______
/ \
( ¡Guau! )
\ ____/ )
,, ) (_
.-. - _______ ( |__|
()``; |==|_______) .)|__|
/ (' /|\ ( |__|
( / ) / | \ . |__|
\(_)_)) / | \ |__|
~ WAFW00F : v2.1.0 ~
El kit de herramientas de huellas dactilares del cortafuegos de aplicaciones web
[*] Comprobación https://renjith.org
[ ] Resultados de la detección genérica:
[-] Ningún WAF detectado por la detección genérica
[~] Número de solicitudes: 7
Esta vez no se ha detectado ningún cortafuegos.
Y para utilizarlo en modo detallado, ejecute el siguiente comando.
wafw00f <url> -v
Puede ver algunas capacidades adicionales de esta utilidad ejecutando este comando.
wafw00f <url> --help
Para terminar 👨💻
En este artículo, hemos visto diferentes estrategias y herramientas para detectar cortafuegos de aplicaciones web. Se trata de una actividad importante que debe realizarse durante la fase de recopilación de información de toda prueba de penetración de aplicaciones web.
Además, saber que existe un WAF permite al probador de penetración probar varios enfoques para sortear las defensas y explotar cualquier agujero en la aplicación en línea.
Según un investigador de hacking ético, disponer de un cortafuegos de aplicaciones web (WAF) es cada vez más necesario. Analizar los registros de su aplicación web para detectar nuevos asaltos que se produzcan en el servidor de aplicaciones web back-end es siempre importante. Esto le permitirá personalizar las reglas de su cortafuegos de aplicaciones web para proporcionar el máximo nivel de protección.
Puede que también le interese leer: Vulnerabilidades utilizando Nikto Scanner.