Encontrar enlaces en sitio web donde CloudFlare no protege. Atacar la dirección IP real con CloudFail

Cloudflare es un mecanismo de protección contra ataques de denegación de servicio (DDoS) de sus servidores, por decirlo de una forma, es una barrera entre el usuario y los sitios web que visita. Esta herramienta funciona como un proxy, proporcionando servicios adicionales como el almacenamiento en caché, protección contra ataques y ocultamiento de la verdadera dirección IP del servidor que aloja el sitio web del usuario.

Acorde a los expertos en hacking ético del Instituto Internacional de Seguridad Cibernética (IICS), cuando Cloudflare se configura correctamente, la dirección IP de su sitio estará completamente a salvo de los hackers. No obstante, vale la pena preguntarse: ¿Qué tan comunes son los errores de configuración? Este artículo se enfoca en CloudFail, una herramienta para buscar fallas en instalaciones de Cloudflare que ha ganado gran popularidad en la comunidad del hacking.

¿Qué es exactamente CloudFail?

Para empezar, recordemos que cada sitio puede tener subdominios, por ejemplo:

  • www.site.ua
  • kiev.site.ua
  • forum.site.ua, entre otros

Algo importante sobre estos subdominios es que cada uno de ellos puede tener su propia dirección IP. Esos nombres le permiten especificar una IP (o varias direcciones a la vez) para site.ua, otra IP para www.site.ua, otra IP para kiev.site.ua, y así sucesivamente.

Puede surgir una situación, cuando los registros DNS del dominio site.ua registraron la dirección IP de Cloudflare, no hay registros DNS para el subdominio www.site.ua que apuntan a otra IP no protegida por Cloudflare, mencionan los expertos en hacking ético. El resultado final revelará una dirección IP que:

  • Puede ser la dirección IP real del sitio
  • Puede ser la dirección IP del subdominio únicamente, pero podremos encontrar información sobre el propietario real o alguna pista para una investigación más profunda

No podemos simplemente tomar y obtener una lista de todos los subdominios. Por lo tanto, necesitamos realizar iteraciones sobre las diferentes opciones. Esto es exactamente lo que hace CloudFail:

  • Probar múltiples subdominios
  • Verificar si hay un registro DNS para un subdominio; de ser así, obtenemos una IP para este subdominio
  • También se verifica si la IP recibida está protegida o no por Cloudflare

Como resultado de estos análisis es posible encontrar direcciones IP que no están protegidas por Cloudflare. Los expertos en hacking ético señalan la importancia de asumir que las direcciones IP de los subdominios pertenecen al propietario, aunque esto no siempre se cumple debido a que los propietarios del dominio principal pueden especificar cualquier dirección IP, incluso aunque no les pertenezca.

Instalación de CloudFail

Para instalar en Ubuntu, Kali Linux, Debian, Linux Mint, etc., ejecute los siguientes comandos:

  • Actualización:
sudo apt update
  • Instalación del componente
sudo apt install python3-pip git tor
  • Clonar la aplicación desde git
git clone https://github.com/m0rtem/CloudFail
  • A continuación, vaya al directorio cd CloudFail/ e instale CloudFail usando el siguiente comando
sudo pip3 install -r requirements.txt
  • Compruebe el estado de la aplicación usando:
python3 cloudfail.py -h
  • Antes de lanzar, actualice la aplicación. Se actualizará la lista de direcciones IP de Cloudflare, así como la base de datos CrimeFlare que contiene las direcciones IP conocidas de algunos sitios. Ingrese el siguiente comando
sudo python3 cloudfail.py –u
  • Si desea que el programa funcione en la red Tor, debe iniciar el servicio Tor usando:
sudo systemctl start tor
  • Puede enviar Tor al inicio, entonces no necesitará iniciar este servicio después de cada reinicio de la computadora:
sudo systemctl enable tor

¿Cómo usar CloudFail?

Este programa solo tiene una opción obligatoria (-t), después de la cual debe especificar el nombre del sitio. A continuación los expertos en hacking ético presentan información adicional sobre todas las opciones de CloudFail.

El programa ya viene con una lista de palabras para enumerar posibles subdominios en un diccionario. Si desea utilizar su propio diccionario, especifíquelo con la opción -s. El archivo del diccionario debe estar ubicado en la carpeta de datos.

Por ejemplo, si queremos obtener datos para site.ua, el comando que usaremos deberá verse así:

sudo python3 cloudfail.py -t site.ua

La cadena es parte de la red Cloudflare. Esta información nos dice que el sitio está protegido por Cloudflare. Si este no fuera el caso, entonces el escaneo se interrumpirá en este punto, ya que no tiene sentido seguir adelante.

La línea Prueba de DNS mal configurados usando dnsdumpster nos proporciona información sobre la enumeración de hosts conocidos (subdominios) asociados con el sitio objetivo. Estos datos provienen de dnsdumpster.

La línea roja se refiere a los subdominios detectados, pero su IP está protegida por Cloudflare; en otras palabras, son inútiles para determinar la IP real. Por otra parte, la línea verde dice que la IP del host encontrado no está protegida por Cloudflare, por lo que podría tratarse de la dirección IP real del sitio.

¿Qué podemos hacer con estas direcciones IP? A continuación se presentan algunos escenarios posibles:

  • Desplegar ataques DDoS, ya que estas direcciones IP no están protegidas por Cloudflare
  • Utilizar nmap para conocer los puntos débiles del sitio web
  • Usar Metasploit y, de ser posible, ingresar a la aplicación web

Con este artículo los expertos de IICS esperan que entienda lo importante que es realizar una verificación periódica sobre la protección de sus sitios web, incluso si usa Cloudflare. Como hemos visto, los actores de amenazas pueden detectar fácilmente los errores de configuración y explotarlos en nuestra contra, por lo que es mejor estar preparados contra cualquier ataque.

Finalmente, debe recordar que este contenido fue realizado con fines enteramente didácticos, por lo que sólo deberá probar CloudFail y cualquier otra herramienta de hacking en entornos controlados y con previa autorización.