Descubriendo CloudFlare

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Técnicas comunes para descubrir CloudFlare

  • Puedes usar algún servicio que te proporcione los registros DNS históricos del dominio. Puede que la página web se esté ejecutando en una dirección IP usada anteriormente.
  • Lo mismo se puede lograr comprobando certificados SSL históricos que podrían apuntar a la IP de origen.
  • Revisa también los registros DNS de otros subdominios que apunten directamente a IPs, ya que es posible que otros subdominios apunten al mismo servidor (por ejemplo para 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 quizá google y similares). Puede que encuentres una dirección IP con ese contenido.
  • De manera similar, en lugar de buscar una cadena única podrías buscar el favicon con la herramienta: https://github.com/karma9874/CloudFlare-IP o con https://github.com/pielco11/fav-up
  • Esto no funcionará con mucha frecuencia porque el servidor debe enviar la misma respuesta cuando se accede por la dirección IP, pero nunca se sabe.

Herramientas para descubrir CloudFlare

  • Busca el dominio en http://www.crimeflare.org:82/cfs.html o https://crimeflare.herokuapp.com. O usa la herramienta CloudPeler (que usa esa API)
  • Busca el dominio en https://leaked.site/index.php?resolver/cloudflare.0/
  • CF-Hero es una herramienta de reconocimiento integral desarrollada para descubrir las direcciones IP reales de aplicaciones web protegidas por Cloudflare. Realiza recolección de inteligencia de múltiples fuentes mediante varios métodos.
  • CloudFlair es una herramienta que buscará usando certificados de Censys que contienen el nombre del dominio, luego buscará IPv4s dentro de esos certificados y finalmente intentará acceder a la página web en esas IPs.
  • 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 y mejora del rendimiento web. Su misión principal es discernir con precisión la dirección IP real de los servidores web que están ocultos detrás del escudo protector de Cloudflare.
  • Censys
  • Shodan
  • Bypass-firewalls-by-DNS-history
  • Si tienes un conjunto de IPs potenciales donde podría estar la página web, puedes usar 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

Descubrir Cloudflare desde la infraestructura en la nube

Ten en cuenta que, aunque esto se hizo para máquinas AWS, podría hacerse en cualquier otro proveedor de nube.

Para una mejor descripción de este proceso, consulta:

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

Eludir Cloudflare mediante Cloudflare

Authenticated Origin Pulls

Este mecanismo se basa en client SSL certificates para autenticar las conexiones entre los servidores Cloudflare’s reverse-proxy y el servidor origin, lo que se denomina mTLS.

Instead of configuring it’s own certificate, customers can simple use Cloudflare’s certificate to allow any connection from Cloudflare, regardless of the tenant.

Caution

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 victim. De este modo, al dejar su dominio completamente desprotegido, Cloudflare no protegerá las solicitudes enviadas.

More info here.

Allowlist Cloudflare IP Addresses

This will reject connections that do not originate from Cloudflare’s IP address ranges. This is also vulnerable to the previous setup where an attacker just point his own domain in Cloudflare to the victims IP address and attack it.

More info here.

Bypass Cloudflare for scraping

Cache

Sometimes you just want to bypass Cloudflare to only scrape the web page. There are some options for this:

  • Use Google cache: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • Use other cache services such as https://archive.org/web/

Tools

Some tools like the following ones can bypass (or were able to bypass) Cloudflare’s protection against scraping:

Cloudflare Solvers

There have been a number of Cloudflare solvers developed:

Fortified Headless Browsers

Usa un headless browser que no sea detectado como navegador automatizado (puede que necesites personalizarlo para ello). Algunas opciones son:

  • Puppeteer: The stealth plugin for puppeteer.
  • Playwright: The stealth plugin is coming to Playwright soon. Follow developments here and here.
  • Selenium: SeleniumBase is a modern browser automation framework featuring built-in stealth capabilities. It offers two modes: UC Mode, an optimized Selenium ChromeDriver patch based on undetected-chromedriver, and CDP Mode, which can bypass bot detection, solve CAPTCHAs, and leverage advanced methods from the Chrome DevTools Protocol.

Smart Proxy With Cloudflare Built-In Bypass

Smart proxies son proxies actualizados continuamente por empresas especializadas, con el objetivo de burlar las medidas de seguridad de Cloudflare (ese es su negocio).

Some of them are:

For those seeking an optimized solution, the ScrapeOps Proxy Aggregator stands out. This service integrates over 20 proxy providers into a single API, automatically selecting the best and most cost-effective proxy for your target domains, thus offering a superior option for navigating Cloudflare’s defenses.

Reverse Engineer Cloudflare Anti-Bot Protection

La ingeniería inversa de las medidas anti-bot de Cloudflare es una táctica usada por proveedores de smart proxies, adecuada para scraping web a gran escala sin el alto coste de ejecutar muchos headless browsers.

Advantages: Este método permite crear un bypass extremadamente eficiente que apunta específicamente a las comprobaciones de Cloudflare, ideal para operaciones a gran escala.

Disadvantages: La desventaja es la complejidad de entender y engañar el sistema anti-bot deliberadamente opaco de Cloudflare, requiriendo esfuerzo continuo para probar distintas estrategias y actualizar el bypass conforme Cloudflare mejora sus protecciones.

Find more info about how to do this in the original article.

References

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks