
🚀 Un escáner y herramienta DNS automatizados 🖱️ (Zone Transfer, DNS Zone Takeover, Subdomain Takeover).
Subrake, inicialmente comenzado como un proyecto personal mío para enumeración de subdominios, es ahora una herramienta detallada de escaneo DNS que puede ayudarte a identificar Zone Transfers, DNS Zone Takeover y Subdomain Takeovers todo de una sola vez.
Los Zone Transfers han existido durante años y si están habilitados por alguna razón en un dominio, pueden permitir que otra parte enumerate todos los registros de la Zona. En realidad se utilizan cuando el propietario va a transferir el dominio de un proveedor a otro.
Subdomain Takeover, a diferencia de lo que parece, es la toma de control del servicio al que apunta el subdominio. El servicio debe estar obsoleto o no estar en uso.
DNS Zone Takeover en comparación con Subdomain Takeover puede ser más grave si se explota. Es la toma de control de una de las zonas del dominio. Esto permite mucho más que simplemente crear el servicio en el backend. De hecho, puedes configurar tus propios registros DNS y jugar con ellos como quieras.
Para más detalles en profundidad, puedes leer mi blog aquí: Una Guía para Zone Transfer, DNS Zone Takeover y Subdomain Takeover
Subrake es una herramienta de evaluación DNS (mayormente automatizada) con interfaz gráfica y de línea de comandos que pasa por varias fases para cubrir problemas de DNS. La herramienta está en continuo cambio y desarrollo, y todos son bienvenidos a contribuir al proyecto.
Fue diseñada principalmente para bug bounty y la industria de la seguridad informática, pero también se puede aprovechar para blue teaming y pruebas de penetración internas. Soporta tanto una interfaz CLI como una GUI basada en web y admite múltiples modos de instalación. Las características clave son:
csv.Puedes configurar subrake mediante un modo automatizado o clonando el repositorio manualmente e instalando a través de setuptools. El primero proporciona más control y es flexible con una interfaz de usuario. Pero si prefieres un modo CLI simple o estás en windows, pasa por la sección manual.
Clona el repositorio y accede a él:
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
Puedes configurar subrake a través de vagrant (con KVM) donde se generará una máquina y todo se configurará automáticamente. Instala los requisitos primero:
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
Luego dentro del repositorio, ejecuta vagrant up:
$ vagrant up
Esto tomará un tiempo para aprovisionar el servidor. Una vez terminado, recibirás la URL: http://127.0.0.1:9090
Las credenciales por defecto son: subrake/password. También puedes cambiarlas durante el aprovisionamiento:
$ SUBRAKE_USERNAME="username" SUBRAKE_PASSWORD="password" vagrant up
Una vez terminado, puedes gestionar el estado de tu máquina recién creada con estos comandos:
# Ver el estado de la máquina
$ vagrant status
# Suspender la máquina
$ vagrant suspend
# Reanudar la máquina
$ vagrant resume
# Apagar la máquina
$ vagrant halt
# Iniciar de nuevo
$ vagrant up
# Eliminar la máquina
$ vagrant destroy
Con la configuración manual, puedes ir directamente al directorio y usar setuptools para la instalación.
Instala los requisitos y ejecuta setup.py:
$ pip3 install -r requirements.txt
$ python3 setup.py install
Verifica si subrake está instalado o no:
subrake --help
También puedes construir la imagen docker desde Dockerfile:
$ docker build -t subrake:latest .
Verifica el contenedor docker:
$ docker run --rm subrake --help
También puedes desplegar el script en un servidor baremetal. Para ello, consigue un servidor ubuntu 20.04 nuevo y en funcionamiento y ejecuta el siguiente comando:
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
El servidor es entonces accesible en: 0.0.0.0:9090. Puedes configurar un servicio nginx y usarlo como proxy inverso.
Con la interfaz de usuario, puedes ir directamente a la página Subtap a Domain y ejecutar un escaneo. Espera un par de preguntas para el escaneo:
El escaneo se inicia dentro de una sesión tmux. Puedes presionar CTRL+E => d para salir de la pantalla en ejecución e iniciar un nuevo escaneo. También, para pausar la pantalla y moverte hacia arriba y abajo, puedes presionar CTRL+E => [. Son solo atajos de TMUX con la tecla de enlace global cambiada a CTRL+E.
También puedes volver a una pantalla en ejecución ingresando su nombre nuevamente:
En la línea de comandos, puedes acceder directamente a la herramienta escribiendo subrake. Aquí tienes un par de ejemplos de uso de subrake:
Una ejecución simple con opciones predeterminadas:
$ subrake -d google.com
Subrake con múltiples hilos:
$ subtake -d google.com -t 50
Subrake con módulos y una lista de palabras:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
Subrake con resultados OSINT + múltiples listas de subdominios de SecLists:
Nota: Los subdominios con nombres similares se filtrarán automáticamente y se contarán como 1
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
Subrake sin motor de búsqueda + Salida de múltiples herramientas combinadas + Filtrado por IP (Nota: puedes integrar tus herramientas en subrake):
$ domain="google.com"
$ subfinder -d $domain -nW -o $domain/1.txt && sublist3r -d $domain -o $domain/2.txt && cat $domain/* >> /tmp/output.txt
$ subrake -d $domain -w tmp/output.txt --filter --skip-search
Subrake con escaneo de puertos:
NOTA: Los puertos 80,443 se escanearán por defecto para cada host bajo banner HTTP/HTTPS. Por lo tanto, no es necesario especificarlos aquí
$ subrake -d google.com --ports 8080,8443,8000,23,445
No dudes en abrir pull requests y solicitar una característica. Puedes contribuir mediante: