CF-Hero: Descubriendo la IP Real detrás de Cloudflare

El Problema que Resuelve

Cloudflare es el escudo más popular de internet. Millones de sitios web lo usan como CDN y WAF, ocultando su IP real detrás de la infraestructura de Cloudflare.

El resultado para un investigador o pentester es siempre el mismo: haces un dig sobre el dominio objetivo y obtienes una IP de Cloudflare, no del servidor real.

Si encuentras la IP real, el juego cambia. Puedes:

  • Acceder directamente al servidor saltando el WAF
  • Identificar otros dominios alojados en el mismo servidor
  • Encontrar paneles de administración expuestos directamente
  • Correlacionar infraestructura en investigaciones OSINT

Eso es exactamente lo que hace CF-Hero.


¿Qué es CF-Hero?

CF-Hero es una herramienta de reconocimiento escrita en Go que combina múltiples fuentes de inteligencia para descubrir la dirección IP real de aplicaciones web protegidas por Cloudflare. No usa una sola técnica, sino que lanza varias en paralelo y correlaciona los resultados.

Con más de 2.500 estrellas en GitHub y activa, es una de las herramientas más sólidas para este caso de uso concreto.


Cómo Funciona: Las Cuatro Técnicas

La clave de CF-Hero es su enfoque multicapa. Usa cuatro vectores de ataque simultáneos:

1. Registros DNS Actuales

Extrae registros A y TXT del dominio. Parece básico, pero es sorprendente la frecuencia con la que un dominio tiene registros DNS mal configurados que filtran la IP real —especialmente en subdominios de correo, staging o administración.

2. OSINT en Motores de Búsqueda de Activos

Consulta automáticamente Shodan, Censys, ZoomEye y SecurityTrails. Estos motores rastrean internet de forma continua y pueden tener indexada la IP real del servidor antes de que migrara a Cloudflare, o servicios paralelos que no pasaron por él.

3. Correlación de Subdominios

Utiliza dominios relacionados que no están protegidos por Cloudflare para acceder al servidor mediante el encabezado Host. Si mail.ejemplo.com o ftp.ejemplo.com apuntan a la IP real, CF-Hero lo detecta.

4. Registros Históricos DNS

Consulta el histórico de DNS vía SecurityTrails. Si el dominio existía antes de poner Cloudflare, las IPs anteriores pueden seguir siendo válidas, especialmente si el servidor no ha cambiado desde entonces.


Instalación

Requiere Go 1.18 o superior. Un único comando lo instala:

go install -v github.com/musana/cf-hero/cmd/cf-hero@latest

El binario queda en ~/go/bin. Si al ejecutar cf-hero te dice «command not found», añade esa carpeta al PATH: export PATH=$PATH:~/go/bin.

Para usar las fuentes de inteligencia externas, crea el archivo de configuración con tus API keys:

mkdir -p ~/.confignano ~/.config/cf-hero.yaml
zoomeye:  - "tu_api_key"securitytrails:  - "tu_api_key"shodan:  - "tu_api_key"censys:  - "tu_api_key"

Es sencillo de crear. Te sentirás cómodo una vez que veas con una sola API Key que todo marcha bien.

Nota sobre las API keys: sin ellas, CF-Hero solo trabaja con los registros DNS actuales y la correlación de subdominios. Las fuentes OSINT (Shodan, Censys, ZoomEye, SecurityTrails) necesitan su clave y amplían mucho la cobertura, pero con cuentas gratuitas tienen límites:

  • Shodan: el endpoint de DNS que usa la herramienta requiere una membresía de pago.
  • Censys: ahora pide un Personal Access Token de su plataforma como primera entrada del YAML; si tu cuenta es de pago, añade también el Organization ID como segunda entrada. Sin él, la API puede devolver permisos del plan gratuito y no dar resultados (error 403).
  • SecurityTrails: imprescindible para el histórico de DNS.

Las consultas a Censys y Shodan gastan cuota de tu cuenta.


Uso Práctico

Escaneo básico sobre un dominio

echo "objetivo.com" | cf-hero

Desde un archivo con múltiples dominios

cf-hero -f dominios.txt

Encadenado con otras herramientas (el uso más potente)

cat dominios.txt | cf-herosubfinder -d objetivo.com | cf-hero

Activando fuentes OSINT específicas

# Solo ZoomEye
echo "objetivo.com" | cf-hero -zoomeye

# Combinando Censys y Shodan
echo "objetivo.com" | cf-hero -censys -shodan

# Todas las fuentes disponibles
echo "objetivo.com" | cf-hero -censys -shodan -securitytrails -zoomeye

Filtrar resultados por tipo

# Mostrar solo dominios que SÍ están detrás de Cloudflare
cf-hero -f dominios.txt -cf

# Mostrar solo dominios que NO están detrás de Cloudflare
cf-hero -f dominios.txt -non-cf

Correlación avanzada con subdominios relacionados

cf-hero -td https://objetivo.com -dl subdominios.txt

Opciones avanzadas

# Con proxy (útil para revisar tráfico o evadir bloqueos
)cf-hero -f dominios.txt -px "http://127.0.0.1:8080"

# Aumentar workers para mayor velocidad
cf-hero -f dominios.txt -w 32

# JA3 fingerprint personalizado (evasión de detección)
cf-hero -f dominios.txt -ja3 "tu_string_ja3"

# User-Agent personalizado
cf-hero -f dominios.txt -ua "Mozilla/5.0 ..."

# Método HTTP distinto de GET (por defecto GET)
cf-hero -f dominios.txt -hm HEAD

Referencia Rápida de Parámetros

ParámetroDescripción
-wNúmero de workers (default: 16)
-vOutput verbose
-cfMostrar solo dominios con Cloudflare
-non-cfMostrar solo dominios sin Cloudflare
-censysActivar fuente Censys
-shodanActivar fuente Shodan
-zoomeyeActivar fuente ZoomEye
-securitytrailsActivar fuente SecurityTrails
-tdDominio objetivo para correlación
-dlLista de subdominios relacionados
-ja3JA3 string personalizado
-uaUser-Agent personalizado
-hmMétodo HTTP (default: GET)
-pxURL de proxy
-titleTítulo HTML para comparar y validar

Detalles Técnicos a Tener en Cuenta

Validación por título HTML: CF-Hero puede comparar el título de la respuesta HTTP para confirmar que la IP encontrada realmente sirve el mismo sitio, reduciendo falsos positivos.

Colorización inteligente: Las IPs que no pertenecen a rangos de Cloudflare se destacan en amarillo en el output, facilitando la identificación visual rápida.

Soporte de piping: Diseñado para integrarse en cadenas de reconocimiento. Funciona perfectamente con subfinder, amass, httpx u otras herramientas del ecosistema de reconocimiento.

JA3 fingerprint: La posibilidad de especificar un JA3 personalizado es especialmente relevante cuando el objetivo usa controles de detección basados en fingerprint TLS.


Detalles Técnicos a Tener en Cuenta

Validación por título HTML: CF-Hero puede comparar el título de la respuesta HTTP para confirmar que la IP encontrada realmente sirve el mismo sitio, reduciendo falsos positivos.

Colorización inteligente: Las IPs que no pertenecen a rangos de Cloudflare se destacan en amarillo en el output, facilitando la identificación visual rápida.

Soporte de piping: Diseñado para integrarse en cadenas de reconocimiento. Funciona perfectamente con subfinder, amass, httpx u otras herramientas del ecosistema de reconocimiento.

JA3 fingerprint: La posibilidad de especificar un JA3 personalizado es especialmente relevante cuando el objetivo usa controles de detección basados en fingerprint TLS.


Integración en un Flujo de Reconocimiento Real

CF-Hero encaja de forma natural en la fase de reconocimiento pasivo/activo. Un flujo típico sería:

# 1. Enumerar subdominios
subfinder -d objetivo.com -o subdominios.txt

# 2. Buscar IPs reales detrás de Cloudflare
cat subdominios.txt | cf-hero -censys -shodan -zoomeye -v

# 3. Con las IPs encontradas, escanear puertos
nmap -iL ips_encontradas.txt -sV --open

CF-Hero no genera por sí solo un archivo de IPs: imprime los resultados por pantalla.

Copia a mano a ips_encontradas.txt (una IP por línea) las que aparezcan resaltadas en amarillo, que son las que no pertenecen a Cloudflare, y comprueba antes que están dentro del alcance autorizado antes de lanzar nmap.

En el contexto de OSINT puro, la combinación de CF-Hero con los registros históricos de SecurityTrails es especialmente potente: infraestructura que existía antes de que el objetivo «se protegiera» con Cloudflare puede revelar el proveedor de hosting real, la geolocalización del servidor e incluso otros activos del mismo operador.


Consideraciones Legales y Éticas

CF-Hero es una herramienta de reconocimiento. Su uso está justificado en:

  • Pentesting con autorización sobre sistemas propios o de clientes
  • Bug bounty dentro del scope definido por el programa
  • Investigación OSINT sobre activos propios o de interés público
  • Auditorías de seguridad para verificar exposición de infraestructura propia

Usar esta herramienta contra sistemas sin autorización es ilegal en la mayoría de jurisdicciones. El conocimiento de cómo funciona el bypass de Cloudflare también sirve para el lado defensivo: si sabes cómo te pueden encontrar, sabes qué debes corregir.


Conclusión

CF-Hero resuelve un problema concreto con eficacia: encontrar lo que Cloudflare intenta ocultar.

Su valor está en la combinación de múltiples fuentes y técnicas simultáneas, la integración con el ecosistema de herramientas de reconocimiento vía piping, y la posibilidad de escalar a listas grandes de dominios con workers concurrentes.

Para cualquier flujo de reconocimiento serio, es una adición directa al arsenal.

Repositorio: github.com/musana/CF-Hero

Comparte este artículo

LinkedIn
Twitter
Facebook