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

164 lines
13 KiB
Markdown

# Odkrywanie CloudFlare
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
</details>
## Powszechne Techniki Odkrywania Cloudflare
* Możesz skorzystać z usługi, która udostępnia **historyczne rekordy DNS** domeny. Być 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 adres IP źródłowy.
* Sprawdź również **rekordy DNS innych subdomen wskazujących bezpośrednio na adresy IP**, ponieważ możliwe jest, że inne subdomeny wskazują na ten sam serwer (być może w celu oferowania FTP, poczty lub innej usługi).
* Jeśli znajdziesz **SSRF wewnątrz aplikacji internetowej**, możesz go wykorzystać, aby uzyskać adres IP serwera.
* Wyszukaj unikalny ciąg znaków strony internetowej w przeglądarkach takich jak shodan (a być może google i podobne?). Być może znajdziesz adres IP z tym treścią.
* W podobny sposób zamiast szukać unikalnego ciągu znaków, możesz wyszukać ikonę favicon za pomocą narzędzia: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) lub [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* To nie będzie działać zbyt często, ponieważ serwer musi wysłać tę samą odpowiedź, gdy jest odwoływany przez adres IP, ale nigdy nie wiesz.
## Narzędzia do Odkrywania 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 skorzystaj z narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które korzysta z tej 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ć certyfikaty Censys zawierające nazwę domeny, a następnie będzie szukać adresów IPv4 w tych certyfikatach, a na koniec spróbuje uzyskać dostęp do strony internetowej pod tymi adresami IP.
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r to potężne narzędzie Pythona starannie opracowane, aby odkryć prawdziwy adres IP stron internetowych zabezpieczonych przez Cloudflare i inne alternatywy, powszechnie stosowaną usługę poprawiającą bezpieczeństwo i wydajność sieci. Jego głównym celem jest dokładne rozpoznanie rzeczywistego adresu IP serwerów internetowych ukrytych za osłoną ochronną 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 adresów IP, gdzie znajduje się strona internetowa, możesz skorzystać z [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
```
## Odkrywanie Cloudflare w infrastrukturze chmurowej
Należy zauważyć, że nawet jeśli ta czynność została wykonana dla maszyn AWS, można ją wykonać 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
```
## Ominięcie Cloudflare poprzez Cloudflare
### Uwierzytelnione Pochodzenie Pobierania
Ten mechanizm polega na **certyfikatach SSL klienta** do uwierzytelniania połączeń między serwerami **odwrotnego proxy Cloudflare** a serwerem **pochodzenia**, który jest nazywany **mTLS**.
Zamiast konfigurować własny certyfikat, klienci mogą po prostu użyć certyfikatu Cloudflare, aby zezwolić na dowolne połączenie z Cloudflare, **bez względu na najemcę**.
{% hint style="danger" %}
Dlatego atakujący mógłby 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 będzie chronił wysyłanych żądań.
{% endhint %}
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
### Pozwól na adresy IP Cloudflare na białej liście
To spowoduje, że **połączenia niepochodzące z adresów IP Cloudflare** zostaną odrzucone. Jest to również podatne na wcześniejszą konfigurację, w której atakujący po prostu **skieruje swoją własną domenę w Cloudflare** na adres IP ofiary i ją zaatakuje.
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
## Ominięcie Cloudflare dla scrapingu
### Pamięć podręczna
Czasami chcesz po prostu ominąć Cloudflare, aby tylko przeszukiwać stronę internetową. Istnieją na to pewne opcje:
* 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ą ominąć (lub były w stanie ominąć) ochronę Cloudflare przed scrapowaniem:
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Rozwiązania Cloudflare
Zostało opracowanych kilka 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 bezinterfejsowe <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
Użyj przeglądarki bez interfejsu, która nie jest wykrywana jako przeglądarka zautomatyzowana (możesz potrzebować dostosować ją 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:** Wkrótce w Playwright pojawi się wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth). Śledź postępy [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) zoptymalizowany łatka do Selenium Chromedriver.
### Inteligentny Proxy z wbudowanym ominię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 specjalizowane firmy, dążąc do obejścia środków bezpieczeństwa Cloudflare (ponieważ to ich działalność).
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 ominięcia Cloudflare.
Dla tych, którzy szukają zoptymalizowanego rozwiązania, wyróżnia się [Aggregator Proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/). Ta usługa integruje ponad 20 dostawców proxy w jedno API, automatycznie wybierając najlepszy i najbardziej opłacalny proxy dla twoich domen docelowych, oferując tym samym doskonałą opcję do omijania obrony Cloudflare.
### Odwrócenie Ochrony Przeciwbota Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
Odwracanie ochrony przeciwbota Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego przeszukiwania stron internetowych bez wysokich kosztów związanych z uruchamianiem wielu przeglądarek bez interfejsu.
**Zalety:** Ta metoda pozwala na stworzenie niezwykle wydajnego ominięcia, które specjalnie celuje w kontrole Cloudflare, idealne do operacji na dużą skalę.
**Wady:** Wadą jest złożoność związana z zrozumieniem i oszukiwaniem celowo niejasnego systemu przeciwbota Cloudflare, wymagająca ciągłego wysiłku w testowaniu różnych strategii i aktualizacji ominięcia w miarę udoskonalania swojej ochrony przez Cloudflare.
Dowiedz się więcej na temat tego, jak to zrobić w [oryginalnym artykule](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
## Referencje
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
<details>
<summary><strong>Dowiedz się, jak hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>