Descobrindo CloudFlare

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Técnicas Comuns para Descobrir Cloudflare

  • Você pode usar algum serviço que lhe dê os historical DNS records do domínio. Talvez a página web esteja rodando em um IP usado anteriormente.
  • O mesmo pode ser conseguido checking historical SSL certificates que podem apontar para o origin IP address.
  • Verifique também os DNS records of other subdomains pointing directly to IPs, pois é possível que outros subdomínios apontem para o mesmo servidor (talvez oferecendo FTP, mail ou qualquer outro serviço).
  • Se encontrar um SSRF inside the web application você pode abusá-lo para obter o IP do servidor.
  • Busque uma string única da página web em buscadores como shodan (e talvez google e similares?). Talvez você encontre um IP com esse conteúdo.
  • De forma similar, em vez de procurar por uma uniq string você pode buscar pelo favicon com a ferramenta: https://github.com/karma9874/CloudFlare-IP ou com https://github.com/pielco11/fav-up
  • Isso não funcionará com muita frequência porque o servidor precisa enviar a mesma resposta quando acessado pelo endereço IP, mas nunca se sabe.

Ferramentas para descobrir Cloudflare

  • Pesquise o domínio em 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/
  • CF-Hero é uma ferramenta de reconhecimento abrangente desenvolvida para descobrir os endereços IP reais de aplicações web protegidas pelo Cloudflare. Ela realiza coleta de inteligência multi-fonte através de vários métodos.
  • CloudFlair é uma ferramenta que busca usando certificados do Censys que contêm o nome de domínio, então procura por IPv4s dentro desses certificados e, por fim, tenta acessar a página web nesses IPs.
  • CloakQuest3r: CloakQuest3r é uma poderosa ferramenta em Python meticulosamente construída para descobrir o IP verdadeiro de websites protegidos pelo Cloudflare e outras alternativas, um serviço amplamente adotado de segurança e melhoria de performance web. Sua missão central é discernir com precisão o endereço IP real de servidores web que estão ocultos atrás do escudo protetor do Cloudflare.
  • Censys
  • Shodan
  • Bypass-firewalls-by-DNS-history
  • Se você tem um conjunto de IPs potenciais onde a página web pode estar localizada, você pode 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

Descobrindo o Cloudflare a partir da infraestrutura de nuvem

Observe que, embora isto tenha sido feito em máquinas AWS, poderia ser feito em qualquer outro provedor de nuvem.

Para uma melhor descrição deste processo, confira:

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

Contornando o Cloudflare via Cloudflare

Authenticated Origin Pulls

Este mecanismo depende de cliente SSL certificates para autenticar conexões entre os servidores reverse-proxy do Cloudflare e o servidor de origem, o 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 proveniente do Cloudflare, independentemente do tenant.

Caution

Portanto, um atacante poderia simplesmente configurar um domain in Cloudflare using Cloudflare’s certificate and point para o endereço IP do victim. Desta forma, deixando seu domínio completamente desprotegido, o Cloudflare não protegerá as requisições enviadas.

More info here.

Allowlist Cloudflare IP Addresses

Isso irá rejeitar conexões que não se originem das faixas de IP do Cloudflare. Isso também é vulnerável à configuração anterior, onde um atacante simplesmente aponta seu próprio domain in Cloudflare para o endereço IP do victim e o ataca.

More info here.

Bypass Cloudflare for scraping

Cache

Às vezes você só quer contornar o Cloudflare para apenas scrape a página web. Há algumas opções para isso:

  • Use Google cache: 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 conseguem contornar (ou conseguiram contornar) a proteção do Cloudflare contra scraping:

Cloudflare Solvers

Foram desenvolvidos diversos solvers para o Cloudflare:

Fortified Headless Browsers

Use um headless browser que não seja detectado como um navegador automatizado (pode ser necessário customizá-lo para isso). Algumas opções são:

  • Puppeteer: The stealth plugin para puppeteer.
  • Playwright: The stealth plugin está chegando ao Playwright em breve. Acompanhe o desenvolvimento here e here.
  • Selenium: SeleniumBase é um framework moderno de automação de browser com capacidades stealth embutidas. Oferece dois modos: UC Mode, um patch otimizado do Selenium ChromeDriver baseado em undetected-chromedriver, e CDP Mode, que pode contornar detecção de bots, resolver CAPTCHAs e aproveitar métodos avançados do Chrome DevTools Protocol.

Smart Proxy With Cloudflare Built-In Bypass

Smart proxies são continuamente atualizados por empresas especializadas, visando superar as medidas de segurança do Cloudflare (já que esse é o negócio delas).

Alguns deles são:

Para quem busca uma solução otimizada, o ScrapeOps Proxy Aggregator se destaca. Esse serviço integra mais de 20 provedores de proxy em uma única API, selecionando automaticamente o proxy mais adequado e custo-efetivo para seus domínios alvo, oferecendo assim uma opção superior para contornar as defesas do Cloudflare.

Reverse Engineer Cloudflare Anti-Bot Protection

Fazer engenharia reversa das medidas anti-bot do Cloudflare é uma tática usada por provedores de smart proxy, adequada para scraping em larga escala sem o alto custo de rodar muitos headless browsers.

Vantagens: Esse método permite criar um bypass extremamente eficiente que mira especificamente nas 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 reforça suas proteções.

Find more info about how to do this in the original article.

References

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks