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

164 lines
13 KiB
Markdown

# Aufdecken von CloudFlare
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Heldenniveau mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>
## Häufige Techniken zum Aufdecken von Cloudflare
* Sie können einen Dienst verwenden, der Ihnen die **historischen DNS-Einträge** der Domain liefert. Möglicherweise läuft die Webseite auf einer zuvor verwendeten IP-Adresse.
* Ebenso könnte man dies erreichen, indem man **historische SSL-Zertifikate überprüft**, die auf die Ursprungs-IP-Adresse verweisen könnten.
* Überprüfen Sie auch die **DNS-Einträge anderer Subdomains, die direkt auf IPs verweisen**, da es möglich ist, dass andere Subdomains auf denselben Server verweisen (vielleicht um FTP, E-Mail oder einen anderen Dienst anzubieten).
* Wenn Sie eine **SSRF innerhalb der Webanwendung finden**, können Sie sie missbrauchen, um die IP-Adresse des Servers zu erhalten.
* Suchen Sie nach einer eindeutigen Zeichenfolge der Webseite in Browsern wie Shodan (und vielleicht Google und ähnlichen?). Möglicherweise finden Sie eine IP-Adresse mit diesem Inhalt.
* Auf ähnliche Weise könnten Sie anstelle einer eindeutigen Zeichenfolge nach dem Favicon-Symbol mit dem Tool suchen: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) oder mit [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* Dies funktioniert nicht sehr häufig, da der Server dieselbe Antwort senden muss, wenn er über die IP-Adresse aufgerufen wird, aber man weiß nie.
## Tools zum Aufdecken von Cloudflare
* Suchen Sie nach der Domain unter [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) oder [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Oder verwenden Sie das Tool [CloudPeler](https://github.com/zidansec/CloudPeler) (das diese API verwendet)
* Suchen Sie nach der Domain unter [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) ist ein Tool, das mithilfe von Censys-Zertifikaten sucht, die den Domainnamen enthalten, dann nach IPv4-Adressen in diesen Zertifikaten sucht und schließlich versucht, die Webseite unter diesen IPs aufzurufen.
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r ist ein leistungsstarkes Python-Tool, das sorgfältig entwickelt wurde, um die wahre IP-Adresse von Websites aufzudecken, die von Cloudflare und anderen Alternativen geschützt werden, einem weit verbreiteten Web-Sicherheits- und Leistungsverbesserungsdienst. Seine Hauptaufgabe besteht darin, die tatsächliche IP-Adresse von Webservern genau zu erkennen, die hinter dem schützenden Schild von Cloudflare verborgen sind.
* [Censys](https://search.censys.io/)
* [Shodan](https://shodan.io/)
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
* Wenn Sie eine Reihe potenzieller IPs haben, auf denen sich die Webseite befindet, könnten Sie [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder) verwenden.
```bash
# 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
```
## Aufdecken von Cloudflare aus der Cloud-Infrastruktur
Beachten Sie, dass dies auch für AWS-Maschinen durchgeführt werden kann, aber auch für andere Cloud-Anbieter.
Für eine bessere Beschreibung dieses Prozesses siehe:
{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
```bash
# 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
```
## Umgehen von Cloudflare über Cloudflare
### Authentifizierte Ursprungsabrufe
Dieser Mechanismus basiert auf **Client**-[**SSL-Zertifikaten**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/), um Verbindungen zwischen den **Cloudflare-Reverse-Proxy**-Servern und dem **Ursprungs**-Server zu authentifizieren, was als **mTLS** bezeichnet wird.
Anstatt ein eigenes Zertifikat zu konfigurieren, können Kunden einfach Cloudflares Zertifikat verwenden, um jede Verbindung von Cloudflare zuzulassen, **unabhängig vom Mieter**.
{% hint style="danger" %}
Daher könnte ein Angreifer einfach eine **Domain in Cloudflare mit Cloudflares Zertifikat einrichten** und sie auf die **IP-Adresse der Opfer**-Domain zeigen. Auf diese Weise, indem er seine Domain vollständig ungeschützt einrichtet, wird Cloudflare die gesendeten Anfragen nicht schützen.
{% endhint %}
Weitere Informationen [**hier**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
### Erlauben von Cloudflare-IP-Adressen
Dies wird **Verbindungen ablehnen, die nicht von Cloudflares** IP-Adressbereichen stammen. Dies ist auch anfällig für das vorherige Setup, bei dem ein Angreifer einfach **seine eigene Domain in Cloudflare** auf die **IP-Adresse des Opfers** zeigt und es angreift.
Weitere Informationen [**hier**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
## Umgehen von Cloudflare für das Scraping
### Cache
Manchmal möchten Sie Cloudflare einfach umgehen, um nur die Webseite zu scrapen. Hierfür gibt es einige Optionen:
* Verwenden Sie den Google-Cache: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* Verwenden Sie andere Cache-Dienste wie [https://archive.org/web/](https://archive.org/web/)
### Tools
Einige Tools wie die folgenden können Cloudflares Schutz vor dem Scrapen umgehen (oder konnten dies):
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Cloudflare-Löser
Es wurden mehrere Cloudflare-Löser entwickelt:
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Anleitung hier](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)
* [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[Archiviert]
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
### Verstärkte Headless-Browser <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
Verwenden Sie einen Headless-Browser, der nicht als automatisierter Browser erkannt wird (möglicherweise müssen Sie ihn dafür anpassen). Einige Optionen sind:
* **Puppeteer:** Das [Stealth-Plugin](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) für [Puppeteer](https://github.com/puppeteer/puppeteer).
* **Playwright:** Das [Stealth-Plugin](https://www.npmjs.com/package/playwright-stealth) kommt bald zu Playwright. Folgen Sie den Entwicklungen [hier](https://github.com/berstend/puppeteer-extra/issues/454) und [hier](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
* **Selenium:** Der [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) ist ein optimierter Selenium Chromedriver-Patch.
### Intelligenter Proxy mit integriertem Cloudflare-Bypass <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
**Intelligente Proxy** werden kontinuierlich von spezialisierten Unternehmen aktualisiert, um Cloudflares Sicherheitsmaßnahmen zu umgehen (da dies ihr Geschäft ist).
Einige davon sind:
* [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)
* [Smartproxy](https://prf.hn/click/camref:1100loxdG/\[p\_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) sind bekannt für ihre proprietären Cloudflare-Bypass-Mechanismen.
Für diejenigen, die eine optimierte Lösung suchen, sticht der [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) heraus. Dieser Service integriert über 20 Proxy-Anbieter in eine einzige API, wählt automatisch den besten und kostengünstigsten Proxy für Ihre Ziel-Domains aus und bietet somit eine überlegene Option zum Navigieren durch Cloudflares Verteidigungen.
### Reverse Engineering von Cloudflares Anti-Bot-Schutz <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
Das Reverse Engineering der Anti-Bot-Maßnahmen von Cloudflare ist eine Taktik, die von intelligenten Proxy-Anbietern verwendet wird und sich für umfangreiches Web-Scraping ohne hohe Kosten für den Betrieb vieler Headless-Browser eignet.
**Vorteile:** Diese Methode ermöglicht die Erstellung eines äußerst effizienten Umgehungsmechanismus, der speziell auf Cloudflares Überprüfungen abzielt und ideal für groß angelegte Operationen ist.
**Nachteile:** Der Nachteil besteht in der Komplexität, Cloudflares absichtlich undurchsichtiges Anti-Bot-System zu verstehen und zu täuschen, was einen fortlaufenden Aufwand erfordert, um verschiedene Strategien zu testen und den Umgehungsweg zu aktualisieren, wenn Cloudflare seine Schutzmaßnahmen verbessert.
Weitere Informationen dazu finden Sie im [Originalartikel](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
## Referenzen
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben** oder **HackTricks als PDF herunterladen** möchten, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>