12 KiB
Revelando CloudFlare
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub HackTricks e HackTricks Cloud.
Técnicas para tentar descobrir servidores web por trás do Cloudflare:
Técnicas
- Você também pode usar algum serviço que forneça os registros DNS históricos do domínio. Talvez a página web esteja rodando em um endereço IP usado anteriormente.
- O mesmo pode ser alcançado verificando certificados SSL históricos que poderiam 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, você pode abusar dele para obter o endereço IP do servidor.
Pesquise uma string única da página web em navegadores como shodan (e talvez google e similares?). Talvez você possa encontrar um endereço IP com esse conteúdo.
- De forma semelhante, em vez de procurar por 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 não funcionará com muita frequência porque o servidor deve enviar a mesma resposta quando acessado pelo endereço IP, mas nunca se sabe.
Ferramentas
- Pesquise pelo 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 pelo domínio em https://leaked.site/index.php?resolver/cloudflare.0/
- CloudFlair é uma ferramenta que irá pesquisar usando certificados do Censys que contêm o nome do domínio, depois irá procurar por IPv4s dentro desses certificados e finalmente tentará acessar a página web nesses IPs.
- Censys
- Shodan
- Bypass-firewalls-by-DNS-history
- Se você tem um conjunto de IPs potenciais onde a página 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
Revelando Cloudflare de máquinas AWS
Para uma descrição mais detalhada deste processo, confira:
{% 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 através do Cloudflare
Authenticated Origin Pulls
Este mecanismo depende de certificados SSL do cliente para autenticar conexões entre os servidores de reverse-proxy 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 tenant.
{% hint style="danger" %} 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 vítima. Dessa forma, configurando seu domínio completamente desprotegido, o Cloudflare não protegerá as requisições enviadas. {% endhint %}
Mais informações aqui.
Allowlist de Endereços IP do Cloudflare
Isso irá rejeitar conexões que não se originam dos intervalos de 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 o ataca.
Mais informações aqui.
Bypass Cloudflare para scraping
Cache
Às vezes, você só quer contornar o Cloudflare para fazer scraping da página 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/
Cloudflare Solvers
Foram desenvolvidos vários solucionadores do Cloudflare:
- FlareSolverr
- cloudscraper Guia aqui
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Arquivado]
- CloudflareSolverRe
Navegadores Headless Fortificados
A outra opção é fazer todo o trabalho de scraping com um navegador headless que foi fortificado para parecer com o navegador de um usuário real:
- Puppeteer: O plugin stealth para puppeteer.
- Playwright: O plugin stealth chegará ao Playwright em breve. Acompanhe os desenvolvimentos aqui e aqui.
- Selenium: O undetected-chromedriver é um patch otimizado do Selenium Chromedriver.
Smart Proxy com Bypass Integrado do Cloudflare
A alternativa ao uso de bypasses open source do Cloudflare é usar smart proxies que desenvolvem e mantêm seus próprios bypasses privados do Cloudflare.
Eles são tipicamente mais confiáveis, pois é mais difícil para o Cloudflare desenvolver patches para eles, e são desenvolvidos por empresas de proxy que têm motivação financeira para estar sempre um passo à frente do Cloudflare e corrigir seus bypasses no minuto em que param de funcionar.
A maioria dos provedores de smart proxy (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) têm alguma forma de bypass do Cloudflare que funciona em graus variados e variam em custo.
No entanto, uma das melhores opções é usar o ScrapeOps Proxy Aggregator, pois ele integra mais de 20 provedores de proxy na mesma API de proxy e encontra o provedor de proxy mais barato/melhor para seus domínios alvo.
Engenharia Reversa da Proteção Anti-Bot do Cloudflare
Esta abordagem funciona (e é o que muitas soluções de smart proxy fazem), no entanto, não é para os fracos de coração.
Vantagens: A vantagem desta abordagem é que, se você está fazendo scraping em larga escala e não quer rodar centenas (se não milhares) de instâncias completas de navegadores headless caros. Em vez disso, você pode desenvolver o bypass do Cloudflare mais eficiente em termos de recursos possível. Um que é projetado exclusivamente para passar nos testes de JS, TLS e IP fingerprint do Cloudflare.
Desvantagens: As desvantagens desta abordagem é que você terá que mergulhar profundamente em um sistema anti-bot que foi feito propositalmente difícil de entender por fora, e testar diferentes técnicas para enganar seu sistema de verificação. Depois, manter este sistema à medida que o Cloudflare continua a desenvolver sua proteção anti-bot.
Referências
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o merchandising oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud no github.