12 KiB
Découverte de CloudFlare
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
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!
- Obtenez le merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.
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 ou avec 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 ou https://crimeflare.herokuapp.com. Ou utilisez l'outil CloudPeler (qui utilise cette API)
- Recherchez le domaine dans https://leaked.site/index.php?resolver/cloudflare.0/
- 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
- Shodan
- 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
# 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" %}
# 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 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.
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.
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/
Solveurs Cloudflare
Un certain nombre de solveurs Cloudflare ont été développés :
- FlareSolverr
- cloudscraper Guide ici
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Archivé]
- CloudflareSolverRe
Navigateurs sans tête renforcés
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 pour puppeteer.
- Playwright : Le plugin stealth arrivera bientôt sur Playwright. Suivez les développements ici et ici.
- Selenium : L'undetected-chromedriver est un patch optimisé pour Selenium Chromedriver.
Proxy intelligent avec contournement intégré de Cloudflare
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, Scrapingbee, Oxylabs, Smartproxy) 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 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
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
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
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!
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.