- Descripción
- Función
- Sintaxis
- Ejemplo
Descripción
Comando: dnsenum
Versión: 1.2.6
Plataforma: Linux
El comando dnsenum es una herramienta de línea de comandos escrita en Perl para realizar enumeración de DNS en un dominio específico. Es útil para la recopilación de información y el reconocimiento en pruebas de penetración.
Este programa es útil para pentesters, hackers éticos y expertos forenses. También se puede utilizar para pruebas de seguridad.
Funciones
- Obtener la dirección del host (registro A).
- Obtener los servidores de nombres (enhebrados).
- Obtener el registro MX (enhebrado).
- Realizar consultas axfr en servidores de nombres y obtener la versión de BIND (enhebrado).
- Obtener nombres adicionales y subdominios a través de Google scraping (consulta en Google = “-www site:dominio”).
- Ataque de Fuerza bruta de subdominios desde un archivo, también puede realizar recursión en subdominios que tienen registros NS (todos enhebrados).
- Calcular rangos de red de dominio de clase C y realizar consultas whois en ellos (enhebrados).
- Realizar búsquedas inversas en rangos de red (clase C y/o rangos de whois) (enhebrados).
- Escribir en el archivo domain_ips.txt los bloques de direcciones IP.
En la siguiente sección se muestran los parámetros del comando dnsenum.
Sintaxis
dnsenum [Opciones] <dominio>
En donde <dominio>, es el dominio que se desea escanear. Obligatorio
[Opciones], parámetros para modificar el funcionamiento predeterminado del comando. Opcional
Parámetros
Parámetro | Significado | Descripción |
–dnsserver <server> | Utilizar este servidor DNS para consultas A, NS y MX. | |
–enum | Opción abreviada equivalente a –threads 5 -s 15 -w. | |
-h | –help | Mostrar este mensaje de ayuda. |
–noreverse | Omitir las operaciones de búsqueda inversa. | |
–nocolor | Desactivar la salida de color ANSIColor. | |
–private | Mostrar y guardar IPs privadas al final en el archivo domain_ips.txt. | |
–file <archivo> | Escribir todos los subdominios válidos en este archivo. | |
-t <valor> | –timeout | Los valores de tiempo de espera tcp y udp en segundos (predeterminado: 10s). |
–threads <valor> | El número de hilos que realizarán diferentes consultas. | |
-v, | –verbose | Ser detallado: mostrar todo el progreso y todos los mensajes de error. |
Opciones de Google Scraping | ||
-p <valor> | –pages | El número de páginas de búsqueda de Google a procesar al extraer nombres, el valor predeterminado es 5 páginas, se debe especificar el interruptor -s. |
-s <valor> | –scrap | El número máximo de subdominios que se extraerán de Google (predeterminado 15). |
Opciones de Fuerza Bruta | ||
-f <archivo> | –file | Leer subdominios de este archivo para realizar fuerza bruta. (Tiene prioridad sobre dns.txt predeterminado) |
-u <a|g|r|z> | –update | Actualiza el archivo especificado con el modificador -f con subdominios válidos. |
a (all) | Actualizar usando todos los resultados. | |
g | Actualiza usando solo los resultados de extracción de Google. | |
r | Actualizar usando solo resultados de búsqueda inversa. | |
z | Actualiza usando solo los resultados de transferencia de zona. | |
-r | –recursion | Recursión en subdominios, fuerza bruta a todos los subdominios descubiertos que tienen un registro NS. |
Opciones de red de Whois | ||
-d <valor> | –delay | El valor máximo de segundos para esperar entre las consultas whois, el valor se define al azar, predeterminado: 3s. |
-w | –whois | Realizar las consultas whois en rangos de red de clase c. Advertencia: esto puede generar rangos de red muy grandes y tomará mucho tiempo para realizar búsquedas inversas. |
Opciones de Búsqueda Inversa | ||
-e <expresión regular> | –exclude | Excluir registros PTR que coincidan con la expresión regular de los resultados de búsqueda inversa, útil en nombres de host no válidos. |
Opciones de Salida | ||
-o <archivo> | –output | Salida en formato XML. Puede importarse en MagicTree (www.gremwell.com). |
Ejemplo de uso (PoC)
dnsenum example.com
Realizamos un escaneo general sobre el dominio example.com, con la siguiente salida.
dnsenum example.com dnsenum VERSION:1.2.6 ----- example.com ----- Host's addresses: __________________ example.com. 0 IN A 93.184.216.34 Name Servers: ______________ b.iana-servers.net. 0 IN A 199.43.133.53 a.iana-servers.net. 0 IN A 199.43.135.53 Mail (MX) Servers: ___________________ Trying Zone Transfers and getting Bind Versions: _________________________________________________ Trying Zone Transfer for example.com on b.iana-servers.net ... AXFR record query failed: REFUSED Trying Zone Transfer for example.com on a.iana-servers.net ... AXFR record query failed: NOTAUTH Scraping example.com subdomains from Google: _____________________________________________ ---- Google search page: 1 ---- gateway Google Results: ________________ Brute forcing with /usr/share/dnsenum/dns.txt: _______________________________________________ www.example.com. 0 IN A 93.184.216.34 Launching Whois Queries: _________________________ whois ip result: 93.184.216.0 -> 93.184.216.0/24 example.com___________ 93.184.216.0/24 Performing reverse lookup on 256 ip addresses: _______________________________________________ 0 results out of 256 IP addresses. example.com ip blocks: _______________________ done.
dnsenum dominios.com -v -w
Realizamos un escaneo solicitando el detalle del escaneo y buscamos sobre todo el rango de clase C en el dominio dominios.com, con la siguiente salida. (Nota la salida está truncada porque es extremadamente larga.)
----- dominios.com ----- Host's addresses: __________________ dominios.com. 0 IN A 64.98.135.80 ---------------- Wildcards test: ---------------- Wildcard detection using: esoxmtlxqhjr _______________________________________ esoxmtlxqhjr.dominios.com. 0 IN A 64.98.135.80 !!!!!!!!!!!!!!!!!!!!!!!!!!!! Wildcards detected, all subdomains will point to the same IP address Omitting results containing 64.98.135.80. Maybe you are using OpenDNS servers. !!!!!!!!!!!!!!!!!!!!!!!!!!!! Name Servers: ______________ dns2.name-services.com. 0 IN A 216.40.47.201 dns1.name-services.com. 0 IN A 64.98.148.137 dns3.name-services.com. 0 IN A 64.98.148.138 dns5.name-services.com. 0 IN A 64.98.148.139 dns4.name-services.com. 0 IN A 216.40.47.202 Mail (MX) Servers: ___________________ mx.dominios.com.cust.a.hostedemail.com. 0 IN A 216.40.42.4 Trying Zone Transfers and getting Bind Versions: _________________________________________________ Trying Zone Transfer for dominios.com on dns2.name-services.com ... AXFR record query failed: REFUSED Trying Zone Transfer for dominios.com on dns1.name-services.com ... AXFR record query failed: REFUSED Trying Zone Transfer for dominios.com on dns3.name-services.com ... AXFR record query failed: REFUSED Trying Zone Transfer for dominios.com on dns5.name-services.com ... AXFR record query failed: REFUSED Trying Zone Transfer for dominios.com on dns4.name-services.com ... AXFR record query failed: REFUSED Brute forcing with /usr/share/dnsenum/dns.txt: _______________________________________________ geh\228lter.dominios.com A record query failed: SERVFAIL zdfageh\228lter.dominios.com A record query failed: SERVFAIL Launching Whois Queries: _________________________ whois ip result: 64.98.135.0 -> 64.98.0.0/15 dominios.com____________ 64.98.0.0/15 Performing reverse lookup on 131072 ip addresses: __________________________________________________ 64.98.0.0 ... 64.98.0.1 ... 64.98.0.2 ... 64.98.0.3 ...
Informar errores
Si encuentras algún error o tienes un aporte a la información proporcionada por favor dirígela a soporte@ehack.mx
Otras consideraciones
Ninguna
Obtener el programa:
Cómo instalar
sudo apt install dnsenum
Referencias
- dnsenum por Roberto C. González
- Kali.org
- debian.org
Fuente Imágenes:
Imágenes cortesía by Nala Systems
dnsenum by Roberto C. González adaptado para Ethical Hack ©2023, Ethical Hack, Todos los derechos reservados sobre la traducción. ©2023, Ethical Hack, Todos los derechos reservados sobre el contenido propio.
