Como descobrir qual WAF está protegendo um site

[*]

[*]É sempre uma boa ideia para um invasor saber onde um WAF é normalmente utilizado em uma rede antes de iniciar a impressão digital.

[*]Os testadores de penetração devem estar cientes de um WAF antes de iniciar um envolvimento no aplicativo da Web, pois o resultado de seus ataques pode ser afetado.

[*]Mas antes disso…

O que é WAF?

[*]WAF (Firewall de aplicativo da Web ) desempenha um papel significativo na segurança do site. Eles filtram e monitoram o tráfego. Os firewalls de aplicativos da Web fornecem proteção contra falhas importantes. Muitas organizações estão modernizando sua infraestrutura para incluir firewalls de aplicativos da web. De acordo com especialistas em hackers éticos, os firewalls de aplicativos da Web não podem corrigir problemas de segurança por conta própria; é necessária uma configuração adequada para reconhecer e bloquear ameaças externas.

[*]Um WAF difere de um firewall tradicional, pois pode filtrar o conteúdo de aplicativos online específicos, enquanto os firewalls tradicionais atuam como uma barreira de segurança entre os servidores.

[*]

[*]Uma interação HTTP está sujeita a um conjunto de regras. Essas regras tratam de vulnerabilidades típicas, como scripts entre sites e injeção de SQL em geral.

[*]Existem muitas ferramentas gratuitas e de código aberto na internet que podem descobrir os firewalls por trás dos aplicativos da web.

[*]E neste artigo, veremos as abordagens e ferramentas que podem ser usadas para descobrir um WAF.

[*]Observação: neste tutorial, usei meu próprio site para enumerar os detalhes. Não execute varreduras ou outras atividades de hackers em nenhum site sem permissão prévia do proprietário.

Descoberta manual

Detectando usando TELNET

[*]Telnet é usado principalmente por administradores de rede e testadores de penetração. O Telnet permite que você se conecte a hosts remotos em qualquer porta, conforme indicado anteriormente.

  • Os parâmetros HTTP geralmente são deixados (ou inseridos) nos cabeçalhos de resposta por firewalls de aplicativos da web.
  • O Telnet pode ser usado para obter informações básicas de coleta, como o servidor e os cookies usados ​​na impressão digital.
  • Digite Telnet Targetwebsite.com 80
[email protected]: # telnet Targetwebsite.com 80
Trying 18.166.248.208...
Connected to Targetwebsite.com.
Escape character is '^]'. 

[*]Após executar o comando acima, escreva HEAD/HTTP/1.1 e pressione a tecla Enter.

[email protected]: # telnet 18.166.248.208  80 
Trying 18.166.248.208... 
Connected to 18.166.248.208. 
Escape character is '^]'. 
HEAD / HTTP/1.1 
Host: 18.166.248.208

HTTP/1.1 200 OK 
Date: SUN, 10 Oct 2021 05:08:03 IST 
Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0 
Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/ 
Expires: 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 
X-Varnish: 4723782781
Age: 0
Via: 1.1 varnish
Connection: close 
Content-Type: text/html

Connection closed by foreign host.

[*]Indica o servidor no qual o site está hospedado e o idioma de back-end no qual foi criado após o uso de telnet na porta de destino 80.

  Como clicar com o botão direito em qualquer Mac usando um trackpad, mouse ou teclado

[*]Alguns sistemas WAF permitem que o cabeçalho seja modificado e também podem fazer com que o servidor da Web envie respostas HTTP diferentes das padrão.

[*]Conforme mostrado no resultado acima, o servidor web respondeu à nossa solicitação e revelou que o firewall/edge gateway era o Varnish.

Descoberta automatizada

#1. Detectando usando NMAP

[*]O Nmap, que possui um script que pode identificar um firewall de aplicação web, também pode ser utilizado para esta finalidade.

  • O Nmap é uma ferramenta de avaliação de segurança que muitos pen-testers e administradores de rede normalmente utilizam.
  • O Nmap é usado para obter informações sobre o alvo.
  • O script foi executado na mesma página da Web de antes
  • Digite o comando nmap –script=http-waf-fingerprint targetweb.com
[email protected]:# nmap --script=http-waf-fingerprint targetwebsite.com
Starting Nmap 7.90 ( https://nmap.org ) at 2021-10-10 07:58 IST
Nmap scan report for targetsite.com (18.166.248.208)
 Host is up (0.24s latency).
Not shown: 982filtered ports
PORT STATE SERVICE
53/tcp    open   domain
80/tcp open http
| http-waf-fingerprint:
| Detected WAF
| Citrix Netscaler
443/tcp open https
5432/tcp  closed postgresql
8080/tcp closed http-proxy

Nmap done: 1 IP address (1 host up) scanned in 25.46 seconds 

[*]Depois de usar o comando Nmap acima, o firewall Citrix Netscaler foi detectado.

#2. Detectando usando Whatwaf

[*]Whatwaf é uma ferramenta de segurança para aplicativos da web de impressão digital e detectar a presença de qualquer WAF. Essa ferramenta é útil para determinar se um aplicativo da Web está protegido por um WAF durante as avaliações de segurança.

[*]Se for esse o caso, as estratégias de desvio e evasão podem ser úteis em testes adicionais ou na exploração do aplicativo online.

[*]Desvio de firewall, detecção de aplicativos, impressão digital de aplicativos e identificação de software são usos frequentes para o WhatWaf. Rede
Pen-testers e profissionais de segurança são os usuários pretendidos deste programa.

  Como abrir documentos do Microsoft Word sem o Word

Como instalar o WhatWaf?

[*]Instalação no Kali-Linux

sudo apt install python3-pip

git clone https://github.com/ekultek/whatwaf

cd whatwaf

sudo pip3 install -r requirements.txt

[*]No lançamento, sem uma versão do Python, podemos especificar facilmente um arquivo executável:

./whatwaf --help   

[*]No entanto, como não instalamos as dependências do Python 2, é recomendável que você forneça especificamente a versão do Python.

python3 ./whatwaf --help

Uso da ferramenta

[*]A ferramenta de detecção de firewall Whatwaf é simples de usar! Só precisamos executar o seguinte comando:

./whatwaf -u https://www.targetsite.com

[*]Como você pode ver abaixo, esta ferramenta detectou o firewall para o URL do site fornecido.

[*]Lembrete! – Eu usei meu próprio site para a digitalização

┌──(root💀kali)-[/home/writer/WhatWaf]
└─# ./whatwaf -u https://www.renjith.org

                                  ,------.
                                 '  .--.  '
        ,--.   .--.   ,--.   .--.|  |  |  |
        |  |   |  |   |  |   |  |'--'  |  |
        |  |   |  |   |  |   |  |    __.  |
        |  |.'.|  |   |  |.'.|  |   |   .'
        |         |   |         |   |___|
        |   ,'.   |hat|   ,'.   |af .---.
        '--'   '--'   '--'   '--'   '---'
/><script>alert("WhatWaf?<|>v2.0.3($dev)");</script>%00

[11:12:34][ERROR] you must install psutil first `pip install psutil` to start mining XMR
[11:12:34][INFO] checking for updates
[11:12:34][WARN] it is highly advised to use a proxy when using WhatWaf. do so by passing the proxy flag (IE `--proxy http://127.0.0.1:9050`) or by passing the Tor flag (IE `--tor`)
[11:12:34][INFO] using User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)'
[11:12:34][INFO] using default payloads
[11:12:34][INFO] testing connection to target URL before starting attack 
[11:12:35][SUCCESS] connection succeeded, continuing
[11:12:35][INFO] running single web application 'https://www.renjith.org'
[11:12:35][WARN] URL does not appear to have a query (parameter), this may interfere with the detection results
[11:12:35][INFO] request type: GET
[11:12:35][INFO] gathering HTTP responses
[11:12:42][INFO] gathering normal response to compare against
[11:12:42][INFO] loading firewall detection scripts
[11:12:42][INFO] running firewall detection checks
[11:12:44][FIREWALL] detected website protection identified as 'Apache Generic'
[11:12:44][INFO] starting bypass analysis
[11:12:44][INFO] loading payload tampering scripts
[11:12:45][INFO] running tampering bypass checks
[11:19:09][SUCCESS] apparent working tampers for target:
------------------------------
(#1) description: tamper payload by changing characters into a wildcard
example: '/bin/cat /et?/?asswd'
load path: content.tampers.randomwildcard
------------------------------

[*]Conforme mostrado no resultado acima, o servidor web respondeu ao nosso pedido e revelou que o firewall era Apache. Também podemos usar o serviço tor para procurar o WAF, mas isso pode aumentar a latência.

./whatwaf -u https://www.targetsite.com --tor

[*]A principal vantagem da ferramenta Whatwaf é que ela automaticamente tenta fornecer as cargas úteis para contornar o firewall revelado.

#3. Detectando usando Wafw00f

[*]A ferramenta mais conhecida para detectar o firewall da aplicação web é Wafw00f. Wafw00f envia uma solicitação HTTP ao firewall do aplicativo da web para identificá-lo. Quando o envio de solicitações HTTP falha, o wafw00f faz uma solicitação HTTP maliciosa. Se uma solicitação HTTP maliciosa falhar, o wafw00f examina solicitações HTTP anteriores e emprega um algoritmo simples para determinar se o firewall do aplicativo da Web reage aos nossos ataques.

  5 Melhor CDN de streaming de vídeo para pequenas e grandes empresas

[*]Wafw00f não está pré-instalado nas distribuições Kali Linux.

Como instalar o Wafw00f?

[*]O pacote zip está disponível para download na fonte oficial do GitHub.

[*]Baixe a ferramenta Wafwoof. Você também pode usar o cliente git para clonar o repositório. Para obter o pacote, execute os comandos:

$ git clone https://github.com/EnableSecurity/wafw00f.git

[*]Para baixar a ferramenta wafw00f no sistema, navegue até a pasta ou diretório wafw00f e execute o seguinte comando.

$ python setup.py install

[*]O arquivo de configuração será processado e o wafw00f será instalado no sistema.

Uso da ferramenta

[*]Para usar esta ferramenta, execute este comando.

$ wafw00f <url>

[*]LEMBRETE – Verifique apenas os sites que você tem permissão para testar

┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://webhashes.com 

                   ______
                  /                                   
                 (  Woof! )                            
                    ____/                      )      
                  ,,                           ) (_    
             .-. -    _______                 ( |__|   
            ()``; |==|_______)                .)|__|   
            / ('        /|                  (  |__|   
        (  /  )        / |                   . |__|   
         (_)_))      /  |                     |__|   

                    ~ WAFW00F : v2.1.0 ~
    The Web Application Firewall Fingerprinting Toolkit                                                                 
                                                                                                                        
[*] Checking https://whatismyip.com
[+] The site https://whatismyip.com is behind Cloudflare (Cloudflare Inc.) WAF.
[~] Number of requests : 2

[*]Pena que o firewall foi detectado!

[*]Tentaremos um site de destino diferente para fins de discussão.

┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://renjith.org

                   ______
                  /                                                                                                    
                 (  Woof! )                                                                                             
                    ____/                      )                                                                       
                  ,,                           ) (_                                                                     
             .-. -    _______                 ( |__|                                                                    
            ()``; |==|_______)                .)|__|                                                                    
            / ('        /|                  (  |__|                                                                    
        (  /  )        / |                   . |__|                                                                    
         (_)_))      /  |                     |__|                                                                    

                    ~ WAFW00F : v2.1.0 ~
    The Web Application Firewall Fingerprinting Toolkit                                                                 
                                                                                                                        
[*] Checking https://renjith.org
[+] Generic Detection results:
[-] No WAF detected by the generic detection
[~] Number of requests: 7

[*]Nenhum firewall é detectado desta vez.

[*]E para usá-lo no modo detalhado, execute o seguinte comando.

wafw00f  <url> -v 

[*]Você pode ver alguns recursos adicionais deste utilitário executando este comando.

wafw00f <url> --help 

Finalizando 👨‍💻

[*]Neste artigo, analisamos diferentes estratégias e ferramentas para detectar firewalls de aplicativos da web. Esta é uma atividade importante que deve ser realizada durante o estágio de coleta de informações de cada teste de penetração de aplicativos da web.

[*]Além disso, saber que um WAF está instalado permite que o testador de penetração tente várias abordagens para contornar as defesas e explorar quaisquer brechas no aplicativo online.

[*]De acordo com um pesquisador de hackers éticos, ter um firewall de aplicativo da web (WAF) é cada vez mais necessário. Analisar seus logs de aplicativos da Web para detectar novos ataques que ocorrem no servidor de aplicativos da Web de back-end é sempre importante. Isso permite que você personalize regras no firewall do aplicativo da Web para fornecer o mais alto nível de proteção.

[*]Você também pode estar interessado em ler: Vulnerabilidades usando Nikto Scanner.