Scoprire CloudFlare

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Tecniche comuni per scoprire Cloudflare

  • Puoi usare qualche servizio che ti fornisce i record DNS storici del dominio. Forse la pagina web è in esecuzione su un indirizzo IP usato in passato.
  • Lo stesso si può ottenere controllando certificati SSL storici che potrebbero puntare all’indirizzo IP di origine.
  • Controlla anche i record DNS di altri sottodomini che puntano direttamente a IP, poiché è possibile che altri sottodomini puntino allo stesso server (ad esempio per offrire FTP, mail o altri servizi).
  • Se trovi una SSRF nell’applicazione web puoi abusarne per ottenere l’indirizzo IP del server.
  • Cerca una stringa unica della pagina web su motori come shodan (e magari google e simili). Potresti trovare un indirizzo IP con quel contenuto.
  • In modo simile, invece di cercare una stringa unica puoi cercare il favicon con lo strumento: https://github.com/karma9874/CloudFlare-IP o con https://github.com/pielco11/fav-up
  • Questo non funziona molto spesso perché il server deve inviare la stessa risposta quando viene raggiunto tramite l’indirizzo IP, ma non si sa mai.

Strumenti per scoprire Cloudflare

  • Cerca il dominio su http://www.crimeflare.org:82/cfs.html o https://crimeflare.herokuapp.com. Oppure usa lo strumento CloudPeler (che usa quella API)
  • Cerca il dominio in https://leaked.site/index.php?resolver/cloudflare.0/
  • [CF-Hero] è uno strumento di reconnaissance completo sviluppato per scoprire i reali indirizzi IP delle applicazioni web protette da Cloudflare. Esegue raccolta di intelligence multi-sorgente tramite vari metodi.
  • [CloudFlair] è uno strumento che cercherà usando i certificati Censys che contengono il nome di dominio, poi cercherà IPv4 all’interno di quei certificati e infine proverà ad accedere alla pagina web su quegli IP.
  • [CloakQuest3r]: CloakQuest3r è un potente tool Python progettato per scoprire il vero indirizzo IP di siti web protetti da Cloudflare e altre soluzioni simili, un servizio ampiamente adottato per sicurezza e miglioramento delle prestazioni web. La sua missione principale è identificare con precisione l’indirizzo IP reale dei web server nascosti dietro lo scudo protettivo di Cloudflare.
  • Censys
  • Shodan
  • Bypass-firewalls-by-DNS-history
  • Se hai un insieme di IP potenziali in cui si trova la pagina web puoi usare 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

Scoprire Cloudflare dall’infrastruttura Cloud

Nota che, anche se questo è stato fatto per macchine AWS, può essere eseguito per qualsiasi altro provider cloud.

Per una descrizione più dettagliata di questo processo consulta:

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

Bypassare Cloudflare tramite Cloudflare

Authenticated Origin Pulls

Questo meccanismo si basa su client SSL certificates per autenticare le connessioni tra i server Cloudflare’s reverse-proxy e il server origin, che viene chiamato mTLS.

Invece di configurare il proprio certificato, i clienti possono semplicemente usare il certificato di Cloudflare per permettere qualsiasi connessione da Cloudflare, indipendentemente dal tenant.

Caution

Pertanto, un attaccante potrebbe semplicemente impostare un domain in Cloudflare using Cloudflare’s certificate and point esso all’indirizzo IP del dominio victim. In questo modo, impostando il suo dominio completamente non protetto, Cloudflare non proteggerà le richieste inviate.

More info here.

Allowlist Cloudflare IP Addresses

Questo rifiuterà le connessioni che non originano dagli intervalli di indirizzi IP di Cloudflare. Anche questa configurazione è vulnerabile allo scenario precedente, in cui un attaccante semplicemente point his own domain in Cloudflare all’indirizzo victims IP e lo attacca.

More info here.

Bypass Cloudflare for scraping

Cache

A volte si vuole semplicemente bypassare Cloudflare per limitarsi a fare scraping della pagina web. Ci sono alcune opzioni per questo:

  • Use Google cache: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • Use other cache services such as https://archive.org/web/

Tools

Alcuni tool come i seguenti possono bypassare (o sono stati in grado di bypassare) la protezione di Cloudflare contro lo scraping:

Cloudflare Solvers

Sono stati sviluppati diversi Cloudflare solvers:

Fortified Headless Browsers

Usa un headless browser che non venga rilevato come browser automatizzato (potrebbe essere necessario personalizzarlo per questo). Alcune opzioni sono:

  • Puppeteer: The stealth plugin for puppeteer.
  • Playwright: The stealth plugin is coming to Playwright soon. Follow developments here and here.
  • Selenium: SeleniumBase è un moderno framework di automazione browser con capacità stealth integrate. Offre due modalità: UC Mode, una patch ottimizzata per Selenium ChromeDriver basata su undetected-chromedriver, e CDP Mode, che può bypassare il rilevamento dei bot, risolvere i CAPTCHAs e sfruttare metodi avanzati del Chrome DevTools Protocol.

Smart Proxy With Cloudflare Built-In Bypass

Smart proxies sono continuamente aggiornati da aziende specializzate, con l’obiettivo di eludere le misure di sicurezza di Cloudflare (dato che questo è il loro business).

Alcuni di essi sono:

Per chi cerca una soluzione ottimizzata, il ScrapeOps Proxy Aggregator si distingue. Questo servizio integra oltre 20 provider di proxy in un’unica API, selezionando automaticamente il proxy migliore e più conveniente per i domini target, offrendo così un’opzione superiore per aggirare le difese di Cloudflare.

Reverse Engineer Cloudflare Anti-Bot Protection

Il reverse engineering delle misure anti-bot di Cloudflare è una tattica usata dai provider di smart proxy, adatta per scraping su larga scala senza l’alto costo di eseguire molti headless browser.

Vantaggi: Questo metodo permette la creazione di un bypass estremamente efficiente che mira specificamente ai controlli di Cloudflare, ideale per operazioni su larga scala.

Svantaggi: Lo svantaggio è la complessità nel comprendere e ingannare il sistema anti-bot deliberatamente oscuro di Cloudflare, richiedendo uno sforzo continuo per testare strategie diverse e aggiornare il bypass man mano che Cloudflare migliora le sue protezioni.

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

References

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks