mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-13 06:42:54 +00:00
164 lines
13 KiB
Markdown
164 lines
13 KiB
Markdown
# Descubriendo CloudFlare
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Otras formas de apoyar a HackTricks:
|
|
|
|
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs a** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Técnicas Comunes para Descubrir Cloudflare
|
|
|
|
* Puedes utilizar algún servicio que te proporcione los **registros DNS históricos** del dominio. Tal vez la página web esté alojada en una dirección IP utilizada anteriormente.
|
|
* Lo mismo se puede lograr **verificando certificados SSL históricos** que podrían apuntar a la dirección IP de origen.
|
|
* Verifica también los **registros DNS de otros subdominios que apunten directamente a IPs**, ya que es posible que otros subdominios estén apuntando al mismo servidor (quizás para ofrecer FTP, correo u otro servicio).
|
|
* Si encuentras un **SSRF dentro de la aplicación web**, puedes abusar de él para obtener la dirección IP del servidor.
|
|
* Busca una cadena única de la página web en buscadores como shodan (¿y tal vez en Google y similares?). Tal vez puedas encontrar una dirección IP con ese contenido.
|
|
* De manera similar, en lugar de buscar una cadena única, podrías buscar el icono de favicon con la herramienta: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) o con [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
|
|
* Esto no funcionará muy frecuentemente porque el servidor debe enviar la misma respuesta cuando se accede mediante la dirección IP, pero nunca se sabe.
|
|
|
|
## Herramientas para descubrir Cloudflare
|
|
|
|
* Busca el dominio en [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) o [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). O utiliza la herramienta [CloudPeler](https://github.com/zidansec/CloudPeler) (que utiliza esa API)
|
|
* Busca el dominio en [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
|
|
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) es una herramienta que buscará certificados de Censys que contengan el nombre de dominio, luego buscará direcciones IPv4 dentro de esos certificados y finalmente intentará acceder a la página web en esas IPs.
|
|
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r es una potente herramienta en Python meticulosamente diseñada para descubrir la verdadera dirección IP de sitios web protegidos por Cloudflare y otras alternativas, un servicio ampliamente adoptado de seguridad web y mejora de rendimiento. Su misión principal es discernir con precisión la dirección IP real de servidores web que están ocultos detrás del escudo protector de Cloudflare.
|
|
* [Censys](https://search.censys.io/)
|
|
* [Shodan](https://shodan.io/)
|
|
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
|
|
* Si tienes un conjunto de IPs potenciales donde se encuentra la página web, podrías utilizar [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
|
|
```
|
|
## Descubriendo Cloudflare desde la infraestructura en la nube
|
|
|
|
Tenga en cuenta que aunque esto se haya hecho para máquinas de AWS, podría hacerse para cualquier otro proveedor de servicios en la nube.
|
|
|
|
Para obtener una mejor descripción de este proceso, consulte:
|
|
|
|
{% 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
|
|
```
|
|
## Saltando Cloudflare a través de Cloudflare
|
|
|
|
### Extracciones de origen autenticadas
|
|
|
|
Este mecanismo se basa en **certificados SSL del cliente** para autenticar las conexiones entre los servidores de **proxy inverso de Cloudflare** y el servidor de **origen**, lo que se llama **mTLS**.
|
|
|
|
En lugar de configurar su propio certificado, los clientes pueden simplemente usar el certificado de Cloudflare para permitir cualquier conexión desde Cloudflare, **independientemente del inquilino**.
|
|
|
|
{% hint style="danger" %}
|
|
Por lo tanto, un atacante podría simplemente configurar un **dominio en Cloudflare usando el certificado de Cloudflare y apuntarlo** a la dirección IP del dominio de la **víctima**. De esta manera, al configurar su dominio completamente desprotegido, Cloudflare no protegerá las solicitudes enviadas.
|
|
{% endhint %}
|
|
|
|
Más información [**aquí**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
### Permitir direcciones IP de Cloudflare en la lista blanca
|
|
|
|
Esto **rechazará las conexiones que no provengan de las** gamas de direcciones IP de Cloudflare. Esto también es vulnerable a la configuración anterior donde un atacante simplemente **apunta su propio dominio en Cloudflare** a la dirección IP de la **víctima** y la ataca.
|
|
|
|
Más información [**aquí**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
|
|
|
|
## Saltar Cloudflare para hacer scraping
|
|
|
|
### Caché
|
|
|
|
A veces solo quieres saltar Cloudflare para hacer scraping de la página web. Hay algunas opciones para esto:
|
|
|
|
* Usa la caché de Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
|
|
* Usa otros servicios de caché como [https://archive.org/web/](https://archive.org/web/)
|
|
|
|
### Herramientas
|
|
|
|
Algunas herramientas como las siguientes pueden saltar (o pudieron saltar) la protección de Cloudflare contra el scraping:
|
|
|
|
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
|
|
|
|
### Solucionadores de Cloudflare
|
|
|
|
Se han desarrollado varios solucionadores de Cloudflare:
|
|
|
|
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Guía aquí](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) \[Archivado]
|
|
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
|
|
|
|
### Navegadores headless fortificados <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
|
|
|
|
Utiliza un navegador headless que no sea detectado como un navegador automatizado (es posible que necesites personalizarlo para eso). Algunas opciones son:
|
|
|
|
* **Puppeteer:** El [plugin stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) para [puppeteer](https://github.com/puppeteer/puppeteer).
|
|
* **Playwright:** El [plugin stealth](https://www.npmjs.com/package/playwright-stealth) llegará pronto a Playwright. Sigue los desarrollos [aquí](https://github.com/berstend/puppeteer-extra/issues/454) y [aquí](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
|
|
* **Selenium:** El [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) es un parche optimizado de Selenium Chromedriver.
|
|
|
|
### Proxy inteligente con bypass integrado de Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
|
|
|
|
Los proxies inteligentes se actualizan continuamente por empresas especializadas, con el objetivo de superar las medidas de seguridad de Cloudflare (ya que ese es su negocio).
|
|
|
|
Algunos de ellos son:
|
|
|
|
* [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) son conocidos por sus mecanismos de bypass de Cloudflare propietarios.
|
|
|
|
Para aquellos que buscan una solución optimizada, el [Agregador de Proxies de ScrapeOps](https://scrapeops.io/proxy-aggregator/) se destaca. Este servicio integra más de 20 proveedores de proxy en una sola API, seleccionando automáticamente el proxy mejor y más rentable para sus dominios objetivo, ofreciendo así una opción superior para navegar por las defensas de Cloudflare.
|
|
|
|
### Ingeniería inversa de la protección anti-bot de Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
|
|
|
|
La ingeniería inversa de las medidas anti-bot de Cloudflare es una táctica utilizada por proveedores de proxies inteligentes, adecuada para el scraping web extensivo sin el alto costo de ejecutar muchos navegadores headless.
|
|
|
|
**Ventajas:** Este método permite la creación de un bypass extremadamente eficiente que se dirige específicamente a las verificaciones de Cloudflare, ideal para operaciones a gran escala.
|
|
|
|
**Desventajas:** La desventaja es la complejidad involucrada en comprender y engañar al sistema anti-bot deliberadamente oscuro de Cloudflare, lo que requiere un esfuerzo continuo para probar diferentes estrategias y actualizar el bypass a medida que Cloudflare mejora sus protecciones.
|
|
|
|
Encuentra más información sobre cómo hacer esto en el [artículo original](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
|
|
|
|
## Referencias
|
|
|
|
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprende hacking de AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Otras formas de apoyar a HackTricks:
|
|
|
|
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs a** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|