# Descobrindo o CloudFlare {{#include ../../banners/hacktricks-training.md}} ## Técnicas Comuns para Descobrir o Cloudflare - Você pode usar algum serviço que forneça os **registros DNS históricos** do domínio. Talvez a página da web esteja rodando em um endereço IP usado anteriormente. - O mesmo pode ser alcançado **verificando 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 disso para obter o endereço IP do servidor. - Pesquise uma string única da página da web em navegadores como shodan (e talvez google e similares?). Talvez você consiga encontrar um endereço IP com esse conteúdo. - De maneira semelhante, em vez de procurar uma string única, você poderia buscar 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 pode 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 para descobrir o Cloudflare - Pesquise o domínio dentro de [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ou [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ou use a ferramenta [CloudPeler](https://github.com/zidansec/CloudPeler) (que usa essa API) - Pesquise o domínio em [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/) - [**CF-Hero**](https://github.com/musana/CF-Hero) é uma ferramenta abrangente de reconhecimento desenvolvida para descobrir os verdadeiros endereços IP de aplicações web protegidas pelo Cloudflare. Ela realiza coleta de inteligência de múltiplas fontes através de vários métodos. - [**CloudFlair**](https://github.com/christophetd/CloudFlair) é uma ferramenta que irá pesquisar usando certificados Censys que contêm o nome do domínio, em seguida, irá procurar por IPv4s dentro desses certificados e finalmente tentará acessar a página web nesses IPs. - [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r é uma poderosa ferramenta Python meticulosamente elaborada para descobrir o verdadeiro endereço IP de sites protegidos pelo Cloudflare e outras alternativas, um serviço amplamente adotado de segurança e melhoria de desempenho na web. Sua missão principal é discernir com precisão o endereço IP real dos servidores web que estão ocultos atrás do escudo protetor do Cloudflare. - [Censys](https://search.censys.io/) - [Shodan](https://shodan.io/) - [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history) - Se você tiver um conjunto de IPs potenciais onde a página web está localizada, você poderia usar [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder) ```bash # 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 Cloudflare a partir da infraestrutura de nuvem Observe que, mesmo que isso tenha sido feito para máquinas AWS, pode ser feito para qualquer outro provedor de nuvem. Para uma melhor descrição deste processo, consulte: {{#ref}} https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks {{#endref}} ```bash # 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 ### Pulls de Origem Autenticados Esse mecanismo depende de **certificados SSL** [**do cliente**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **para autenticar conexões** entre os servidores **reverse-proxy** do **Cloudflare** e o servidor **de origem**, que é chamado de **mTLS**. Em vez de configurar seu próprio certificado, os clientes podem simplesmente usar o certificado do Cloudflare para permitir qualquer conexão do Cloudflare, **independentemente do inquilino**. > [!CAUTION] > 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 **da vítima**. Dessa forma, configurando seu domínio completamente desprotegido, o Cloudflare não protegerá as solicitações enviadas. Mais informações [**aqui**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/). ### Endereços IP do Cloudflare na Lista de Permissão Isso **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** das **vítimas** e o ataca. Mais informações [**aqui**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/). ## Bypass do Cloudflare para scraping ### Cache Às vezes, você só quer contornar o Cloudflare para apenas raspar a 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/](https://archive.org/web/) ### Ferramentas Algumas ferramentas como as seguintes podem contornar (ou foram capazes de contornar) a proteção do Cloudflare contra scraping: - [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping) ### Solvers do Cloudflare Vários solvers do Cloudflare foram desenvolvidos: - [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) - [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Guia aqui](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/) - [cloudflare-scrape](https://github.com/Anorov/cloudflare-scrape) - [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe) - [Cloudflare-IUAM-Solver](https://github.com/ninja-beans/cloudflare-iuam-solver) - [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[Arquivado] - [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe) ### Navegadores Headless Fortalecidos Use um navegador headless que não seja detectado como um navegador automatizado (você pode precisar personalizá-lo para isso). Algumas opções são: - **Puppeteer:** O [plugin stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) para [puppeteer](https://github.com/puppeteer/puppeteer). - **Playwright:** O [plugin stealth](https://www.npmjs.com/package/playwright-stealth) está chegando ao Playwright em breve. Acompanhe os desenvolvimentos [aqui](https://github.com/berstend/puppeteer-extra/issues/454) e [aqui](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra). - **Selenium:** O [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) é um patch otimizado do Selenium Chromedriver. ### Proxy Inteligente com Bypass Integrado do Cloudflare **Proxies inteligentes** são continuamente atualizados por empresas especializadas, visando superar as medidas de segurança do Cloudflare (já que esse é o seu negócio). Alguns deles são: - [ScraperAPI](https://www.scraperapi.com/?fp_ref=scrapeops) - [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops) - [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7&aff_id=379&url_id=32) - [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) são conhecidos por seus mecanismos proprietários de bypass do Cloudflare. Para aqueles que buscam uma solução otimizada, o [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) se destaca. Este serviço integra mais de 20 provedores de proxy em uma única API, selecionando automaticamente o melhor e mais econômico proxy para seus domínios-alvo, oferecendo assim uma opção superior para navegar pelas defesas do Cloudflare. ### Engenharia Reversa da Proteção Anti-Bot do Cloudflare A engenharia reversa das medidas anti-bot do Cloudflare é uma tática usada por provedores de proxy inteligentes, adequada para scraping extensivo da web sem o alto custo de executar muitos navegadores headless. **Vantagens:** Este método permite a criação de um bypass extremamente eficiente que visa especificamente as verificações do Cloudflare, ideal para operações em grande escala. **Desvantagens:** A desvantagem é a complexidade envolvida em entender e enganar o sistema anti-bot deliberadamente obscuro do Cloudflare, exigindo esforço contínuo para testar diferentes estratégias e atualizar o bypass à medida que o Cloudflare aprimora suas proteções. Encontre mais informações sobre como fazer isso no [artigo original](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/). ## Referências - [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/) {{#include ../../banners/hacktricks-training.md}}