mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 06:28:27 +00:00
155 lines
12 KiB
Markdown
155 lines
12 KiB
Markdown
# Découverte de CloudFlare
|
|
|
|
<details>
|
|
|
|
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Autres moyens de soutenir HackTricks :
|
|
|
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs exclusifs**](https://opensea.io/collection/the-peass-family)
|
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-moi** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
Techniques pour essayer de découvrir les serveurs web derrière Cloudflare :
|
|
|
|
### Techniques
|
|
|
|
* Vous pouvez également utiliser un service qui vous donne les **enregistrements DNS historiques** du domaine. Peut-être que la page web fonctionne sur une adresse IP utilisée auparavant.
|
|
* On peut obtenir le même résultat en **vérifiant les certificats SSL historiques** qui pourraient pointer vers l'adresse IP d'origine.
|
|
* Vérifiez également les **enregistrements DNS d'autres sous-domaines pointant directement vers des IPs**, car il est possible que d'autres sous-domaines pointent vers le même serveur (peut-être pour offrir FTP, mail ou tout autre service).
|
|
* Si vous trouvez un **SSRF à l'intérieur de l'application web**, vous pouvez en abuser pour obtenir l'adresse IP du serveur.
|
|
*
|
|
|
|
Recherchez une chaîne unique de la page web dans des navigateurs tels que shodan (et peut-être google et similaires ?). Peut-être que vous pouvez trouver une adresse IP avec ce contenu.
|
|
|
|
* De manière similaire, au lieu de chercher une chaîne unique, vous pourriez rechercher l'icône favicon avec l'outil : [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ou avec [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
|
|
* Cela ne fonctionnera pas très fréquemment car le serveur doit envoyer la même réponse lorsqu'il est accédé par l'adresse IP, mais on ne sait jamais.
|
|
|
|
### Outils
|
|
|
|
* Recherchez le domaine dans [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ou [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ou utilisez l'outil [CloudPeler](https://github.com/zidansec/CloudPeler) (qui utilise cette API)
|
|
* Recherchez le domaine dans [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
|
|
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) est un outil qui recherchera en utilisant les certificats Censys qui contiennent le nom de domaine, puis il recherchera les IPv4 dans ces certificats et enfin il essaiera d'accéder à la page web sur ces IPs.
|
|
* [Censys](https://search.censys.io/)
|
|
* [Shodan](https://shodan.io/)
|
|
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
|
|
* Si vous avez un ensemble d'IP potentielles où la page web est située, vous pourriez utiliser [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
|
|
```
|
|
### Révéler Cloudflare à partir de machines AWS
|
|
|
|
Pour une meilleure description de ce processus, consultez :
|
|
|
|
{% 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
|
|
```
|
|
## Contournement de Cloudflare via Cloudflare
|
|
|
|
### Authenticated Origin Pulls
|
|
|
|
Ce mécanisme repose sur des [**certificats SSL clients**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **pour authentifier les connexions** entre les serveurs de **reverse-proxy de Cloudflare** et le serveur **d'origine**, ce qui est appelé **mTLS**.
|
|
|
|
Au lieu de configurer son propre certificat, le client peut simplement utiliser le certificat de Cloudflare pour autoriser toute connexion provenant de Cloudflare, **indépendamment du locataire**.
|
|
|
|
{% hint style="danger" %}
|
|
Par conséquent, un attaquant pourrait simplement configurer un **domaine dans Cloudflare en utilisant le certificat de Cloudflare et le pointer** vers l'adresse **IP du domaine victime**. De cette façon, en configurant son domaine complètement non protégé, Cloudflare ne protégera pas les requêtes envoyées.
|
|
{% endhint %}
|
|
|
|
Plus d'infos [**ici**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
### Liste blanche des adresses IP de Cloudflare
|
|
|
|
Cela **rejettera les connexions qui ne proviennent pas des plages d'adresses IP de Cloudflare**. Cela est également vulnérable à la configuration précédente où un attaquant pointe simplement **son propre domaine dans Cloudflare** vers l'adresse **IP de la victime** et l'attaque.
|
|
|
|
Plus d'infos [**ici**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
## Contourner Cloudflare pour le scraping
|
|
|
|
### Cache
|
|
|
|
Parfois, vous voulez simplement contourner Cloudflare pour scraper une page web. Il existe quelques options pour cela :
|
|
|
|
* Utiliser le cache de Google : `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
|
|
* Utiliser d'autres services de cache tels que [https://archive.org/web/](https://archive.org/web/)
|
|
|
|
### Solveurs Cloudflare
|
|
|
|
Un certain nombre de solveurs Cloudflare ont été développés :
|
|
|
|
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Guide ici](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) \[Archivé]
|
|
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
|
|
|
|
### Navigateurs sans tête renforcés <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
|
|
|
|
L'autre option est de faire tout le travail de scraping avec un navigateur sans tête qui a été renforcé pour ressembler à un vrai navigateur d'utilisateur :
|
|
|
|
* **Puppeteer :** Le [plugin stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) pour [puppeteer](https://github.com/puppeteer/puppeteer).
|
|
* **Playwright :** Le [plugin stealth](https://www.npmjs.com/package/playwright-stealth) arrivera bientôt sur Playwright. Suivez les développements [ici](https://github.com/berstend/puppeteer-extra/issues/454) et [ici](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
|
|
* **Selenium :** L'[undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) est un patch optimisé pour Selenium Chromedriver.
|
|
|
|
### Proxy intelligent avec contournement intégré de Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
|
|
|
|
L'alternative à l'utilisation de contournements open source de Cloudflare est d'utiliser des proxies intelligents qui développent et maintiennent leurs propres contournements privés de Cloudflare.
|
|
|
|
Ceux-ci sont généralement plus fiables car il est plus difficile pour Cloudflare de développer des correctifs pour eux, et ils sont développés par des entreprises de proxy qui sont financièrement motivées à rester une longueur d'avance sur Cloudflare et à réparer leurs contournements dès qu'ils cessent de fonctionner.
|
|
|
|
La plupart des fournisseurs de proxy intelligents ([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)) ont une forme de contournement de Cloudflare qui fonctionne à des degrés divers et varie en coût.
|
|
|
|
Cependant, l'une des meilleures options est d'utiliser l'[agrégateur de proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/) car il intègre plus de 20 fournisseurs de proxy dans la même API de proxy, et trouve le fournisseur de proxy le meilleur/le moins cher pour vos domaines cibles.
|
|
|
|
### Ingénierie inverse de la protection anti-bot de Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
|
|
|
|
Cette approche fonctionne (et c'est ce que font de nombreuses solutions de proxy intelligent), cependant, elle n'est pas pour les âmes sensibles.
|
|
|
|
**Avantages :** L'avantage de cette approche est que si vous scrapez à grande échelle et que vous ne voulez pas exécuter des centaines (sinon des milliers) d'instances coûteuses de navigateurs sans tête complets. Vous pouvez à la place développer le contournement de Cloudflare le plus efficace en termes de ressources possible. Un qui est uniquement conçu pour passer les tests JS, TLS et d'empreinte IP de Cloudflare.
|
|
|
|
**Inconvénients :** Les inconvénients de cette approche sont que vous devrez plonger profondément dans un système anti-bot qui a été volontairement rendu difficile à comprendre de l'extérieur, et tester différentes techniques pour tromper leur système de vérification. Puis maintenir ce système alors que Cloudflare continue de développer sa protection anti-bot.
|
|
|
|
## Références
|
|
|
|
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Autres moyens de soutenir HackTricks :
|
|
|
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|