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:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF, consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub HackTricks y HackTricks Cloud.
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.
- De manera similar, en lugar de buscar una cadena única, podrías buscar el icono favicon con la herramienta: https://github.com/karma9874/CloudFlare-IP o con https://github.com/pielco11/fav-up
- Esto no funcionará muy frecuentemente porque el servidor debe enviar la misma respuesta cuando se accede por la dirección IP, pero nunca se sabe.
Herramientas
- Busca el dominio en http://www.crimeflare.org:82/cfs.html o https://crimeflare.herokuapp.com. O usa la herramienta CloudPeler (que utiliza esa API)
- Busca el dominio en https://leaked.site/index.php?resolver/cloudflare.0/
- 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.
- Censys
- Shodan
- Bypass-firewalls-by-DNS-history
- Si tienes un conjunto de IPs potenciales donde podría estar ubicada la página web, podrías 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
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:
- FlareSolverr
- cloudscraper Guía aquí
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Archivado]
- CloudflareSolverRe
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:
- Puppeteer: El plugin stealth para puppeteer.
- Playwright: El plugin stealth llegará pronto a Playwright. Sigue los desarrollos aquí y aquí.
- Selenium: El undetected-chromedriver es un parche optimizado de Selenium Chromedriver.
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:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de HackTricks y HackTricks Cloud.