hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md

12 KiB

Descubriendo CloudFlare

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

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

Técnicas

  • Puedes usar un servicio que te proporcione los registros DNS históricos del dominio. Quizás la página web esté corriendo en una dirección IP utilizada anteriormente.
  • Lo mismo se podría lograr revisando certificados SSL históricos que podrían estar apuntando a la dirección IP de origen.
  • Revisa también 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 navegadores como shodan (y quizás google y similares). Tal vez puedas encontrar una dirección IP con ese contenido.

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 AWS

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

{% 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

Eludir Cloudflare a través de Cloudflare

Autenticación de Origen con Certificados

Este mecanismo se basa en certificados SSL de cliente para autenticar conexiones entre los servidores de proxy inverso de Cloudflare y el servidor de origen, lo que se denomina mTLS.

En lugar de configurar su propio certificado, el cliente puede 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 apuntar a la dirección IP del dominio víctima. De esta manera, al configurar su dominio completamente desprotegido, Cloudflare no protegerá las solicitudes enviadas. {% endhint %}

Más información aquí.

Lista de Permitidos de Direcciones IP de Cloudflare

Esto rechazará conexiones que no provengan de los rangos 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í.

Eludir Cloudflare para hacer scraping

Caché

A veces solo quieres eludir Cloudflare para hacer scraping de la página web. Hay algunas opciones para esto:

  • Usar caché de Google: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • Usar 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 Elusión de Cloudflare Integrada

La alternativa al uso de elusiones de Cloudflare de código abierto, es utilizar proxies inteligentes que desarrollan y mantienen sus propias elusiones privadas 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 tienen motivación financiera para mantenerse un paso adelante de Cloudflare y arreglar sus elusiones en el mismo minuto en que dejan de funcionar.

La mayoría de los proveedores de proxy inteligente (ScraperAPI, Scrapingbee, Oxylabs, Smartproxy) tienen alguna forma de elusión de Cloudflare que funciona en diversos grados y varía en costo.

Sin embargo, una de las mejores opciones es usar el ScrapeOps Proxy Aggregator ya que integra más de 20 proveedores de proxy en la misma API de proxy, y encuentra el proveedor de proxy más barato/mejor 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 inteligente), 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 navegador sin cabeza. En su lugar, puedes desarrollar la elusión de Cloudflare más eficiente en recursos posible. Una que está diseñada únicamente para pasar las pruebas 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 intencionalmente difícil de entender desde el exterior, y probar diferentes técnicas para engañar a su sistema de verificación. Luego mantener este sistema a medida que Cloudflare continúa desarrollando su protección anti-bot.

Referencias

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: