Skip to content

Instantly share code, notes, and snippets.

@nullx5
Last active December 25, 2025 11:01
Show Gist options
  • Select an option

  • Save nullx5/07c9e021fbb26be4da135e2f32855aa2 to your computer and use it in GitHub Desktop.

Select an option

Save nullx5/07c9e021fbb26be4da135e2f32855aa2 to your computer and use it in GitHub Desktop.

SISTEMA DNS domain name system - dns

Documentacion:

TOOLS

  • host google.com # resuelve dns y dns inverso

  • nslookup google.com # resuelve dns y dns inverso

  • resolvectl query google.com # resuelve dns y dns inverso

  • dig -x 142.251.132.174 # resuelve dns y dns inverso

  • drill -x 142.251.132.174 # resuelve dns y dns inverso

  • dig +short google.com AAAA # consulta registros dns

  • drill mx cloudflare.com # consulta registros dns

  • nslookup -type=AAAA cloudflare.com # consulta registros dns

  • doggo cloudflare.com A AAAA MX NS SOA TXT --time # consulta registros dns

  • https://www.cual-es-mi-ip.net/dns-lookup # consulta registros dns online

  • resolvectl status # consultar mi servidor dns

  • resolvectl status wlp2s0 # consultar mi servidor dns por interfaz

  • sudo resolvectl dns wlp2s0 1.1.1.3 1.0.0.3 # cambiar mi servidor dns

  • sudo resolvectl flush-caches # elimina el cache dns local

👀 resolvectl dns es temporal recomendado para pruebas:
- Se pierde al reiniciar
- Se pierde al reconectar Wi-Fi
  • sudo resolvectl dnsovertls wlp2s0 yes # habilitar DNS over TLS (DoT) port 853

  • sudo resolvectl dnssec wlp2s0 yes # habilitar DNSSec

  • drill -s dnskey cloudflare.com # DNSKEY y DS

  • drill -D cloudflare.com # RRSIG

  • drill -TD cloudflare.com # Realiza rastreo DNSSEC desde los servidores root hasta un nombre de dominio

configuracion permanente cambiar servidor DNS a cloudflare y habilitar DNS over TLS (DoT):

  • sudo nvim /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.3#family.cloudflare-dns.com 1.0.0.3#family.cloudflare-dns.com
DNSOverTLS=yes
DNSSEC=yes
  • sudo systemctl restart systemd-resolved # reiniciar para aplicar los cambios

👉 En Ubuntu 22.04+ systemd-resolved actúa como stub resolver.

Navegador
  ↓
127.0.0.53 (systemd-resolved)
  ↓
TLS cifrado (TCP/853)
  ↓
1.1.1.3

image

👀 OJO habilitar puerto 853 saliente en el firewall, se puede deshabilitar el puerto 53:

To                         Action      From
--                         ------      ----
853                        ALLOW OUT   Anywhere
443                        ALLOW OUT   Anywhere

👀 OJO asegurarse que ls -l /etc/resolv.conf Debe apuntar a /run/systemd/resolve/stub-resolv.conf

cambiar servidor dns permanente usando sudo nmtui y luego reiniciar NetworkManager:

- restart NetworkManager

cloudflare Malware and Adult Content 1.1.1.3 1.0.0.3

https://blog.cloudflare.com/introducing-1-1-1-1-for-families/

software dns server

  • bind9
  • dnsmasq (dns y DHCP)
  • powerdns
  • unbound

en ubuntu 22.04 desktop quien maneja la resolucion dns systemd:

status systemd-resolved.service

Script para listar todos los 13 ROOT-SERVERS

#!/bin/bash
for r in $(dig . NS +short | sort); do
  printf "%-22s IPv4: %-15s IPv6: %s\n" \
    "$r" \
    "$(dig +short A $r | tr '\n' ' ')" \
    "$(dig +short AAAA $r | tr '\n' ' ')"
done

./root-servers-DNS.sh

a.root-servers.net.    IPv4: 198.41.0.4      IPv6: 2001:503:ba3e::2:30 
b.root-servers.net.    IPv4: 170.247.170.2   IPv6: 2801:1b8:10::b 
c.root-servers.net.    IPv4: 192.33.4.12     IPv6: 2001:500:2::c 
d.root-servers.net.    IPv4: 199.7.91.13     IPv6: 2001:500:2d::d 
e.root-servers.net.    IPv4: 192.203.230.10  IPv6: 2001:500:a8::e 
f.root-servers.net.    IPv4: 192.5.5.241     IPv6: 2001:500:2f::f 
g.root-servers.net.    IPv4: 192.112.36.4    IPv6: 2001:500:12::d0d 
h.root-servers.net.    IPv4: 198.97.190.53   IPv6: 2001:500:1::53 
i.root-servers.net.    IPv4: 192.36.148.17   IPv6: 2001:7fe::53 
j.root-servers.net.    IPv4: 192.58.128.30   IPv6: 2001:503:c27::2:30 
k.root-servers.net.    IPv4: 193.0.14.129    IPv6: 2001:7fd::1 
l.root-servers.net.    IPv4: 199.7.83.42     IPv6: 2001:500:9f::42 
m.root-servers.net.    IPv4: 202.12.27.33    IPv6: 2001:dc3::35 

https://root-servers.org/

@nullx5
Copy link
Author

nullx5 commented Dec 20, 2025

image

Tipos de servidores DNS

1. Servidor DNS Root

  • Nivel más alto del DNS.
  • Conoce dónde están los servidores de los TLD.
  • Ejemplo: a.root-servers.net

2. Servidor DNS TLD (Top-Level Domain)

  • Gestiona dominios como .com, .org, .co.
  • Indica qué servidor es autoritativo para un dominio.

3. Servidor DNS Autoritativo

  • Tiene la respuesta final para un dominio.
  • Contiene registros A, AAAA, MX, NS, TXT, etc.
  • Ejemplo: DNS de un proveedor de hosting.

4. Servidor DNS Recursivo

  • Resuelve consultas en nombre del cliente.
  • Consulta Root → TLD → Autoritativo.
  • Hace caché de respuestas.
  • Ejemplo: ISP, 8.8.8.8, 1.1.1.1.

5. Servidor DNS Caching-only

  • No es autoritativo.
  • Solo almacena respuestas en caché.
  • Mejora rendimiento y reduce tráfico.

6. Servidor DNS Forwarder

  • Reenvía consultas a otro DNS.
  • No hace resolución completa.
  • Usado en redes internas.

7. Servidor DNS Primario (Master)

  • DNS autoritativo principal.
  • Donde se editan los registros.

8. Servidor DNS Secundario (Slave)

  • Copia del primario.
  • Se sincroniza por transferencias de zona (AXFR/IXFR).
  • Aumenta redundancia.

9. Servidor DNS Público

  • Accesible desde Internet.
  • Ejemplo: Google, Cloudflare, Quad9.

10. Servidor DNS Privado / Interno

  • Usado en LAN o redes corporativas.
  • Resuelve dominios locales y correo
  • Contiene registros A, AAAA, MX, NS, TXT, etc.
  • Funciona como Autoritativo Interno
  • Recursivo con caché (para clientes)

@nullx5
Copy link
Author

nullx5 commented Dec 21, 2025

filtro wireshark

dns.qry.name == unad.edu.co

Captura dns estandar udp port 53 .pcap

image image image image

Captura dns over tls y dnssec cloudflare tcp port 853 .pcap

filtro wireshark

tcp.dstport == 853

image

@nullx5
Copy link
Author

nullx5 commented Dec 21, 2025

dig +dnssec cloudflare.com # sale por tcp 853

; <<>> DiG 9.18.39-0ubuntu0.22.04.2-Ubuntu <<>> +dnssec cloudflare.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26002
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 65494
;; QUESTION SECTION:
;cloudflare.com.                        IN      A

;; ANSWER SECTION:
cloudflare.com.         264     IN      A       104.16.132.229
cloudflare.com.         264     IN      RRSIG   A 13 2 300 20251222054029 20251220034029 34505 cloudflare.com. O2H18hc9WEGDLnCYiDPWnl5wm8LFE6dy9f7myyKk/63YXmP1ZfeH4nA+ oXQxBIMira0AhmElR8vyhqXFvP5Vxg==
cloudflare.com.         264     IN      A       104.16.133.229

;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Dec 20 23:41:23 -05 2025
;; MSG SIZE  rcvd: 185

drill -D cloudflare.com # sale por tcp 853

;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 58684
;; flags: qr rd ra ad ; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; cloudflare.com.      IN      A

;; ANSWER SECTION:
cloudflare.com. 43      IN      A       104.16.133.229
cloudflare.com. 43      IN      RRSIG   A 13 2 300 20251223065209 20251221045209 34505 cloudflare.com. QeGj5tFdb7ppqFGJks3/lgkdRurjGYtPAZipIs/NV2w9ensF1XsTAzEqiv2UmpwQTkVVx4aCucd5cCG1Coenzw==
cloudflare.com. 43      IN      A       104.16.132.229

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; EDNS: version 0; flags: do ; udp: 65494
;; SERVER: 127.0.0.53
;; WHEN: Mon Dec 22 00:56:52 2025
;; MSG SIZE  rcvd: 185

@nullx5
Copy link
Author

nullx5 commented Dec 22, 2025

drill -TD cloudflare.com # sale por udp 53, no por tcp 853

Realiza rastreo DNSSEC desde los servidores root hasta un nombre de dominio, En lugar de preguntar a tu router o ISP, drill va directamente a los servidores raíz, luego a los de .com y finalmente a los de cloudflare.com. Le pide a los servidores DNS que envíen firmas digitales (RRSIG) y claves públicas (DNSKEY) para demostrar que nadie ha manipulado la respuesta en el camino.

Flujo de la salida bajando por la "escalera" de confianza del DNS:

  • Nivel Raíz (.): Obtiene las claves de la raíz del internet.
  • Nivel TLD (.com): La raíz le da el registro DS (Delegation Signer) que es como una huella digital que garantiza que las claves de .com son auténticas.
  • Nivel Dominio (cloudflare.com): El servidor de .com le da el registro DS de Cloudflare.
  • Resultado final: Te muestra las IPs de Cloudflare (104.16.132.229) marcadas con un [S], lo que significa que la Firma es válida (Signature OK).

Significado de las etiquetas finales:

  • [S] (Self Sig OK): La firma es matemáticamente válida. Todo parece estar bien configurado en el servidor.
  • [B] (Bogus): ¡Peligro! La firma no coincide. Alguien podría estar intentando un ataque de "DNS Spoofing".
  • [U] (Unsecure): El dominio no usa DNSSEC. La respuesta es DNS tradicional sin protección.
  • [T] (Trusted): La firma es válida Y ADEMÁS se pudo rastrear hasta una clave en la que tú confías (el ancla de confianza).
image

Warning: No trusted keys were given. Will not be able to verify authenticity!

Este es el punto clave. Aunque drill verificó que las firmas son matemáticas correctas (por eso pone [S]), no tiene un punto de partida en el que confiar.

Imagina que alguien te da un pasaporte perfectamente impreso y firmado. drill confirma que la firma coincide con el sello, pero te dice: "No conozco al Gobierno que emitió este sello, así que no puedo asegurar que sea real".

Para que el aviso desaparezca, necesitas indicarle a drill cuál es la "Ancla de Confianza" (Trust Anchor) del mundo real, que suele ser la clave pública de los servidores Raíz.

Podemos obtener estas claves de 2 maneras, en sistemas GNU/Linux:

  • En la ruta /usr/share/dns/root.key
  • Con el comando dig . DNSKEY | grep -E "^\.[[:space:]]" > ~/root.key

drill -TD -k ~/root.key cloudflare.com # sale por udp 53, no por tcp 853

image

Captura drill dnssec desde roots hasta cloudflare - DS DNSKEY RRSIG.pcap

@nullx5
Copy link
Author

nullx5 commented Dec 22, 2025

Detectar DNS Spoofing

image image

@nullx5
Copy link
Author

nullx5 commented Dec 22, 2025

Nueva TOOL doggo investigar mas:

doggo

@nullx5
Copy link
Author

nullx5 commented Dec 25, 2025

resolvectl flush-caches

drill -TD -k ~/root.key cloudflare.com

Traza dns completa desde la raiz .pcap

image image image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment