hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

12 KiB

Descubriendo CloudFlare

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Técnicas para intentar descubrir servidores web detrás de Cloudflare:

Técnicas

  • También puedes usar algún servicio que te dé los registros históricos de DNS del dominio. Tal vez la página web se esté ejecutando en una dirección IP utilizada anteriormente.
    • Lo mismo se puede lograr comprobando los certificados SSL históricos que podrían estar apuntando a la dirección IP de origen.
    • Comprueba también los registros DNS de otros subdominios que apuntan directamente a IPs, ya que es posible que otros subdominios estén apuntando al mismo servidor (tal vez para ofrecer FTP, correo electrónico o cualquier 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 navegadores como Shodan (y tal vez Google y similares). Tal vez puedas encontrar una dirección IP con ese contenido.

* De manera similar, en lugar de buscar una cadena única, puedes 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á con mucha frecuencia porque el servidor debe enviar la misma respuesta cuando se accede por la dirección IP, pero nunca se sabe.

Herramientas

# 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 máquinas de AWS

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" %}

# 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

Bypass de Cloudflare para hacer scraping

Caché

A veces solo quieres hacer scraping de una página web y saltarte Cloudflare. 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/

Solucionadores de Cloudflare

Se han desarrollado varios solucionadores de Cloudflare:

Navegadores sin cabeza fortificados

La otra opción es hacer todo el trabajo de scraping con un navegador sin cabeza que ha sido fortificado para parecerse al navegador de un usuario real:

Proxy inteligente con bypass integrado de Cloudflare

La alternativa a usar bypasses de Cloudflare de código abierto es usar proxies inteligentes que desarrollen y mantengan sus propios bypasses privados de Cloudflare.

Estos suelen ser más confiables ya que es más difícil para Cloudflare desarrollar parches para ellos, y son desarrollados por compañías de proxy que están financieramente motivadas para estar un paso por delante de Cloudflare y arreglar sus bypasses en el momento en que dejen de funcionar.

La mayoría de los proveedores de proxy inteligentes (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) tienen algún tipo de bypass de Cloudflare que funciona en diferentes grados y varía en costo.

Sin embargo, una de las mejores opciones es usar el Agregador de Proxy de ScrapeOps ya que integra más de 20 proveedores de proxy en la misma API de proxy y encuentra el proveedor de proxy mejor y más barato para tus dominios objetivo.

Ingeniería inversa de la protección anti-bot de Cloudflare

Este enfoque funciona (y es lo que hacen muchas soluciones de proxy inteligentes), sin embargo, no es para los débiles de corazón.

Ventajas: La ventaja de este enfoque es que si estás haciendo scraping a gran escala y no quieres ejecutar cientos (si no miles) de costosas instancias completas de navegadores sin cabeza, puedes desarrollar el bypass de Cloudflare más eficiente en recursos posible. Uno que esté diseñado únicamente para pasar las pruebas de huellas digitales de JS, TLS e IP de Cloudflare.

Desventajas: Las desventajas de este enfoque es que tendrás que sumergirte profundamente en un sistema anti-bot que ha sido hecho a propósito difícil de entender desde el exterior, y probar diferentes técnicas para engañar su sistema de verificación. Luego, mantener este sistema a medida que Cloudflare continúa desarrollando su protección anti-bot.

Referencias

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥