12 KiB
Scoprire CloudFlare
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud github repos.
Tecniche comuni per scoprire Cloudflare
- 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 o con 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.
Strumenti per scoprire Cloudflare
- Cerca il dominio all'interno di http://www.crimeflare.org:82/cfs.html o https://crimeflare.herokuapp.com. Oppure usa lo strumento CloudPeler (che utilizza quella API)
- Cerca il dominio in https://leaked.site/index.php?resolver/cloudflare.0/
- 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
- Shodan
- Bypass-firewalls-by-DNS-history
- Se hai un insieme di IP potenziali in cui si trova la pagina web, puoi utilizzare 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 da macchine Cloud
Nota che anche se questo è stato fatto per macchine AWS, potrebbe essere fatto per qualsiasi altro provider cloud.
Per una descrizione più dettagliata di questo processo, consulta:
{% 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
Bypassare Cloudflare tramite Cloudflare
Autenticazione delle richieste di origine
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.
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" %} 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 %}
Ulteriori informazioni qui.
Consentire solo gli indirizzi IP di Cloudflare
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.
Ulteriori informazioni qui.
Bypassare Cloudflare per lo scraping
Cache
A volte si desidera bypassare Cloudflare solo per fare scraping della pagina web. Ci sono alcune opzioni per farlo:
- 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/
Risolutori di Cloudflare
Sono stati sviluppati diversi risolutori di Cloudflare:
- FlareSolverr
- cloudscraper Guida qui
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Archiviato]
- CloudflareSolverRe
Browser headless rinforzati
Utilizzare un browser headless che non venga rilevato come un browser automatizzato (potrebbe essere necessario personalizzarlo per questo). Alcune opzioni sono:
- Puppeteer: Il plugin stealth per puppeteer.
- Playwright: Il plugin stealth arriverà presto su Playwright. Seguire gli sviluppi qui e qui.
- Selenium: L'undetected-chromedriver, una patch ottimizzata per Selenium Chromedriver.
Proxy intelligente con bypass integrato di Cloudflare
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à).
Alcuni di essi sono:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy sono noti per i loro meccanismi proprietari di bypass di Cloudflare.
Per coloro che cercano una soluzione ottimizzata, spicca il ScrapeOps 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.
Ingegneria inversa della protezione anti-bot di Cloudflare
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.
Vantaggi: Questo metodo consente 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 di Cloudflare, deliberatamente oscuro, richiedendo uno sforzo continuo per testare diverse strategie e aggiornare il bypass man mano che Cloudflare migliora le sue protezioni.
Trova ulteriori informazioni su come fare ciò nell'articolo originale.
Riferimenti
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud github repos.