
Un servidor DNS "malicioso" para ejecutar ataques DNS Rebinding sobre la marcha (instancia pública ejecutándose en rebind.network:53)
Un servidor DNS malicioso para ejecutar ataques de DNS Rebinding sobre la marcha. whonow te permite especificar respuestas DNS y reglas de rebinding dinámicamente usando las propias solicitudes de dominio.
# responder a consultas DNS para este dominio con 34.192.228.43 la primera vez
# que se solicite y luego con 192.168.1.1 cada vez después de eso
A.34.192.228.43.1time.192.168.1.1.forever.rebind.network
# responder primero con 34.192.228.43, luego con 192.168.1.1 las siguientes cinco veces,
# y luego comenzar de nuevo (1, luego 5, para siempre...)
A.34.192.228.43.1time.192.168.1.1.5times.repeat.rebind.network
Lo bueno de las reglas dinámicas de DNS Rebinding es que no tienes que montar tu propio servidor DNS malicioso para empezar a explotar la política de mismo origen del navegador. En su lugar, todos pueden compartir el mismo servidor público whonow que se ejecuta en el puerto 53 de rebind.network.
Nota: Debes incluir UUIDs (por ejemplo, a06a5856-1fff-4415-9aa2-823230b05826) como un subdominio en cada consulta DNS a un servidor whonow. Se han omitido en los ejemplos de este README por brevedad, pero asume que las solicitudes a *.rebind.network deben ser *.a06a5856-1fff-4415-9aa2-823230b05826.rebind.network. Consulta la sección Gotchas para más información sobre por qué.
DESCARGO DE RESPONSABILIDAD: Este software es solo para fines educativos. Este software no debe utilizarse para actividades ilegales. El autor no es responsable de su uso. No seas un imbécil.
La belleza de whonow es que puedes definir el comportamiento de las respuestas DNS mediante subdominios en el propio nombre de dominio. Usando solo unas pocas palabras clave simples: A, (n)times, forever y repeat, puedes definir un comportamiento DNS complejo y potente.
whonowA.<dirección-ip>.<regla>[.<dirección-ip>.<regla>[.<dirección-ip>.<regla>]][.uuid/cadena-aleatoria].ejemplo.com
A: El tipo de solicitud DNS. Actualmente solo se admiten registros A, pero AAAA debería llegar pronto.<dirección-ip>: una dirección ipv4 (ipv6 próximamente) con cada octeto separado por un punto (por ejemplo, 192.168.1.1).<regla>: Una de tres reglas:
(n)time[s]: El número de veces que el servidor DNS debe responder con la dirección IP anterior. Acepta tanto cadenas plurales como singulares (por ejemplo, 1time, 3times, 5000times).forever: Responder con la dirección IP anterior para siempre.repeat: Repetir todo el conjunto de reglas desde el principio.[uuid/cadena-aleatoria]: Una cadena aleatoria para mantener separados los ataques de DNS Rebinding contra las mismas direcciones IP. Consulta Gotchas para más información.ejemplo.com: Un nombre de dominio que tengas apuntando a un servidor de nombres , como la instancia pública de .Las reglas se pueden encadenar para formar un comportamiento de respuesta complejo.
# responder siempre con 192.168.1.1. Esto no es realmente DNS rebinding,
# pero sigue funcionando
A.192.168.1.1.forever.rebind.network
# alternar entre localhost y 10.0.0.1 para siempre
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
# primero responder con 192.168.1.1, luego con 192.168.1.2. Ahora responder con 192.168.1.3 para siempre.
A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network
# responder con 34.192.228.43 la primera vez, luego con lo que esté configurado en `whonow --default-address`
# para siempre después de eso (predeterminado: 127.0.0.1)
A.34.192.228.43.1time.rebind.network
Cada etiqueta [subdominio] puede contener de cero a 63 caracteres... El nombre de dominio completo no puede exceder la longitud de 253 caracteres en su representación textual. (de la página de Wikipedia de DNS)
Además, no puede haber más de 127 etiquetas/subdominios.
Cada solicitud de nombre de dominio único a whonow crea un pequeño programa de almacenamiento de estado en la RAM del servidor. La próxima vez que se solicite ese nombre de dominio, el contador del programa se incrementa y el estado puede mutar. Todos los nombres de dominio únicos son sus propias instancias de programa únicas. Para evitar colisiones con otros usuarios o que el estado de tu programa de nombre de dominio se incremente inadvertidamente, debes agregar un subdominio UUID después de tus definiciones de reglas. Ese UUID nunca debe reutilizarse.
# esto
A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network
# no esto
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
--max-ram-domainsEl estado del programa asociado con cada nombre de dominio único se almacena por whonow en RAM. Para evitar quedarse sin RAM, se establece un límite superior en la cantidad de dominios únicos cuyo estado de programa se puede gestionar al mismo tiempo. Por defecto, este valor se establece en 10,000,000, pero se puede configurar con --max-ram-domains. Una vez que se alcanza este límite, los nombres de dominio y su estado de programa guardado se eliminarán en el orden en que se agregaron (FIFO).
whonowPara ejecutar tu propio servidor whonow en la nube, usa el panel de administración de tu proveedor de nombres de dominio para configurar un servidor de nombres personalizado que apunte a tu VPS. Luego instala whonow en ese VPS y asegúrate de que se ejecute en el puerto 53 (el puerto DNS predeterminado) y que el puerto 53 sea accesible desde Internet.
# instalar
npm install --cli -g whonow@latest
# ejecutarlo
whonow --port 53
# también puedes ejecutarlo con más registro en stdout y guardar la actividad DNS en CSV
whonow --port 53 --logfile log.csv --verbose

Si eso ☝ es demasiado lío, siéntete libre de usar el servidor público whonow que se ejecuta en el puerto 53 de rebind.network.🌐.
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]
[-l LOGFILE] [-m]
Un servidor DNS malicioso para ejecutar ataques de DNS Rebinding sobre la marcha.
Argumentos opcionales:
-h, --help Muestra este mensaje de ayuda y sale.
-v, --version Muestra el número de versión del programa y sale.
-p PORT, --port PORT Puerto en el que ejecutar el servidor DNS (predeterminado: 53).
-d DEFAULT_ANSWER, --default-answer DEFAULT_ANSWER
La dirección IP predeterminada para responder si no se encuentra
ninguna regla (predeterminado: "127.0.0.1").
-b MAX_RAM_DOMAINS, --max-ram-domains MAX_RAM_DOMAINS
La cantidad de registros de nombres de dominio para almacenar en RAM
a la vez. Una vez que la cantidad de nombres de dominio únicos consultados
supera este número, los dominios se eliminarán de la memoria en el orden
en que fueron solicitados. Los dominios que se hayan eliminado de esta
manera restablecerán su estado de programa la próxima vez que se
consulten (predeterminado: 10000000).
-l LOGFILE, --logfile LOGFILE
Registrar en archivo CSV (predeterminado: false)
-m, --verbose Registrar la marca de tiempo de la solicitud y la dirección IP del
remitente en stdout (predeterminado: false)
Un servidor whonow debe estar ejecutándose en localhost:15353 para realizar las pruebas en test.js
# en una terminal
whonow -p 15353
# en otra terminal
cd ruta/a/node_modules/whonow
npm test
whonowwhonowrebind.network:53