Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dnsdiag — Toolset per misurazione DNS, risoluzione dei problemi e audit di sicurezza | Kitploit
Strumenti/GitHubGitHub/farrokhi/dnsdiag
RicognizioneMappatura della ReteAnalisi delle VulnerabilitàRaccolta InformazioniSicurezza di ReteAnalisi DNS
GitHubfarrokhi/dnsdiag

dnsdiag

Toolset per misurazione DNS, risoluzione dei problemi e audit di sicurezza

Vedi Repository
1.1k11116 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

PyPI PyPI Downloads Downloads PyPI Docker Pulls GitHub stars

Set di strumenti per misurazione DNS, risoluzione dei problemi e audit di sicurezza

Ti sei mai chiesto se il tuo ISP sta intercettando il tuo traffico DNS)? Hai notato qualche comportamento insolito nelle tue risposte DNS, o sei stato reindirizzato all'indirizzo sbagliato e hai sospettato che qualcosa non andasse con il tuo DNS? Offriamo una suite di strumenti per eseguire audit di base sulle tue richieste e risposte DNS, aiutandoti a garantire che il tuo DNS funzioni come previsto.

Con dnsping, puoi misurare il tempo di risposta di qualsiasi server DNS per query arbitrarie. Simile al normale comando ping, dnsping offre funzionalità analoghe per le richieste DNS, aiutandoti a monitorare la reattività del server.

Puoi anche tracciare il percorso della tua richiesta DNS fino alla sua destinazione usando dnstraceroute, verificando che non venga reindirizzata o intercettata. Confrontando le query DNS inviate allo stesso server, dnstraceroute ti permette di osservare eventuali differenze nei percorsi seguiti, segnalandoti possibili problemi.

dnseval valuta più resolver DNS per aiutarti a scegliere il miglior resolver DNS per la tua rete. Sebbene sia consigliato utilizzare il proprio resolver DNS per evitare la dipendenza da resolver DNS di terze parti, dnseval può aiutare a selezionare il resolver DNS ottimale quando necessario. Ti permette di confrontare i server DNS in base alle prestazioni (latenza) e all'affidabilità (perdita di pacchetti), offrendoti una visione completa per prendere decisioni informate.

Installazione

Ci sono diversi modi per utilizzare questa suite di strumenti, anche se raccomandiamo di eseguirla direttamente dal codice sorgente per una flessibilità e un controllo ottimali.

Codice sorgente

  1. Clona il repository git e installa le dipendenze:
root@kitploit:~
git clone https://github.com/farrokhi/dnsdiag.git
cd dnsdiag
pip3 install -r requirements.txt
  1. In alternativa, puoi installare il pacchetto usando pip:
root@kitploit:~
pip3 install dnsdiag

Utilizzo di uv (Consigliato)

uv è un gestore di pacchetti Python veloce che può eseguire strumenti direttamente senza installazione:

root@kitploit:~
# Esegui dnsping direttamente senza installazione
uvx --from dnsdiag dnsping google.com

# Esegui con opzioni specifiche
uvx --from dnsdiag dnsping -c 5 --tls -s 8.8.8.8 example.com

# Esegui dnstraceroute
uvx --from dnsdiag dnstraceroute cloudflare.com

# Esegui dnseval
uvx --from dnsdiag dnseval -f public-servers.txt github.com

Per installare dnsdiag in modo persistente:

root@kitploit:~
# Installa gli strumenti dnsdiag
uv tool install dnsdiag

# Aggiorna all'ultima versione
uv tool upgrade dnsdiag

Pacchetto binario

Di tanto in tanto, verranno rilasciati pacchetti binari per Windows, Mac OS X e Linux. Puoi scaricare l'ultima versione dalla pagina delle release.

Piattaforme supportate

I binari precompilati sono disponibili per:

  • Linux (x86_64, ARM64)
  • macOS (Intel, Apple Silicon)
  • Windows (x86_64)

Windows ARM64 non è attualmente supportato a causa di dipendenze di build che richiedono toolchain di compilazione nativi non facilmente disponibili. Se stai usando Windows su ARM, puoi eseguire dnsdiag usando Windows Subsystem for Linux (WSL2) o installare direttamente dal sorgente.

Docker

Se preferisci non installare dnsdiag sulla tua macchina locale, puoi usare l'immagine Docker per eseguire gli strumenti in un ambiente containerizzato. Ad esempio:

root@kitploit:~
docker run --network host -it --rm farrokhi/dnsdiag dnsping.py

dnsping

dnsping ti permette di "pingare" un resolver DNS inviando una query DNS arbitraria più volte. Per un elenco completo delle opzioni da riga di comando supportate, usa --help. Ecco alcuni flag chiave:

  • Usa --tcp, --tls, --doh, --quic o --http3 per selezionare il protocollo di trasporto (il predefinito è UDP). Queste opzioni si escludono a vicenda; può essere specificato un solo protocollo per comando.
  • Usa --flags per visualizzare i flag di risposta, inclusi i flag EDNS, per ogni risposta.
  • Usa --dnssec per richiedere la validazione DNSSEC, se disponibile.
  • I messaggi di errore DNS estesi (RFC 8914) vengono visualizzati automaticamente quando presenti.
  • Usa --nsid per visualizzare l'Identificatore del Server DNS (NSID) se disponibile (RFC 5001).
  • Usa --ecs per includere le informazioni sul Sottorete Client EDNS per l'ottimizzazione del routing geografico.
  • Usa --cookie per visualizzare i cookie DNS (RFC 7873) quando presenti nelle risposte.
root@kitploit:~
./dnsping.py -c 5 --dnssec --flags --tls -t AAAA -s 8.8.8.8 brokendnssec.net
root@kitploit:~
dnsping.py DNS: 8.8.8.8:853, hostname: brokendnssec.net, proto: TLS, class: IN, type: AAAA, flags: [RD]
75  bytes from 8.8.8.8: seq=1   time=73.703 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=2   time=69.523 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=3   time=58.058 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=4   time=54.235 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=5   time=57.806 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]

--- 8.8.8.8 dnsping statistics ---
5 requests transmitted, 5 responses received, 0% lost
min=54.235 ms, avg=22.665 ms, max=69.523 ms, stddev=38.202 ms

dnsping fornisce anche statistiche come il tempo di risposta minimo, massimo e medio, insieme al jitter (deviazione standard) e alla perdita di pacchetti.

Ecco alcuni casi d'uso interessanti per dnsping:

  • Confrontare i tempi di risposta su diversi protocolli di trasporto (es. UDP vs DoH).
  • Valutare l'affidabilità del tuo server DNS misurando jitter e perdita di pacchetti.
  • Misurare i tempi di risposta con DNSSEC abilitato usando il flag --dnssec.
  • Testare il comportamento del Sottorete Client EDNS per risposte con consapevolezza geografica:
root@kitploit:~
./dnsping.py -c 3 --ecs 203.0.113.0/24 -s 94.140.14.14 google.com
root@kitploit:~
dnsping.py DNS: 94.140.14.14:53, hostname: google.com, proto: UDP, class: IN, type: A, flags: [RD]
66  bytes from 94.140.14.14: seq=1   time=31.407 ms  NOERROR [ECS:203.0.113.0/24/24]
66  bytes from 94.140.14.14: seq=2   time=29.156 ms  NOERROR [ECS:203.0.113.0/24/24]
66  bytes from 94.140.14.14: seq=3   time=30.892 ms  NOERROR [ECS:203.0.113.0/24/24]

--- 94.140.14.14 dnsping statistics ---
3 requests transmitted, 3 responses received, 0% lost
min=29.156 ms, avg=30.485 ms, max=31.407 ms, stddev=1.176 ms
  • Identificare i server DNS usando l'opzione NSID:
root@kitploit:~
./dnsping.py -c 2 --nsid -s 8.8.8.8 google.com
root@kitploit:~
dnsping.py DNS: 8.8.8.8:53, hostname: google.com, proto: UDP, class: IN, type: A, flags: [RD]
68  bytes from 8.8.8.8: seq=1   time=36.399 ms  NOERROR [NSID:gpdns-ams]
68  bytes from 8.8.8.8: seq=2   time=32.156 ms  NOERROR [NSID:gpdns-ams]

--- 8.8.8.8 dnsping statistics ---
2 requests transmitted, 2 responses received, 0% lost
min=32.156 ms, avg=34.278 ms, max=36.399 ms, stddev=2.122 ms
  • Testare i cookie DNS per una sicurezza migliorata e un'ottimizzazione della cache:
root@kitploit:~
./dnsping.py -c 2 --cookie -s anyns.pch.net quad9.net
root@kitploit:~
dnsping.py DNS: anyns.pch.net:53, hostname: quad9.net, proto: UDP, class: IN, type: A, flags: [RD]
82  bytes from anyns.pch.net: seq=1   time=30.552  ms  NOERROR [COOKIE:27f609c017bb2ec4ea70de5c68eec3fc39f6a53ee49c55f8]
82  bytes from anyns.pch.net: seq=2   time=24.794  ms  NOERROR [COOKIE:719631dd9fcce722d3ac859b68eec3fd2e5430b5c8a7f8cf]

--- anyns.pch.net dnsping statistics ---
2 requests transmitted, 2 responses received, 0% lost
min=24.794 ms, avg=27.673 ms, max=30.552 ms, stddev=4.072 ms

Interpretazione dei flag DNSSEC e relativi alla sicurezza

Quando si usano --dnssec e --flags, dnsping espone i campi del protocollo DNS che sono direttamente rilevanti per la validazione della sicurezza DNS. Questi valori indicano se un resolver è in grado di validare DNSSEC e se una risposta è stata verificata con successo.

Flag comuni:

  • DO (DNSSEC OK)
    Indica che il client sta richiedendo record relativi a DNSSEC. La sua presenza mostra che il resolver supporta le query DNSSEC.

  • AD (Authenticated Data)
    Impostato dai resolver validanti quando la risposta è stata convalidata crittograficamente usando DNSSEC. Questo è un forte segnale che la validazione DNSSEC è attiva e riuscita.

Schemi tipici:

RisultatoSignificato
NOERROR con flag AD

Gli Errori DNS Estesi (EDE, RFC 8914) forniscono informazioni diagnostiche aggiuntive quando la validazione DNSSEC fallisce. Ad esempio:

  • EDE:10 – DNSSEC Bogus (dati DNSSEC non validi o errati)
  • EDE:6 – Firma DNSSEC Scaduta
  • EDE:7 – Firma DNSSEC Non Ancora Valida

Questi indicatori rendono dnsping utile non solo per i test di prestazione, ma anche per validare se i resolver applicano correttamente DNSSEC e per diagnosticare problemi di distribuzione DNSSEC.

dnstraceroute

dnstraceroute è un'utility che traccia il percorso delle tue richieste DNS fino alla loro destinazione. Potresti voler confrontare questo con il traceroute effettivo della tua rete per assicurarti che il tuo traffico DNS non venga instradato attraverso percorsi indesiderati.

dnstraceroute supporta più protocolli di trasporto (mutualmente esclusivi):

  • UDP (predefinito) - Query DNS tradizionali
  • TCP (--tcp) - DNS su TCP
  • DoQ (--quic) - DNS su QUIC (supportato da AdGuard DNS)
  • DoH3 (--http3) - DNS su HTTP/3 (supportato da Google DNS e Cloudflare)
root@kitploit:~
./dnstraceroute.py --expert --asn -C -t A -s 8.8.4.4 facebook.com

Puoi anche testare protocolli DNS moderni:

root@kitploit:~
# Test DNS su QUIC con AdGuard DNS
./dnstraceroute.py --quic -s 94.140.14.14 -c 3 google.com

# Test DNS su HTTP/3 con Google DNS
./dnstraceroute.py --http3 -s 8.8.8.8 -c 3 google.com
root@kitploit:~
dnstraceroute.py DNS: 8.8.4.4:53, hostname: facebook.com, rdatatype: A
1	192.168.0.1 (192.168.0.1) 1 ms
2	192.168.28.177 (192.168.28.177) 4 ms
3	192.168.0.1 (192.168.0.1) 693 ms
4	172.19.4.17 (172.19.4.17) 3 ms
5	dns.google (8.8.4.4) [AS15169 GOOGLE, US] 8 ms

=== Expert Hints ===
 [*] public DNS server is next to a private IP address (possible hijacking)

Usando il flag --expert con dnstraceroute verranno visualizzati i suggerimenti esperti, inclusi avvisi su possibili dirottamenti del traffico DNS.

dnseval

dnseval è un'utility di ping bulk che invia query DNS arbitrarie a un elenco specificato di server DNS, permettendoti di confrontare i loro tempi di risposta simultaneamente.

Puoi usare dnseval per valutare i tempi di risposta su diversi protocolli di trasporto, inclusi UDP (predefinito), TCP, DoT (DNS su TLS), DoH (DNS su HTTPS), DoQ (DNS su QUIC) e DoH3 (DNS su HTTP/3) usando rispettivamente i flag --tcp, --tls, --doh, --quic e --http3. Queste opzioni di protocollo si escludono a vicenda; può essere specificato un solo protocollo per comando.

Riepilogo supporto protocolli

DoQ: DNS over QUIC, DoH3: DNS over HTTP/3

root@kitploit:~
./dnseval.py --skip-warmup --dnssec -c10 -f public-servers.txt ripe.net
root@kitploit:~
server                   avg(ms)  min(ms)  max(ms)  stddev(ms)  lost(%)  ttl      flags                      response
---------------------------------------------------------------------------------------------------------------------
1.0.0.1                  29.01    14.15    45.36    8.60        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.1                  23.90    18.14    42.07    7.83        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.0.0.2                  25.90    21.36    31.58    4.26        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.2                  22.68    18.36    32.15    3.96        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.0.0.3                  22.53    18.98    32.52    3.94        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.3                  21.70    20.25    22.97    0.77        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1001     21.70    19.13    27.50    2.28        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1111     22.63    20.42    30.18    3.13        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1002     24.97    20.89    44.63    7.16        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1112     23.24    21.37    25.87    1.48        %0       298      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1003     21.68    19.28    24.88    1.65        %0       298      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1113     22.61    19.86    26.09    1.73        %0       299      QR -- -- RD RA AD -- DO     NOERROR
195.46.39.39             25.56    16.42    55.37    15.37       %0       300      QR -- -- RD RA -- -- --     NOERROR
195.46.39.40             19.08    16.51    23.86    2.24        %0       300      QR -- -- RD RA -- -- --     NOERROR
2a05:d014:939:3300::39   0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
2a05:d014:939:3300::40   0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
208.67.220.220           30.60    14.54    120.64   31.88       %0       300      QR -- -- RD RA AD -- DO     NOERROR
208.67.222.222           21.78    17.42    36.45    6.06        %0       50       QR -- -- RD RA AD -- DO     NOERROR
2620:0:ccc::2            29.48    19.23    98.29    24.22       %0       299      QR -- -- RD RA AD -- DO     NOERROR
2620:0:ccd::2            22.36    17.90    30.18    3.98        %0       299      QR -- -- RD RA AD -- DO     NOERROR
216.146.35.35            172.53   114.46   360.87   71.47       %0       299      QR -- -- RD RA AD -- DO     NOERROR
216.146.36.36            187.36   118.21   324.32   59.08       %0       110      QR -- -- RD RA AD -- DO     NOERROR
209.244.0.3              46.49    25.23    115.86   28.19       %0       300      QR -- -- RD RA -- -- DO     NOERROR
209.244.0.4              58.33    28.09    109.18   29.20       %0       299      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.1                  64.58    30.21    86.79    30.19       %25      299      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.2                  40.54    22.69    74.80    20.76       %0       70       QR -- -- RD RA -- -- DO     NOERROR
4.2.2.3                  90.62    90.62    90.62    0.00        %50      70       QR -- -- RD RA -- -- DO     NOERROR
4.2.2.4                  31.53    23.80    70.93    14.51       %0       294      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.5                  24.11    24.05    24.18    0.09        %33      294      QR -- -- RD RA -- -- DO     NOERROR
80.80.80.80              0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
80.80.81.81              0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
8.8.4.4                  28.35    20.85    39.14    7.24        %0       300      QR -- -- RD RA AD -- DO     NOERROR
8.8.8.8                  21.22    16.22    24.93    2.39        %0       299      QR -- -- RD RA AD -- DO     NOERROR

Puoi anche salvare i risultati in formato JSONL per ulteriori elaborazioni. Ogni riga nel file di output è un oggetto JSON valido contenente i risultati completi della misurazione per un server DNS.

root@kitploit:~
./dnseval.py -c 5 -j results.jsonl -f public-servers.txt example.com

L'output può essere analizzato riga per riga con strumenti JSON standard come jq.

root@kitploit:~
cat results.jsonl | jq -r 'select(.data.r_lost_percent == 0) | .data.resolver'

Autore

Babak Farrokhi

  • github: github.com/farrokhi
  • website: farrokhi.net
  • mastodon: @[email protected]
  • twitter: @farrokhi

Licenza

dnsdiag è rilasciato sotto una licenza BSD a 2 clausole.

Scarica lo strumento
Validazione DNSSEC riuscita
SERVFAIL con flag DOValidazione DNSSEC fallita (spesso a causa di firme errate o configurazione errata)
Flag AD non presenteIl resolver non sta eseguendo la validazione DNSSEC
StrumentoUDPTCPTLS (DoT)DoHDoQDoH3
dnsping✓✓✓✓✓✓
dnstraceroute✓✓--✓✓
dnseval✓✓✓✓✓✓