Siempre que aborde cualquier tarea de DNS, lo primero que debe hacer es una búsqueda NSlookup (búsqueda de servidor de nombres).
nslookup -type=NS (dominio) (IP de la máquina de destino)
le proporcionará el dominio y el servidor de nombres correctos.
También podemos ver otro tipo de registros como
nslookup -type=TXT (dominio) (IP de la máquina de destino)
o de correos
nslookup -type=MX inlanefreight.com
El comando `nslookup` se puede utilizar para obtener varios tipos de información relacionada con DNS. Aquí te dejo una lista de las consultas más comunes que puedes realizar con `nslookup`:
1. Consultar el tipo de registro (A, MX, CNAME, etc.):
– A (Address): Dirección IP de un dominio.
– MX (Mail Exchange): Servidores de correo de un dominio.
– CNAME (Canonical Name): Nombre canónico de un alias.
– NS (Name Server): Servidores de nombres del dominio.
– PTR (Pointer): Utilizado para realizar búsquedas inversas (de IP a nombre de dominio).
– TXT (Text): Registros de texto asociados al dominio (como SPF, DKIM, etc.).
nslookup -type=MX inlanefreight.com nslookup -type=A inlanefreight.com nslookup -type=NS inlanefreight.com
Nmap
Tambien podemos lanzar con [[nmap]] el script –script dns-nsid
nmap -p 53 --script dns-nsid <server_ip>
Enumeracion
El registro `SOA` se encuentra en el archivo de zona de un dominio y especifica quién es responsable del funcionamiento del dominio y cómo se administra la información DNS del dominio.
Jesuslopez@htb[/htb]$ dig soa www.inlanefreight.com ; <<>> DiG 9.16.27-Debian <<>> soa www.inlanefreight.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15876 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;www.inlanefreight.com. IN SOA ;; AUTHORITY SECTION: inlanefreight.com. 900 IN SOA ns-161.awsdns-20.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 ;; Query time: 16 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Jan 05 12:56:10 GMT 2023 ;; MSG SIZE rcvd: 128
El punto (.) se reemplaza por un signo arroba (@) en la dirección de correo electrónico. En este ejemplo, la dirección de correo electrónico del administrador es `awsdns-hostmaster@amazon.com`.
————————
DIG – Consulta NS Consultar al servidor DNS qué otros servidores de nombres conoce.
Esto lo hacemos utilizando el registro NS y la especificación del servidor DNS que queremos consultar mediante el `@`carácter . Esto se debe a que, si existen otros servidores DNS, también podemos utilizarlos y consultar los registros. Sin embargo, otros servidores DNS pueden estar configurados de forma diferente y, además, pueden ser permanentes para otras zonas.
Jesuslopez@htb[/htb]$ dig ns inlanefreight.htb @10.129.14.128 ; <<>> DiG 9.16.1-Ubuntu <<>> ns inlanefreight.htb @10.129.14.128 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45010 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: ce4d8681b32abaea0100000061475f73842c401c391690c7 (good) ;; QUESTION SECTION: ;inlanefreight.htb. IN NS ;; ANSWER SECTION: inlanefreight.htb. 604800 IN NS ns.inlanefreight.htb. ;; ADDITIONAL SECTION: ns.inlanefreight.htb. 604800 IN A 10.129.34.136 ;; Query time: 0 msec ;; SERVER: 10.129.14.128#53(10.129.14.128) ;; WHEN: So Sep 19 18:04:03 CEST 2021 ;; MSG SIZE rcvd: 107
DIG – Consulta de versión de un servidor DNS
Se hace mediante una consulta de clase CHAOS y tipo TXT.
Esta entrada debe existir en el servidor DNS.
Para ello, podríamos utilizar el siguiente comando:
Jesuslopez@htb[/htb]$ dig CH TXT version.bind 10.129.120.85 ; <<>> DiG 9.10.6 <<>> CH TXT version.bind ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47786 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; ANSWER SECTION: version.bind. 0 CH TXT "9.10.6-P1" ;; ADDITIONAL SECTION: version.bind. 0 CH TXT "9.10.6-P1-Debian" ;; Query time: 2 msec ;; SERVER: 10.129.120.85#53(10.129.120.85) ;; WHEN: Wed Jan 05 20:23:14 UTC 2023 ;; MSG SIZE rcvd: 101
Opción `ANY` para ver todos los registros disponibles.
Esto hará que el servidor nos muestre todas las entradas disponibles que esté dispuesto a revelar.
Es importante tener en cuenta que no se mostrarán todas las entradas de las zonas.
DIG – ANY consulta
Jesuslopez@htb[/htb]$ dig any inlanefreight.htb @10.129.14.128 ; <<>> DiG 9.16.1-Ubuntu <<>> any inlanefreight.htb @10.129.14.128 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7649 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 064b7e1f091b95120100000061476865a6026d01f87d10ca (good) ;; QUESTION SECTION: ;inlanefreight.htb. IN ANY ;; ANSWER SECTION: inlanefreight.htb. 604800 IN TXT "v=spf1 include:mailgun.org include:_spf.google.com include:spf.protection.outlook.com include:_spf.atlassian.net ip4:10.129.124.8 ip4:10.129.127.2 ip4:10.129.42.106 ~all" inlanefreight.htb. 604800 IN TXT "atlassian-domain-verification=t1rKCy68JFszSdCKVpw64A1QksWdXuYFUeSXKU" inlanefreight.htb. 604800 IN TXT "MS=ms97310371" inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604800 86400 2419200 604800 inlanefreight.htb. 604800 IN NS ns.inlanefreight.htb. ;; ADDITIONAL SECTION: ns.inlanefreight.htb. 604800 IN A 10.129.34.136 ;; Query time: 0 msec ;; SERVER: 10.129.14.128#53(10.129.14.128) ;; WHEN: So Sep 19 18:42:13 CEST 2021 ;; MSG SIZE rcvd: 437
AXFR
`Zone transfer`se refiere a la transferencia de zonas a otro servidor en DNS por lo general en el puerto 53.
Este procedimiento se abrevia `Asynchronous Full Transfer Zone`( `AXFR`).
Dado que un fallo de DNS suele tener graves consecuencias para una empresa, el archivo de zonas se mantiene casi invariablemente idéntico en varios servidores de nombres
Cuando se realizan cambios, se debe asegurar que todos los servidores tengan los mismos datos
La sincronización entre los servidores involucrados se realiza mediante transferencia de zona (Zone Transfer).
Mediante una clave secreta `rndc-key`, que hemos visto inicialmente en la configuración predeterminada [[1 – DNS Configuraciones]] os servidores se aseguran de que se comunican con su propio maestro o esclavo.
La transferencia de zona implica la mera transferencia de archivos o registros y la detección de discrepancias en los conjuntos de datos de los servidores involucrados.
Los datos originales de una zona se encuentran en un servidor DNS, que se denomina `primary`servidor de nombres para esta zona.
Sin embargo, para aumentar la fiabilidad, realizar una distribución sencilla de la carga o proteger el servidor principal de ataques, en la práctica en casi todos los casos se instalan uno o más servidores adicionales, que se denominan servidores `secondary` de nombres para esta zona.
Para algunos `Top-Level Domains`( `TLDs`), `Second Level Domains`es obligatorio hacer que los archivos de zona sean accesibles en al menos dos servidores.
Las entradas DNS generalmente solo se crean, modifican o eliminan en el servidor principal.
Esto se puede hacer editando manualmente el archivo de zona correspondiente o automáticamente mediante una actualización dinámica desde una base de datos.
Un servidor DNS que sirve como fuente directa para sincronizar un archivo de zona se denomina servidor maestro
Un servidor DNS que obtiene datos de zona de un servidor maestro se denomina servidor esclavo.
Un servidor principal siempre es un servidor maestro, mientras que un servidor secundario puede ser tanto un servidor esclavo como un servidor maestro.
El esclavo obtiene el registro `SOA` de la zona correspondiente del maestro a intervalos determinados, el llamado tiempo de actualización, n rmalmente una hora, y compara los números de serie. Si el número de serie del registro SOA del maestro es mayor que el del esclavo, los conjuntos de datos ya no coinciden.
DIG – Transferencia de zona AXFR
Jesuslopez@htb[/htb]$ dig axfr inlanefreight.htb @10.129.14.128 ; <<>> DiG 9.16.1-Ubuntu <<>> any inlanefreight.htb @10.129.14.128 ;; global options: +cmd inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604800 86400 2419200 604800 inlanefreight.htb. 604800 IN TXT "MS=ms97310371" inlanefreight.htb. 604800 IN TXT "atlassian-domain-verification=t1rKCy68JFszSdCKVpw64A1QksWdXuYFUeSXKU" inlanefreight.htb. 604800 IN TXT "v=spf1 include:mailgun.org include:_spf.google.com include:spf.protection.outlook.com include:_spf.atlassian.net ip4:10.129.124.8 ip4:10.129.127.2 ip4:10.129.42.106 ~all" inlanefreight.htb. 604800 IN NS ns.inlanefreight.htb. app.inlanefreight.htb. 604800 IN A 10.129.18.15 internal.inlanefreight.htb. 604800 IN A 10.129.1.6 mail1.inlanefreight.htb. 604800 IN A 10.129.18.201 ns.inlanefreight.htb. 604800 IN A 10.129.34.136 inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604800 86400 2419200 604800 ;; Query time: 4 msec ;; SERVER: 10.129.14.128#53(10.129.14.128) ;; WHEN: So Sep 19 18:51:19 CEST 2021 ;; XFR size: 9 records (messages 1, bytes 520)
Si un administrador utilizó una subred para la opción `allow-transfer`con fines de prueba o como solución alternativa o la configuró como `any`
todos consultarían el archivo de zona completo en el servidor DNS e incluso consultar otras zonas, que incluso pueden mostrar direcciones IP internas y nombres de host.
DIG – Transferencia de zona AXFR – Interna
dig axfr internal.inlanefreight.htb @10.129.14.128 ; <<>> DiG 9.16.1-Ubuntu <<>> axfr internal.inlanefreight.htb @10.129.14.128 ;; global options: +cmd internal.inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604800 86400 2419200 604800 internal.inlanefreight.htb. 604800 IN TXT "MS=ms97310371" internal.inlanefreight.htb. 604800 IN TXT "atlassian-domain-verification=t1rKCy68JFszSdCKVpw64A1QksWdXuYFUeSXKU" internal.inlanefreight.htb. 604800 IN TXT "v=spf1 include:mailgun.org include:_spf.google.com include:spf.protection.outlook.com include:_spf.atlassian.net ip4:10.129.124.8 ip4:10.129.127.2 ip4:10.129.42.106 ~all" internal.inlanefreight.htb. 604800 IN NS ns.inlanefreight.htb. dc1.internal.inlanefreight.htb. 604800 IN A 10.129.34.16 dc2.internal.inlanefreight.htb. 604800 IN A 10.129.34.11 mail1.internal.inlanefreight.htb. 604800 IN A 10.129.18.200 ns.internal.inlanefreight.htb. 604800 IN A 10.129.34.136 vpn.internal.inlanefreight.htb. 604800 IN A 10.129.1.6 ws1.internal.inlanefreight.htb. 604800 IN A 10.129.1.34 ws2.internal.inlanefreight.htb. 604800 IN A 10.129.1.35 wsus.internal.inlanefreight.htb. 604800 IN A 10.129.18.2 internal.inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604800 86400 2419200 604800 ;; Query time: 0 msec ;; SERVER: 10.129.14.128#53(10.129.14.128) ;; WHEN: So Sep 19 18:53:11 CEST 2021 ;; XFR size: 15 records (messages 1, bytes 664)
echo "ns1.inlanefreight.com" > ./resolvers.txt Jesuslopez@htb[/htb]$ ./subbrute inlanefreight.com -s ./names.txt -r ./resolvers.txt
Ataques de Fuerza Bruta Subdominios
Esto se hace con los registros A
Ojoooo hay subdominios dentro de subdominios como por ejemplo
win2k.dev.inlanefreight.htb
El subdominio dev.inlanefreight.htb ha aparecido en la tarea de hatthebox
Al hacer
dig axfr inlanefreight.htb @10.129.198.252 app.inlanefreight.htb. 604800 IN A 10.129.18.15 dev.inlanefreight.htb. 604800 IN A 10.12.0.1 internal.inlanefreight.htb. 604800 IN A 10.129.1.6 mail1.inlanefreight.htb. 604800 IN A 10.129.18.201 ns.inlanefreight.htb. 604800 IN A 127.0.0.1
SI probamos un axfr a cada subdomino y no hay conexion se puede hacer tambien el ataque de fuerza bruta a ese subdominio.
OJOOOOOO, consejo, los diccionarios , hay que usar todos los que sean posibles si no encontramos nada.
Por aqui os paso el enlace a
Fuerza bruta de subdominio
Jesuslopez@htb[/htb]$ for sub in $(cat /opt/useful/seclists/Discovery/DNS/subdomains-top1million-110000.txt);do dig $sub.inlanefreight.htb @10.129.14.128 | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done ns.inlanefreight.htb. 604800 IN A 10.129.34.136 mail1.inlanefreight.htb. 604800 IN A 10.129.18.201 app.inlanefreight.htb. 604800 IN A 10.129.18.15 inlanefreight.htb. 604800 IN NS ns.inlanefreight.htb. dev.inlanefreight.htb. 604800 IN A 10.12.0.1 internal.inlanefreight.htb. 604800 IN A 10.129.1.6 inlanefreight.htb. 604800 IN SOA inlanefreight.htb. root.inlanefreight.htb. 2 604
Tambien disponemos de Herramientas como https://jprhack.net/dnsenum/
————————————————————————————————
Si solo tenemos la ip
Si no disponemos de dominio y solo de IP podemos ejecutar lo siguiente para obtener el registro PTR
dig -x 10.10.10.10 dig @10.10.10.10 dominio ahora enumeramos los names servers dig @10.10.10.10 dominio ns ahora los mail servers dig @10.10.10.10 dominio mx --> es para enumerar correos
Esta es una consulta de resolución inversa. La opción `-x` se utiliza para realizar una búsqueda inversa de DNS.
En este caso, estás solicitando a `dig` que resuelva la dirección IP `10.10.10.10` en un nombre de dominio.
Este tipo de consulta se utiliza para encontrar el nombre de dominio asociado con una dirección IP dada.
Por ejemplo, si `10.10.10.10` corresponde a un servidor llamado `example.com`, esta consulta devolverá el nombre de dominio `example.com`