13 KiB
Uncovering CloudFlare
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Common Techniques to Uncover 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 procurar pelo ícone favicon com a ferramenta: https://github.com/karma9874/CloudFlare-IP ou com 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.
Tools to uncover Cloudflare
- Pesquise o domínio dentro de http://www.crimeflare.org:82/cfs.html ou https://crimeflare.herokuapp.com. Ou use a ferramenta CloudPeler (que usa essa API)
- Pesquise o domínio em https://leaked.site/index.php?resolver/cloudflare.0/
- 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 da web nesses IPs.
- 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
- Shodan
- Bypass-firewalls-by-DNS-history
- Se você tiver um conjunto de IPs potenciais onde a página da web está localizada, você poderia usar https://github.com/hakluke/hakoriginfinder
# 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
Uncovering Cloudflare from Cloud infrastructure
Observe que, mesmo que isso tenha sido feito para máquinas AWS, poderia ser feito para qualquer outro provedor de nuvem.
Para uma melhor descrição 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
Bypassing Cloudflare through Cloudflare
Authenticated Origin Pulls
Este mecanismo depende de client SSL certificates para autenticar conexões entre os servidores reverse-proxy da Cloudflare e o servidor origin, que é chamado de mTLS.
Em vez de configurar seu próprio certificado, os clientes podem simplesmente usar o certificado da Cloudflare para permitir qualquer conexão da Cloudflare, independentemente do inquilino.
{% hint style="danger" %} Portanto, um atacante poderia apenas configurar um domínio na Cloudflare usando o certificado da Cloudflare e apontá-lo para o endereço IP do vítima. Dessa forma, configurando seu domínio completamente desprotegido, a Cloudflare não protegerá as solicitações enviadas. {% endhint %}
Mais informações aqui.
Allowlist Cloudflare IP Addresses
Isso rejeitará conexões que não se originam dos intervalos de endereços IP da Cloudflare. Isso também é vulnerável à configuração anterior, onde um atacante apenas aponta seu próprio domínio na Cloudflare para o endereço IP das vítimas e ataca.
Mais informações aqui.
Bypass Cloudflare for scraping
Cache
Às vezes, você só quer contornar a 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/
Tools
Algumas ferramentas como as seguintes podem contornar (ou foram capazes de contornar) a proteção da Cloudflare contra scraping:
Cloudflare Solvers
Vários solucionadores da Cloudflare foram desenvolvidos:
- FlareSolverr
- cloudscraper Guia aqui
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Arquivado]
- CloudflareSolverRe
Fortified Headless Browsers
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 stealth plugin para puppeteer.
- Playwright: O stealth plugin está chegando ao Playwright em breve. Acompanhe os desenvolvimentos aqui e aqui.
- Selenium: O undetected-chromedriver é um patch otimizado do Selenium Chromedriver.
Smart Proxy With Cloudflare Built-In Bypass
Smart proxies são continuamente atualizados por empresas especializadas, visando contornar as medidas de segurança da Cloudflare (já que esse é o seu negócio).
Alguns deles são:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy são conhecidos por seus mecanismos proprietários de contorno da Cloudflare.
Para aqueles que buscam uma solução otimizada, o ScrapeOps 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 da Cloudflare.
Reverse Engineer Cloudflare Anti-Bot Protection
A engenharia reversa das medidas anti-bot da Cloudflare é uma tática usada por provedores de proxy inteligentes, adequada para raspagem extensiva da web sem o alto custo de executar muitos navegadores headless.
Vantagens: Este método permite a criação de um contorno extremamente eficiente que visa especificamente as verificações da Cloudflare, ideal para operações em grande escala.
Desvantagens: A desvantagem é a complexidade envolvida em entender e enganar o sistema anti-bot deliberadamente obscuro da Cloudflare, exigindo esforço contínuo para testar diferentes estratégias e atualizar o contorno à medida que a Cloudflare aprimora suas proteções.
Encontre mais informações sobre como fazer isso no artigo original.
References
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.