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

13 KiB

Descobrindo o CloudFlare

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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 históricos de DNS do domínio. Talvez a página da web esteja sendo executada em um endereço IP usado anteriormente.
  • O mesmo pode ser alcançado verificando os certificados SSL históricos que podem estar apontando para o endereço IP de origem.
  • Verifique também os registros DNS de outros subdomínios que apontam 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, pode abusar dele para obter o endereço IP do servidor.

Procure uma string única da página da 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

Descobrindo o Cloudflare a partir de máquinas AWS

Para uma descrição mais detalhada desse processo, consulte:

{% 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

Bypassando o Cloudflare através do Cloudflare

Autenticação de Origem Autorizada

Esse mecanismo depende de certificados SSL do cliente para autenticar as conexões entre os servidores de proxy reverso 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 locatário.

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

Mais informações aqui.

Lista de Permissões de Endereços IP do Cloudflare

Isso irá rejeitar conexões que não se originam dos intervalos de endereços 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 a ataca.

Mais informações aqui.

Bypass do Cloudflare para scraping

Cache

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

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

Solucionadores do Cloudflare

Foram desenvolvidos vários solucionadores do Cloudflare:

Navegadores Headless Reforçados

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

Proxy Inteligente com Bypass Integrado do Cloudflare

A alternativa ao uso de bypasses do Cloudflare de código aberto é usar proxies inteligentes que desenvolvem e mantêm seus próprios bypasses privados do Cloudflare.

Esses proxies geralmente são mais confiáveis, pois é mais difícil para o Cloudflare desenvolver correções para eles, e são desenvolvidos por empresas de proxy que têm motivação financeira para ficar um passo à frente do Cloudflare e corrigir seus bypasses assim que pararem de funcionar.

A maioria dos provedores de proxy inteligentes (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) possuem algum tipo de bypass do Cloudflare que funcionam em diferentes graus e variam em custo.

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

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

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

Vantagens: A vantagem dessa abordagem é que, se você estiver fazendo scraping em grande escala e não quiser executar centenas (se não milhares) de instâncias caras de navegadores completos sem cabeça, você pode desenvolver o bypass do Cloudflare mais eficiente em termos de recursos possível. Um que seja projetado exclusivamente para passar nos testes de impressão digital do Cloudflare JS, TLS e IP.

Desvantagens: As desvantagens dessa abordagem são que você terá que mergulhar fundo em um sistema anti-bot que foi propositalmente difícil de entender do lado de fora e testar diferentes técnicas para enganar seu sistema de verificação. Em seguida, manter esse sistema à medida que o Cloudflare continua a desenvolver sua proteção anti-bot.

Referências

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥