Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
of-CORS — Herramienta automatizada de descubrimiento de configuraciones erróneas de CORS usando dominios de typosquatting y service workers del navegador para sondear redes internas de objetivos de bug bounty. | Kitploit
Herramientas/GitHubGitHub/trufflesecurity/of-cors
ReconocimientoRecopilación de InformaciónPhishingSeguridad WebMala ConfiguraciónRed Teaming
GitHubtrufflesecurity/of-cors

of-CORS

Herramienta automatizada de descubrimiento de configuraciones erróneas de CORS usando dominios de typosquatting y service workers del navegador para sondear redes internas de objetivos de bug bounty.

Ver Repositorio
15417hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

of-CORS

of-CORS es el conjunto de herramientas de Truffle Security para identificar y explotar configuraciones incorrectas de CORS en redes internas de objetivos de bug bounty mediante typosquatting.

imagen imagen

Puedes leer más aquí https://trufflesecurity.com/blog/of-CORS

¿Cómo funciona?

of-CORS es una aplicación web Python3 construida sobre Django y Django Rest Framework. Una vez configurada y puesta en marcha, of-CORS registrará automáticamente service workers del navegador en los navegadores de cualquier víctima que visite la aplicación. Estos service workers envían solicitudes HTTP a una lista de dominios internos preconfigurados con la intención de descubrir configuraciones incorrectas de CORS en redes internas. Los resultados de estas solicitudes (ya sean exitosas o no) se envían luego a través de la API de vuelta a la instancia de of-CORS.

Una vez que un service worker ha sido registrado en el navegador de una víctima, un payload de JavaScript redirige el navegador a la página que of-CORS cree que originalmente estaban intentando acceder.

Los resultados recopilados pueden verse posteriormente en un panel minimalista disponible en la aplicación of-CORS.

Empezando

Se pueden seguir los siguientes pasos para configurar of-CORS en tu propio despliegue.

Debido a la complejidad de poner en marcha of-CORS (especialmente las complicaciones relacionadas con SSL/TLS, DNS y permitir solicitudes comodín a ambos) utilizamos dos proveedores de nube (Heroku y Cloudflare) en la pila de la aplicación y Terraform para automatizar su configuración.

Compra los dominios relevantes

Comienza comprando un dominio que sea probable que un empleado interno de la empresa objetivo visite. Recomendamos comprar un typo-squat de un dominio interno. Hemos descubierto que los errores de copiar y pegar son un buen punto de partida.

Por ejemplo, si la empresa que estás probando usa uberinternal.com para dominios internos, quizás quieras comprar berinternal.com para empezar a recibir tráfico de navegador de empleados internos.

imagen

Obtén una clave de API de Cloudflare

of-CORS usa Cloudflare para recibir y enrutar solicitudes DNS comodín, así como para terminar conexiones SSL/TLS.

Necesitarás una cuenta activa de Cloudflare para que el DNS funcione correctamente con of-CORS. Una vez que tengas una cuenta de Cloudflare, querrás crear una clave de API (lo que puedes hacer en el panel aquí).

La clave de API necesitará tener suficientes privilegios para agregar, eliminar y configurar zonas, así como registros DNS. Esto se puede lograr seleccionando los siguientes permisos en la página de creación de tokens de API:

Permisos de token de API de Cloudflare

Una vez que hayas creado un token de API con los permisos correctos, puedes continuar al siguiente paso.

Obtén una clave de API de Heroku

of-CORS usa Heroku para facilitar el despliegue y alojamiento de la aplicación.

Necesitarás una cuenta activa de Heroku para poner en funcionamiento la pila de aplicaciones de of-CORS. Una vez que tengas una cuenta, querrás instalar la herramienta de línea de comandos (CLI) de Heroku. Con la CLI instalada, puedes usarla para iniciar una sesión CLI autenticada con el siguiente comando:

root@kitploit:~
heroku login

Luego puedes confirmar que tu CLI está autenticada correctamente ejecutando el siguiente comando:

root@kitploit:~
heroku whoami

Más documentación sobre la autorización de la CLI de Heroku para usar con Terraform se puede encontrar aquí.

Configurando of-CORS para el despliegue

Con las claves de API necesarias para nuestra infraestructura ahora configuradas y listas, podemos pasar a configurar of-CORS para el despliegue. Echa un vistazo al contenido del siguiente archivo de configuración YAML de ejemplo que se puede encontrar en el repositorio:

root@kitploit:~
terraform:
  # You must change this to a unique string that is a valid Heroku app name
  heroku_app_name: best-of-cors
  # Fill this out with your Cloudflare API token
  cloudflare_api_token: this-is-my-api-token

hosts:
  # This can be an arbitrary string, but must be unique as a direct descendant of hosts
  testing:
    host_domain: 127.0.0.1:8080
    redirect_domain: google.com
    targets:
      - enable-cors.org
      - example.com

Necesitarás crear un nuevo archivo de configuración YAML con este formato para el despliegue.

En la sección terraform, deberás establecer heroku_app_name como un nombre de aplicación compatible con Heroku que sea único para tu cuenta. También deberás agregar tu clave de API de Cloudflare que generaste en la sección anterior bajo la directiva cloudflare_api_token.

La sección hosts es donde definimos los dominios en los que esperamos que of-CORS reciba tráfico y qué hacer cuando lleguen visitantes web. Supongamos que tenemos una empresa a la que estamos atacando y sabemos que tienen dos dominios internos (myinternalcorp1.com y myinternalcorp2.com). Compramos el dominio yinternalcorp1.com con la expectativa de que los empleados lo visiten accidentalmente. En este caso, querríamos configurar hosts de la siguiente manera:

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

Aquí host_domain es el dominio donde esperas recibir tráfico (es decir, el dominio que se compró). redirect_domain define el dominio al que las víctimas deben ser redirigidas una vez que se lance un payload. targets especifica los dominios contra los que se lanzarán los payloads cuando una víctima visite of-CORS.

Supongamos que también compramos yinternalcorp2.com y queremos configurar of-CORS para lanzar ataques cuando sea visitado. La sección hosts podría actualizarse de la siguiente manera:

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com
  testing_2:
    host_domain: yinternalcorp2.com
    redirect_domain: myinternalcorp2.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

Ahora, si una víctima visita accidentalmente yinternalcorp1.com o yinternalcorp2.com, se lanzarán los payloads para enumerar configuraciones incorrectas de CORS en myinternalcorp1.com y myinternalcorp2.com, y el navegador de la víctima será redirigido posteriormente al dominio correcto.

Configuración con Docker

No será necesario instalar Terraform, Heroku, Python con la opción de Docker. Simplemente ejecuta este comando con la ruta correcta para tu archivo yaml:

root@kitploit:~
docker run -v $PWD/config.yml:/config.yml -it --rm trufflesecurity/of-cors

Configuración fuera de Docker

Instalando Terraform

El despliegue de of-CORS depende de Terraform. Puedes seguir las instrucciones para instalar Terraform aquí. Una vez instalado, se espera que el binario terraform esté disponible en el PATH de tu sistema.

Instalando Python3

El despliegue de of-CORS también depende de Python3. Asegúrate de que esté instalado y disponible en el PATH de tu sistema.

Desplegando of-CORS

Con la autenticación a nuestros proveedores de nube atendida y el archivo de configuración de of-CORS listo, podemos pasar al despliegue.

Primero necesitaremos inicializar Terraform. Este comando debe ejecutarse desde el directorio raíz del código fuente:

root@kitploit:~
cd terraform && terraform init && cd ../

Supongamos que nuestro archivo de configuración se encuentra en /tmp/of_cors_config.yml. Entonces ejecutaríamos los siguientes comandos para poner en funcionamiento toda la infraestructura de of-CORS (nota que esto asume que los comandos se ejecutan en bash). Ejecutar este comando puede tomar de 5 a 10 minutos, así que ten paciencia.

También ten en cuenta que para enumeraciones realmente grandes, Heroku a menudo se queda sin recursos. Este es un problema conocido y nos encantaría recibir ayuda tuya para solucionarlo. Las posibles soluciones futuras incluyen poder subir las enumeraciones tú mismo, aumentar el tamaño del Dyno de Heroku o cambiar a Sublist3r u otra herramienta de enumeración.

root@kitploit:~
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure

TEN EN CUENTA - Existe una condición de carrera que puede ocurrir cuando la infraestructura de Heroku se inicia y se accede inmediatamente a una consola dentro de ella. Si al ejecutar este último comando make deploy_and_configure falla, espera unos minutos e inténtalo de nuevo.

Después de que el comando deploy_and_configure termine de ejecutarse, ahora tendrás...

  • Registros DNS configurados en Cloudflare apuntando a tu aplicación de Heroku
  • Heroku configurado para recibir tráfico de todos los registros comodín relevantes
  • of-CORS poblado con dominios candidatos de configuraciones incorrectas de CORS internas

Delegando la autoridad DNS

Lo último que debemos hacer para que el despliegue de of-CORS esté listo para recibir tráfico es configurar los nombres de dominio que compraste para que utilicen Cloudflare como sus servidores DNS autoritativos. Cloudflare tiene una guía detallada para hacer esto aquí.

Confirmando que todo está configurado correctamente

Sigue los siguientes pasos para confirmar que tu software está funcionando correctamente. Para los fines de esta sección, usaremos una instancia de of-CORS configurada bajo el dominio hackersofhollywood.com.

Primero, verifiquemos que los registros SOA de nuestro dominio apuntan a Cloudflare:

root@kitploit:~
dig soa <domain>

Como se muestra a continuación, los registros SOA de hackersofhollywood.com apuntan correctamente a los servidores de nombres de Cloudflare:

Registros SOA de Hackers Of Hollywood

Luego, revisamos la cuenta de Cloudflare para confirmar que se hayan configurado registros DNS tanto para hackersofhollywood.com como para *.hackersofhollywood.com con contenido CNAME que apunte a los dominios de Heroku. Esto se hace a través de la interfaz web de Cloudflare en la sección DNS:

Verificación DNS de Cloudflare

El siguiente paso es confirmar que Heroku está configurado para recibir tráfico a través de estos dos registros CNAME. Esto se puede hacer a través de la interfaz web de Heroku en Settings -> Domains:

Verificación DNS de Heroku

Efectivamente, vemos dos nombres de dominio con los objetivos DNS apropiados configurados en Heroku, y estos objetivos se reflejan correctamente en los registros CNAME de Cloudflare.

Luego podemos ejecutar el siguiente comando para abrir una sesión de navegador autenticada en la página de visor de resultados de of-CORS:

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

Esto debería mostrar un panel vacío en tu navegador:

Panel vacío de of-CORS

Por último, podemos probar que la exploración de configuraciones incorrectas de CORS se está lanzando correctamente. Abre un navegador en el dominio base de una de tus configuraciones (en nuestro ejemplo, https://hackersofhollywood.com) y confirma que la página redirige después de unos segundos:

Página de carga

Ahora navega de nuevo a la página del panel y cambia el filtro de Success a Unknown y presiona el botón Submit Query. Ahora deberías ver un montón de resultados poblados:

Panel completo

¡Tu trampa está lista! Ahora solo relájate y espera a que tus víctimas se topen con tu sabroso dominio.

Visualización de resultados

El siguiente comando se puede usar para ver y consultar todos los resultados en una sesión de navegador autenticada:

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

Agregar y eliminar objetivos

El archivo de configuración de of-CORS está diseñado para admitir la adición y eliminación flexible de dominios contra los que se lanzan ataques. Simplemente actualiza el contenido de la sección hosts en tu archivo de configuración y vuelve a ejecutar el script de aprovisionamiento:

root@kitploit:~
source venv/bin/activate
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure
Descargar herramienta