mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-01 00:49:40 +00:00
166 lines
13 KiB
Markdown
166 lines
13 KiB
Markdown
# Uncovering CloudFlare
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Common Techniques to Uncover Cloudflare
|
|
|
|
* Możesz użyć usługi, która daje ci **historyczne rekordy DNS** domeny. Może strona internetowa działa na adresie IP używanym wcześniej.
|
|
* To samo można osiągnąć **sprawdzając historyczne certyfikaty SSL**, które mogą wskazywać na oryginalny adres IP.
|
|
* Sprawdź również **rekordy DNS innych subdomen wskazujących bezpośrednio na IP**, ponieważ możliwe, że inne subdomeny wskazują na ten sam serwer (może aby oferować FTP, pocztę lub jakąkolwiek inną usługę).
|
|
* Jeśli znajdziesz **SSRF wewnątrz aplikacji webowej**, możesz to wykorzystać, aby uzyskać adres IP serwera.
|
|
* Wyszukaj unikalny ciąg ze strony internetowej w przeglądarkach takich jak shodan (a może google i podobne?). Może znajdziesz adres IP z tą treścią.
|
|
* W podobny sposób, zamiast szukać unikalnego ciągu, możesz wyszukiwać ikonę favicon za pomocą narzędzia: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) lub z [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
|
|
* To nie będzie działać zbyt często, ponieważ serwer musi wysyłać tę samą odpowiedź, gdy jest dostępny przez adres IP, ale nigdy nie wiadomo.
|
|
|
|
## Tools to uncover Cloudflare
|
|
|
|
* Wyszukaj domenę w [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) lub [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Lub użyj narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które używa tego API)
|
|
* Wyszukaj domenę w [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
|
|
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) to narzędzie, które będzie wyszukiwać za pomocą certyfikatów Censys, które zawierają nazwę domeny, następnie wyszuka IPv4 w tych certyfikatach, a na koniec spróbuje uzyskać dostęp do strony internetowej na tych IP.
|
|
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r to potężne narzędzie Python, starannie zaprojektowane, aby odkryć prawdziwy adres IP stron internetowych chronionych przez Cloudflare i inne alternatywy, szeroko stosowaną usługę zabezpieczeń internetowych i poprawy wydajności. Jego główną misją jest dokładne rozpoznanie rzeczywistego adresu IP serwerów internetowych, które są ukryte za ochroną Cloudflare.
|
|
* [Censys](https://search.censys.io/)
|
|
* [Shodan](https://shodan.io/)
|
|
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
|
|
* Jeśli masz zestaw potencjalnych IP, gdzie znajduje się strona internetowa, możesz użyć [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)
|
|
```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
|
|
```
|
|
## Uncovering Cloudflare from Cloud infrastructure
|
|
|
|
Zauważ, że nawet jeśli to zostało zrobione dla maszyn AWS, można to zrobić dla dowolnego innego dostawcy chmury.
|
|
|
|
Aby uzyskać lepszy opis tego procesu, sprawdź:
|
|
|
|
{% 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
|
|
```
|
|
## Obejście Cloudflare przez Cloudflare
|
|
|
|
### Uwierzytelnione pobieranie z serwera źródłowego
|
|
|
|
Ten mechanizm opiera się na **certyfikatach SSL** **klienta** [**SSL certificates**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **do uwierzytelniania połączeń** między serwerami **proxy odwrotnym Cloudflare** a serwerem **źródłowym**, co nazywa się **mTLS**.
|
|
|
|
Zamiast konfigurować własny certyfikat, klienci mogą po prostu użyć certyfikatu Cloudflare, aby umożliwić każde połączenie z Cloudflare, **bez względu na najemcę**.
|
|
|
|
{% hint style="danger" %}
|
|
Dlatego atakujący może po prostu ustawić **domenę w Cloudflare, używając certyfikatu Cloudflare i skierować** ją na adres **IP** domeny **ofiary**. W ten sposób, ustawiając swoją domenę całkowicie niechronioną, Cloudflare nie ochroni wysyłanych żądań.
|
|
{% endhint %}
|
|
|
|
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
### Lista dozwolonych adresów IP Cloudflare
|
|
|
|
To **odrzuci połączenia, które nie pochodzą z zakresów** adresów IP **Cloudflare**. To również jest podatne na wcześniejsze ustawienie, w którym atakujący po prostu **skieruje swoją własną domenę w Cloudflare** na adres **IP ofiary** i zaatakuje ją.
|
|
|
|
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
## Obejście Cloudflare w celu skrobania
|
|
|
|
### Cache
|
|
|
|
Czasami chcesz po prostu obejść Cloudflare, aby tylko skrobać stronę internetową. Istnieje kilka opcji na to:
|
|
|
|
* Użyj pamięci podręcznej Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
|
|
* Użyj innych usług pamięci podręcznej, takich jak [https://archive.org/web/](https://archive.org/web/)
|
|
|
|
### Narzędzia
|
|
|
|
Niektóre narzędzia, takie jak poniższe, mogą obejść (lub były w stanie obejść) ochronę Cloudflare przed skrobaniem:
|
|
|
|
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
|
|
|
|
### Rozwiązania Cloudflare
|
|
|
|
Opracowano szereg rozwiązań Cloudflare:
|
|
|
|
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Przewodnik tutaj](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) \[Zarchiwizowane]
|
|
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
|
|
|
|
### Wzmocnione przeglądarki bez interfejsu graficznego <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
|
|
|
|
Użyj przeglądarki bez interfejsu graficznego, która nie jest wykrywana jako zautomatyzowana przeglądarka (możesz potrzebować ją dostosować do tego). Niektóre opcje to:
|
|
|
|
* **Puppeteer:** Wtyczka [stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) dla [puppeteer](https://github.com/puppeteer/puppeteer).
|
|
* **Playwright:** Wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth) wkrótce pojawi się w Playwright. Śledź rozwój [tutaj](https://github.com/berstend/puppeteer-extra/issues/454) i [tutaj](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
|
|
* **Selenium:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) to zoptymalizowana łatka do Selenium Chromedriver.
|
|
|
|
### Inteligentny proxy z wbudowanym obejściem Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
|
|
|
|
**Inteligentne proxy** są ciągle aktualizowane przez wyspecjalizowane firmy, mające na celu przechytrzenie środków bezpieczeństwa Cloudflare (to ich biznes).
|
|
|
|
Niektóre z nich to:
|
|
|
|
* [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) są znane z własnych mechanizmów obejścia Cloudflare.
|
|
|
|
Dla tych, którzy szukają zoptymalizowanego rozwiązania, [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) wyróżnia się. Ta usługa integruje ponad 20 dostawców proxy w jednym API, automatycznie wybierając najlepsze i najbardziej opłacalne proxy dla Twoich docelowych domen, oferując w ten sposób lepszą opcję nawigacji przez zabezpieczenia Cloudflare.
|
|
|
|
### Inżynieria wsteczna ochrony przed botami Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
|
|
|
|
Inżynieria wsteczna środków ochrony przed botami Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego skrobania sieci bez wysokich kosztów uruchamiania wielu przeglądarek bez interfejsu graficznego.
|
|
|
|
**Zalety:** Ta metoda pozwala na stworzenie niezwykle efektywnego obejścia, które celuje w kontrole Cloudflare, idealne do operacji na dużą skalę.
|
|
|
|
**Wady:** Wadą jest złożoność związana z rozumieniem i oszukiwaniem celowo niejasnego systemu ochrony przed botami Cloudflare, co wymaga ciągłego wysiłku w testowaniu różnych strategii i aktualizacji obejścia, gdy Cloudflare wzmacnia swoje zabezpieczenia.
|
|
|
|
Znajdź więcej informacji na temat tego, jak to zrobić w [oryginalnym artykule](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
|
|
|
|
## Odnośniki
|
|
|
|
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
|
|
|
|
{% hint style="success" %}
|
|
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wsparcie dla HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
|
* **Dziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|
|
{% endhint %}
|