hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md

160 lines
12 KiB
Markdown
Raw Normal View History

2024-02-10 13:03:23 +00:00
# Scoprire CloudFlare
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2023-12-31 01:24:39 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2020-12-08 12:25:09 +00:00
2024-02-10 13:03:23 +00:00
## Tecniche comuni per scoprire Cloudflare
2024-02-10 13:03:23 +00:00
* Puoi utilizzare un servizio che ti fornisce i **record DNS storici** del dominio. Forse la pagina web è in esecuzione su un indirizzo IP utilizzato in precedenza.
* Lo stesso risultato potrebbe essere ottenuto **verificando i certificati SSL storici** che potrebbero puntare all'indirizzo IP di origine.
* Verifica anche **i record DNS di altri sottodomini che puntano direttamente agli IP**, poiché è possibile che altri sottodomini puntino allo stesso server (forse per offrire FTP, posta o qualsiasi altro servizio).
* Se trovi un **SSRF all'interno dell'applicazione web**, puoi sfruttarlo per ottenere l'indirizzo IP del server.
* Cerca una stringa unica della pagina web in browser come shodan (e forse google e simili?). Forse puoi trovare un indirizzo IP con quel contenuto.
* In modo simile, anziché cercare una stringa univoca, puoi cercare l'icona favicon con lo strumento: [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)
* Questo non funzionerà molto frequentemente perché il server deve inviare la stessa risposta quando viene accesso tramite l'indirizzo IP, ma non si sa mai.
2024-02-10 13:03:23 +00:00
## Strumenti per scoprire Cloudflare
2024-02-10 13:03:23 +00:00
* Cerca il dominio all'interno di [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) o [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Oppure usa lo strumento [CloudPeler](https://github.com/zidansec/CloudPeler) (che utilizza quella API)
* Cerca il dominio in [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) è uno strumento che cercherà utilizzando i certificati Censys che contengono il nome di dominio, quindi cercherà gli IPv4 all'interno di quei certificati e infine cercherà di accedere alla pagina web in quegli IP.
* [Censys](https://search.censys.io/)
* [Shodan](https://shodan.io/)
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
2024-02-10 13:03:23 +00:00
* Se hai un insieme di IP potenziali in cui si trova la pagina web, puoi utilizzare [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)
2022-08-17 12:21:23 +00:00
```bash
2022-08-19 16:13:59 +00:00
# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one
2022-08-17 12:21:23 +00:00
# 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
2024-02-10 13:03:23 +00:00
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"
2022-08-17 12:21:23 +00:00
done
```
2024-02-10 13:03:23 +00:00
## Scoprire Cloudflare da macchine Cloud
2022-08-17 12:21:23 +00:00
2024-02-10 13:03:23 +00:00
Nota che anche se questo è stato fatto per macchine AWS, potrebbe essere fatto per qualsiasi altro provider cloud.
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Per una descrizione più dettagliata di questo processo, consulta:
2023-02-16 14:44:06 +00:00
{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2023-01-11 16:53:45 +00:00
```bash
# Find open ports
2023-01-12 12:11:28 +00:00
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
2023-01-11 16:53:45 +00:00
# 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
2023-01-11 16:57:23 +00:00
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
2023-01-11 16:53:45 +00:00
```
2024-02-10 13:03:23 +00:00
## Bypassare Cloudflare tramite Cloudflare
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
### Autenticazione delle richieste di origine
2024-02-10 13:03:23 +00:00
Questo meccanismo si basa su **certificati SSL del client** per autenticare le connessioni tra i server **reverse-proxy di Cloudflare** e il server **origine**, chiamato **mTLS**.
2024-02-10 13:03:23 +00:00
Invece di configurare il proprio certificato, i client possono semplicemente utilizzare il certificato di Cloudflare per consentire qualsiasi connessione da Cloudflare, **indipendentemente dal tenant**.
{% hint style="danger" %}
2024-02-10 13:03:23 +00:00
Pertanto, un attaccante potrebbe semplicemente impostare un **dominio in Cloudflare utilizzando il certificato di Cloudflare e puntarlo** all'indirizzo IP del **dominio vittima**. In questo modo, impostando il suo dominio completamente non protetto, Cloudflare non proteggerà le richieste inviate.
{% endhint %}
2024-02-10 13:03:23 +00:00
Ulteriori informazioni [**qui**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
2024-02-10 13:03:23 +00:00
### Consentire solo gli indirizzi IP di Cloudflare
2024-02-10 13:03:23 +00:00
Questo **rifiuterà le connessioni che non provengono dagli** intervalli di indirizzi IP di Cloudflare. Anche questa configurazione è vulnerabile alla situazione precedente in cui un attaccante **punta il proprio dominio in Cloudflare** all'**indirizzo IP della vittima** e la attacca.
2024-02-10 13:03:23 +00:00
Ulteriori informazioni [**qui**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
2024-02-10 13:03:23 +00:00
## Bypassare Cloudflare per lo scraping
### Cache
2024-02-10 13:03:23 +00:00
A volte si desidera bypassare Cloudflare solo per fare scraping della pagina web. Ci sono alcune opzioni per farlo:
2024-02-10 13:03:23 +00:00
* Utilizzare la cache di Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* Utilizzare altri servizi di cache come [https://archive.org/web/](https://archive.org/web/)
2024-02-10 13:03:23 +00:00
### Risolutori di Cloudflare
2024-02-10 13:03:23 +00:00
Sono stati sviluppati diversi risolutori di Cloudflare:
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
2024-02-10 13:03:23 +00:00
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Guida qui](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)
2024-02-10 13:03:23 +00:00
* [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[Archiviato]
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
2024-02-10 13:03:23 +00:00
### Browser headless rinforzati <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
2024-02-10 13:03:23 +00:00
Utilizzare un browser headless che non venga rilevato come un browser automatizzato (potrebbe essere necessario personalizzarlo per questo). Alcune opzioni sono:
2024-02-10 13:03:23 +00:00
* **Puppeteer:** Il [plugin stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) per [puppeteer](https://github.com/puppeteer/puppeteer).
* **Playwright:** Il [plugin stealth](https://www.npmjs.com/package/playwright-stealth) arriverà presto su Playwright. Seguire gli sviluppi [qui](https://github.com/berstend/puppeteer-extra/issues/454) e [qui](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
* **Selenium:** L'[undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver), una patch ottimizzata per Selenium Chromedriver.
2024-02-10 13:03:23 +00:00
### Proxy intelligente con bypass integrato di Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
2024-02-10 13:03:23 +00:00
I proxy intelligenti vengono continuamente aggiornati da aziende specializzate, con l'obiettivo di eludere le misure di sicurezza di Cloudflare (poiché questa è la loro attività).
2024-02-10 13:03:23 +00:00
Alcuni di essi sono:
2024-02-09 07:15:24 +00:00
* [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)
2024-02-10 13:03:23 +00:00
* [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) sono noti per i loro meccanismi proprietari di bypass di Cloudflare.
2024-02-10 13:03:23 +00:00
Per coloro che cercano una soluzione ottimizzata, spicca il [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/). Questo servizio integra oltre 20 provider di proxy in un'unica API, selezionando automaticamente il proxy migliore e più conveniente per i tuoi domini di destinazione, offrendo così un'opzione superiore per navigare le difese di Cloudflare.
2024-02-10 13:03:23 +00:00
### Ingegneria inversa della protezione anti-bot di Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
2024-02-10 13:03:23 +00:00
L'ingegneria inversa delle misure anti-bot di Cloudflare è una tattica utilizzata dai fornitori di proxy intelligenti, adatta per lo scraping web estensivo senza l'elevato costo di esecuzione di molti browser headless.
2024-02-09 07:15:24 +00:00
2024-02-10 13:03:23 +00:00
**Vantaggi:** Questo metodo consente la creazione di un bypass estremamente efficiente che mira specificamente ai controlli di Cloudflare, ideale per operazioni su larga scala.
2024-02-09 07:15:24 +00:00
2024-02-10 13:03:23 +00:00
**Svantaggi:** Lo svantaggio è la complessità nel comprendere e ingannare il sistema anti-bot di Cloudflare, deliberatamente oscuro, richiedendo uno sforzo continuo per testare diverse strategie e aggiornare il bypass man mano che Cloudflare migliora le sue protezioni.
2024-02-09 07:15:24 +00:00
2024-02-10 13:03:23 +00:00
Trova ulteriori informazioni su come fare ciò nell'[articolo originale](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
2024-02-10 13:03:23 +00:00
## Riferimenti
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
2023-01-11 16:53:45 +00:00
<details>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2023-12-31 01:24:39 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>