
Escáner concurrente de toma de control de DNS que detecta vulnerabilidades en registros CNAME, NS, AXFR, SPF, MX, SRV y registros A obsoletos en proveedores de nube, con análisis de cadenas multinivel.
Escáner de Toma de Control DNS
Subjack es un escáner de toma de control DNS escrito en Go, diseñado para escanear una lista de dominios de forma concurrente e identificar aquellos que pueden ser secuestrados. Gracias a la velocidad y eficiencia de Go, esta herramienta destaca especialmente en pruebas masivas. Siempre verifica manualmente los resultados para descartar falsos positivos.
Subjack detecta:
include: de SPF que permiten suplantación de correoRequiere Go
go install github.com/haccer/subjack@latest
subjack -w subdominios.txt -t 100 -timeout 30 -o resultados.txt -ssl
Subjack puede leer dominios desde stdin, facilitando la tubería de salida de otras herramientas:
subfinder -d ejemplo.com | subjack -ssl -o resultados.json
cat dominios.txt | subjack -t 20 -o resultados.txt
Con la opción -ns, subjack realiza dos tipos de comprobaciones de toma de control de servidores de nombres:
Dominios NS expirados: Comprueba si alguno de los servidores de nombres de un dominio ha expirado y está disponible para su compra. Un atacante que registre un servidor de nombres expirado puede tomar el control completo de todo el DNS de ese dominio — puede apuntar cualquier registro a cualquier lugar, interceptar correos electrónicos, emitir certificados, etc.
Delegaciones NS colgantes: Detecta cuando los registros NS de un dominio apuntan a proveedores de DNS en la nube pero la zona alojada ha sido eliminada. Subjack consulta directamente a cada servidor de nombres por un registro SOA — si todos devuelven SERVFAIL o REFUSED, la zona ha desaparecido y es potencialmente reclamable. Proveedores soportados:
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w subdominios.txt -ns -o resultados.json
Con la opción -ar, subjack resolverá los registros A y comprobará si la dirección IP está realmente activa. Cuando una empresa termina un servidor en la nube pero olvida eliminar el registro A de DNS, la IP se libera de nuevo al pool del proveedor. Un atacante puede crear nuevas instancias en ese proveedor hasta conseguir la misma IP, obteniendo el control del subdominio.
Subjack identifica el proveedor cloud (AWS, GCP, Azure, DigitalOcean, Linode, Vultr, Oracle) cuando es posible, facilitando la orientación a la plataforma correcta. La detección utiliza ping ICMP (requiere root) con fallback TCP en los puertos 80/443.
sudo subjack -w subdominios.txt -ar -o resultados.json
Los resultados se marcan como REGISTRO A OBSOLETO y deben verificarse manualmente — una IP que no responde no siempre significa que sea reclamable.
Con la opción -axfr, subjack intentará transferencias de zona DNS (AXFR) que pueden exponer todos los registros DNS de un dominio. Subjack va más allá de solo probar los servidores de nombres oficiales del dominio — también realiza fuerza bruta sobre nombres de servidores de nombres comunes (ns1, dns-0, ns-backup, etc.) porque los servidores de nombres ocultos u olvidados a menudo quedan sin protección incluso después de que los principales hayan sido asegurados.
subjack -d ejemplo.com -axfr -o resultados.json
subjack -w dominios.txt -axfr -o resultados.json
Los resultados se marcan como TRANSFERENCIA DE ZONA indicando el servidor de nombres vulnerable y el número de registros expuestos.
Con la opción -mail, subjack comprueba dos vectores de toma de control basados en correo electrónico:
Toma de control por include SPF: Analiza los registros TXT de SPF y verifica si algún dominio include: ha expirado y está disponible para registro. Un atacante que registre el dominio incluido puede enviar correos completamente autenticados como si fuera el objetivo, eludiendo SPF y DMARC.
Toma de control de registros MX: Comprueba si algún destino de registro MX ha expirado y está disponible para registro. Un atacante que controle el servidor de correo puede interceptar todo el correo entrante — restablecimientos de contraseña, códigos 2FA, y más.
subjack -w dominios.txt -mail -o resultados.json
Estas comprobaciones se ejecutan automáticamente en cada escaneo:
Toma de control por cadena CNAME: Sigue cadenas CNAME de múltiples niveles (hasta 10 de profundidad) y verifica si algún objetivo intermedio es reclamable. La detección estándar de CNAME solo comprueba el primer salto — las cadenas capturan oportunidades de toma de control más profundas.
Toma de control de registros SRV: Comprueba registros SRV comunes (SIP, XMPP, LDAP, Kerberos, IMAP, CalDAV, etc.) en busca de destinos que hayan expirado y estén disponibles para registro.
Puedes usar scanio.sh, que es una especie de script PoC para localizar masivamente subdominios vulnerables usando resultados de Project Sonar de Rapid7. Este script analiza y filtra el volcado en busca de registros CNAME deseados y genera una gran lista de subdominios para comprobar con subjack si son vulnerables a la toma de control hostil de subdominio. Por favor, úsalo de forma responsable.
Tu archivo de palabras debe incluir una lista de subdominios, uno por línea:
assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com
Información adicional sobre tomas de control DNS:
| Flag | Descripción | Por defecto |
|---|
-d | Dominio único a comprobar | |
-w | Ruta al archivo de lista de subdominios | |
-t | Número de hilos concurrentes | 10 |
-timeout | Segundos de espera antes de tiempo de espera de conexión | 10 |
-o | Archivo de salida para resultados (usa extensión .json para salida JSON) | |
-ssl | Forzar conexiones HTTPS (puede aumentar precisión) | false |
-a | Enviar solicitudes a todas las URLs, no solo a aquellas con CNAME identificados (recomendado) | false |
-m | Marcar registros CNAME muertos incluso si el dominio no está disponible para registro | false |
-r | Ruta a una lista de resolvers DNS (una IP por línea, falla a 8.8.8.8 en caso de error) | |
-ns | Comprobar tomas de control NS (dominios NS expirados + delegaciones DNS en la nube colgantes) | false |
-ar | Comprobar registros A obsoletos que apuntan a IPs muertas (puede requerir root para ICMP) | false |
-axfr | Comprobar transferencias de zona (AXFR) incluyendo fuerza bruta de NS | false |
-mail | Comprobar tomas de control por include SPF y registros MX | false |
-v | Mostrar más información por solicitud | false |