hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
2023-06-06 18:56:34 +00:00

12 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 lhe dê os registros históricos do 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 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, 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.

* De maneira semelhante, em vez de procurar uma string exclusiva, você pode procurar pelo ícone favicon com a ferramenta: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ou com [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* Isso não funcionará com muita frequência porque o servidor deve enviar a mesma resposta quando é acessado pelo endereço IP, mas você nunca sabe.

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 deste 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

Bypassar o Cloudflare para fazer scraping

Cache

Às vezes, você só quer ignorar o Cloudflare para fazer scraping da página da 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/

Solucionadores do Cloudflare

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 um navegador de usuário real:

Smart Proxy 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 são tipicamente mais confiáveis, pois é mais difícil para o Cloudflare desenvolver patches para eles, e eles são desenvolvidos por empresas de proxy que são financeiramente motivadas a ficar um passo à frente do Cloudflare e corrigir seus bypasses no momento em que eles param de funcionar.

A maioria dos provedores de proxy inteligentes (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) têm algum tipo de bypass do Cloudflare que funciona em graus variados e varia em custo.

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

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

Esta 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 desta 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 headless, poderá desenvolver o bypass do Cloudflare mais eficiente em termos de recursos possível. Um que é projetado exclusivamente para passar nos testes de impressão digital JS, TLS e IP do Cloudflare.

Desvantagens: As desvantagens desta abordagem são que você terá que mergulhar profundamente em um sistema anti-bot que foi feito de propósito para ser difícil de entender do lado de fora e testar diferentes técnicas para enganar seu sistema de verificação. Em seguida, mantenha este sistema à medida que o Cloudflare continua a desenvolver sua proteção anti-bot.

Referências

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