hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md

12 KiB

Revelando CloudFlare

Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Técnicas para tentar descobrir servidores web por trás do Cloudflare:

Técnicas

  • Você também pode usar algum serviço que forneça os registros DNS históricos do domínio. Talvez a página web esteja rodando em um endereço IP usado anteriormente.
  • O mesmo pode ser alcançado verificando certificados SSL históricos que poderiam estar apontando para o endereço IP de origem.
  • Verifique também registros DNS de outros subdomínios apontando diretamente para IPs, pois é possível que outros subdomínios estejam apontando para o mesmo servidor (talvez para oferecer FTP, e-mail ou qualquer outro serviço).
  • Se você encontrar um SSRF dentro da aplicação web, você pode abusar dele para obter o endereço IP do servidor.

Pesquise uma string única da página web em navegadores como shodan (e talvez google e similares?). Talvez você possa encontrar um endereço IP com esse conteúdo.

Ferramentas

# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one

# If you know the company is using AWS you could use the previous tool to search the
## web page inside the EC2 IPs
DOMAIN=something.com
WIDE_REGION=us
for ir in `curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | select(.region|test("^us")) | .ip_prefix'`; do
echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done

Revelando Cloudflare de máquinas AWS

Para uma descrição mais detalhada deste processo, confira:

{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

# Find open ports
sudo masscan --max-rate 10000 -p80,443 $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix' | tr '\n' ' ') | grep "open"  > all_open.txt
# Format results
cat all_open.txt | sed 's,.*port \(.*\)/tcp on \(.*\),\2:\1,' | tr -d " " > all_open_formated.txt
# Search actual web pages
httpx -silent -threads 200 -l all_open_formated.txt -random-agent -follow-redirects -json -no-color -o webs.json
# Format web results and remove eternal redirects
cat webs.json | jq -r "select((.failed==false) and (.chain_status_codes | length) < 9) | .url" | sort -u > aws_webs.json

# Search via Host header
httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.com -threads 250 -random-agent -follow-redirects -o web_checks.json

Bypassing Cloudflare através do Cloudflare

Authenticated Origin Pulls

Este mecanismo depende de certificados SSL do cliente para autenticar conexões entre os servidores de reverse-proxy do Cloudflare e o servidor de origem, o que é chamado de mTLS.

Em vez de configurar seu próprio certificado, o cliente pode simplesmente usar o certificado do Cloudflare para permitir qualquer conexão do Cloudflare, independentemente do tenant.

{% hint style="danger" %} Portanto, um atacante poderia simplesmente configurar um domínio no Cloudflare usando o certificado do Cloudflare e apontá-lo para o endereço IP do domínio vítima. Dessa forma, configurando seu domínio completamente desprotegido, o Cloudflare não protegerá as requisições enviadas. {% endhint %}

Mais informações aqui.

Allowlist de Endereços IP do Cloudflare

Isso irá rejeitar conexões que não se originam dos intervalos de IP do Cloudflare. Isso também é vulnerável à configuração anterior, onde um atacante simplesmente aponta seu próprio domínio no Cloudflare para o endereço IP da vítima e o ataca.

Mais informações aqui.

Bypass Cloudflare para scraping

Cache

Às vezes, você só quer contornar o Cloudflare para fazer scraping da página web. Existem algumas opções para isso:

  • Use o cache do Google: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • Use outros serviços de cache, como https://archive.org/web/

Cloudflare Solvers

Foram desenvolvidos vários solucionadores do Cloudflare:

Navegadores Headless Fortificados

A outra opção é fazer todo o trabalho de scraping com um navegador headless que foi fortificado para parecer com o navegador de um usuário real:

Smart Proxy com Bypass Integrado do Cloudflare

A alternativa ao uso de bypasses open source do Cloudflare é usar smart proxies que desenvolvem e mantêm seus próprios bypasses privados do Cloudflare.

Eles são tipicamente mais confiáveis, pois é mais difícil para o Cloudflare desenvolver patches para eles, e são desenvolvidos por empresas de proxy que têm motivação financeira para estar sempre um passo à frente do Cloudflare e corrigir seus bypasses no minuto em que param de funcionar.

A maioria dos provedores de smart proxy (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) têm alguma forma de bypass do Cloudflare que funciona em graus variados e variam em custo.

No entanto, uma das melhores opções é usar o ScrapeOps Proxy Aggregator, pois ele integra mais de 20 provedores de proxy na mesma API de proxy e encontra o provedor de proxy mais barato/melhor para seus domínios alvo.

Engenharia Reversa da Proteção Anti-Bot do Cloudflare

Esta abordagem funciona (e é o que muitas soluções de smart proxy fazem), no entanto, não é para os fracos de coração.

Vantagens: A vantagem desta abordagem é que, se você está fazendo scraping em larga escala e não quer rodar centenas (se não milhares) de instâncias completas de navegadores headless caros. Em vez disso, você pode desenvolver o bypass do Cloudflare mais eficiente em termos de recursos possível. Um que é projetado exclusivamente para passar nos testes de JS, TLS e IP fingerprint do Cloudflare.

Desvantagens: As desvantagens desta abordagem é que você terá que mergulhar profundamente em um sistema anti-bot que foi feito propositalmente difícil de entender por fora, e testar diferentes técnicas para enganar seu sistema de verificação. Depois, manter este sistema à medida que o Cloudflare continua a desenvolver sua proteção anti-bot.

Referências

Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: