DNSExplorer es un script de shell que automatiza el proceso de enumeración de un dominio o servidor DNS y sus subdominios utilizando ‘host‘ como herramienta principal.
Su objetivo es enumerar los dominios y subdominios utilizando el servidor por defecto en el archivo revolv.conf
para dar una visión general del servicio DNS.
Casos de Uso
Ideal para escenarios de RedTeam en los que se requiere una vista rápida del panorama de la red DNS interna o externa.

Es útil en las fases de enumeración inicial y posterior a la explotación en sistemas Unix.
Instalación y Uso
Dependencias
- OpenSSL
- cURL
- host (dnsutils / bind-utils)
- ping (net-tools)
Instalación
https://github.com/dabasanta/DNSExplorer.git
cd DNSExplorer/
Uso
./DNSExplorer.sh <nombre.dominio>

El script deja pocos rastros locales que apenas se detectan. También se puede ejecutar directamente desde GitHub si tienes conexión a internet:
wget -O - https://raw.githubusercontent.com/dabasanta/DNSExplorer/main/DNSExplorer.sh | bash
El script guarda archivos temporales en la carpeta /tmp/dnsexplorer/
que se borran al final de su ejecución, en caso de error de ejecución es buena idea borrar este directorio si las pruebas te preocupan mucho.
Operación
El script tiene dos modos principales de funcionamiento, que corresponden a una enumeración básica de un dominio y sus servidores DNS para descubrir más subdominios.
ZoneTransfer
Después de descubrir los servidores DNS detrás de un dominio, el script intenta hacer una transferencia de zona (AXFR) en cada uno de los servidores con un registro NS.

En caso de que todos los servidores fallen y no sea posible la transferencia de zonas, o que el DNSSec esté activado, el script cambiará automáticamente a la función de fuerza bruta.
BruteForce
Automático: La función de fuerza bruta toma el diccionario de danielmiessler: bitquark-subdomains-top100000.txt y lo reduce a 1.000 registros. Esto corresponde al top 1.000 de los subdominios más utilizados globalmente por las organizaciones.
Personalizado: En el caso de que tengas un diccionario personalizado y quieras difuminar los subdominios con información tomada de tu fase de recopilación de información, puedes especificar la ruta del archivo.

Validación TLS SAN
El script valida si puede conectarse al dominio usando OpenSSL contra el puerto 443 para encontrar un sitio web seguro, luego inspecciona su certificado TLS en busca de registros SAN y los muestra al usuario.

El puerto 443 se utiliza por defecto porque la gran mayoría de los dominios en Internet alojan su servicio web seguro en ese puerto. Sin embargo, esto puede ser cambiado en el código del script para casos específicos.
DNSExplorer-minimal
Ideal para ser ejecutado en entornos de shell hostiles, por ejemplo una shell inversa remota con pocos privilegios. Se ha eliminado la salida innecesaria y los colores de bash, el script se ha acortado para optimizar su rendimiento eliminando los saltos de línea innecesarios.
Su funcionalidad es idéntica a la del script original, sólo se ha optimizado un poco más a nivel de shell scripting, dejando de lado la estética del código.
DNSExplorer (este enlace se abre en una nueva ventana) por dabasanta (este enlace se abre en una nueva ventana)
Bash script that automates the enumeration of domains and DNS servers in the active information gathering.