# Descubriendo CloudFlare
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Técnicas para intentar descubrir servidores web detrás de CloudFlare: ### Técnicas * También puedes utilizar algún servicio que te proporcione los **registros DNS históricos** del dominio. Tal vez la página web se esté ejecutando en una dirección IP utilizada anteriormente. * Lo mismo se puede lograr **verificando los certificados SSL históricos** que podrían estar apuntando a la dirección IP de origen. * Comprueba también los **registros DNS de otros subdominios que apunten directamente a IPs**, ya que es posible que otros subdominios estén apuntando al mismo servidor (quizás para ofrecer FTP, correo electrónico u otro servicio). * Si encuentras un **SSRF dentro de la aplicación web**, puedes abusar de él para obtener la dirección IP del servidor. * Busca una cadena única de la página web en buscadores como Shodan (y tal vez Google y similares). Tal vez puedas encontrar una dirección IP con ese contenido. * De manera similar, en lugar de buscar una cadena única, puedes buscar el icono del favicon con la herramienta: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) o con [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up) * Esto no funcionará con mucha frecuencia porque el servidor debe enviar la misma respuesta cuando se accede mediante la dirección IP, pero nunca se sabe. ### Herramientas * Busca el dominio en [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) o [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). O utiliza la herramienta [CloudPeler](https://github.com/zidansec/CloudPeler) (que utiliza esa API) * Busca el dominio en [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/) * [**CloudFlair**](https://github.com/christophetd/CloudFlair) es una herramienta que buscará certificados de Censys que contengan el nombre de dominio, luego buscará direcciones IPv4 dentro de esos certificados y finalmente intentará acceder a la página web en esas IPs. * [Censys](https://search.censys.io/) * [Shodan](https://shodan.io/) * [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history) * Si tienes un conjunto de posibles IPs donde se encuentra la página web, puedes utilizar [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 ``` ### Descubriendo Cloudflare desde máquinas de AWS Para obtener una mejor descripción de este proceso, consulta: {% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ```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 Cloudflare através do Cloudflare ### Autenticação de Origem Autenticada 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**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/). ### Permitir apenas 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**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/). ## 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/](https://archive.org/web/) ### Solucionadores do Cloudflare Foram desenvolvidos vários solucionadores do Cloudflare: * [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 Fortificados A outra opção é fazer todo o trabalho de scraping com um navegador headless que foi fortificado para se parecer com um navegador de usuário real: * **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 em breve para o Playwright. 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 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](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)) 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 [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/), 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, você terá que manter esse sistema à medida que o Cloudflare continua a desenvolver sua proteção anti-bot. ## Referências * [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).