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
PolarDNS — PolarDNS è un server DNS autorevole specializzato, adatto per test di penetrazione e ricerca di vulnerabilità. | Kitploit
Strumenti/GitHubGitHub/oryxlabs/polardns
Scanner di VulnerabilitàAnalisi delle VulnerabilitàFuzzingSicurezza di RetePenetration TestingAnalisi DNS
GitHuboryxlabs/polardns

PolarDNS

PolarDNS è un server DNS autorevole specializzato, adatto per test di penetrazione e ricerca di vulnerabilità.

Vedi Repository
2491931 anno faRevisionato da Kitploit
Sito web

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
Logo PolarDNS PolarDNS è un server DNS autoritativo specializzato scritto in Python 3.x, originariamente sviluppato come strumento per il test di sicurezza dei resolver DNS ricorsivi lato server.

Consente all'operatore di produrre risposte DNS personalizzate, rendendolo adatto per test approfonditi del protocollo DNS.

_

PolarDNS può essere utilizzato per testare:

  • Resolver DNS (lato server)
  • Client DNS
  • Librerie DNS
  • Parsers e dissectors DNS
  • Qualsiasi software che gestisce informazioni DNS

Supporta sia i protocolli UDP che TCP e offre all'operatore il pieno controllo sul livello del protocollo DNS.

Il server PolarDNS può produrre una varietà di risposte DNS non standard e non conformi, risposte DNS che violano le specifiche RFC, incluse risposte DNS altamente anomale e malformate.

Ciò può essere utile per:

  • Test funzionali
  • Conformità RFC
  • Ricerca sulle vulnerabilità

Installazione

Sono disponibili tre metodi per installare PolarDNS.

PolarDNS richiede Python 3.11 o successivo e non ha dipendenze aggiuntive.

Metodo 1: Installazione tramite Pip

Questo è il modo più semplice per installare ed eseguire PolarDNS:

root@kitploit:~
pip install polardns
polardns

Metodo 2: Installazione tradizionale

Puoi anche clonare il repository ed eseguire PolarDNS direttamente:

root@kitploit:~
git clone https://github.com/oryxlabs/PolarDNS.git
cd PolarDNS
python polardns.py

Questo metodo è consigliato se prevedi di eseguire il debug o modificare il codice, o aggiungere nuove funzionalità.

Metodo 3: Esecuzione di PolarDNS in Docker

Puoi anche eseguire PolarDNS in un contenitore Docker:

root@kitploit:~
docker run -p 53:53/tcp -p 53:53/udp oryxlabs/polardns

Esecuzione di PolarDNS

Il server PolarDNS è configurabile tramite il file di configurazione polardns/polardns.toml.

  • A scopo di test, la configurazione predefinita dovrebbe funzionare correttamente per l'esecuzione locale.
  • Tuttavia, potresti voler modificare la configurazione aggiungendo il tuo dominio e gli indirizzi IP del nameserver.

All'avvio di PolarDNS, dovresti vedere un output simile al seguente:

root@kitploit:~
python polardns.py
1741599804.9039893 | PolarDNS v1.6.1 server starting up
1741599804.9039893 | Using '/path/to/your/polardns/polardns.toml' config file
1741599804.9039893 | Starting listener at tcp://0.0.0.0:53
1741599804.9039893 | Starting listener at udp://0.0.0.0:53

Questo indica che il server è attivo e funzionante.

Lavorare con PolarDNS

Per impostazione predefinita, il server inizia ad ascoltare su tutte le interfacce sulla porta UDP e TCP 53 (0.0.0.0:53), pronto a rispondere alle query DNS.

Puoi testarlo localmente chiedendo la seguente query di esempio, che dovrebbe sempre risolvere a qualcosa.

Chiedi in modalità UDP:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1

Chiedi in modalità TCP:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1 +tcp

Dovresti ricevere un record A con l'indirizzo IP 2.3.4.5, come in questo screenshot:

Esempio di utilizzo di PolarDNS

Questo indica che il server funziona correttamente.

Concetto principale

Chiedendo al server PolarDNS di risolvere qualcosa, gli stai essenzialmente dando istruzioni su come dovrebbe risponderti. Ciò significa che tu (il client) detti al server PolarDNS che tipo di risposta dovrebbe produrre per te.

Ad esempio, considera la seguente query:

root@kitploit:~
dig always.ttl2000000000.slp1500.yourdomain.com @127.0.0.1

Dovresti ricevere nuovamente un record A con l'indirizzo IP 2.3.4.5, ma questa volta con un valore TTL di 2.000.000.000 (63,4 anni) e dopo un ritardo di 1,5 secondi:

TTL e latenza personalizzati con PolarDNS

Nell'esempio sopra, abbiamo usato la funzionalità di base always (che risolve sempre a qualcosa), combinandola con il modificatore ttl per regolare il valore TTL e il modificatore slp per attendere prima di inviare la risposta.

Funzionalità di PolarDNS

PolarDNS ha le seguenti funzionalità principali:

  1. Caratteristiche: Queste possono produrre varie risposte DNS. La maggior parte delle caratteristiche ha parametri, il che significa che è possibile regolare il loro comportamento per produrre una varietà di risposte DNS differenti.
  2. Modificatori di risposta: Questi possono modificare ulteriormente le risposte DNS provenienti dal server PolarDNS. I modificatori sono indipendenti dalla caratteristica selezionata e possono essere combinati liberamente.

Sono attualmente implementate oltre 70 caratteristiche diverse e 19 modificatori di risposta. Utilizzando diverse caratteristiche e combinandole con diversi modificatori di risposta, è possibile produrre innumerevoli varianti di una data risposta.

Vedi il catalogo incluso di tutte le caratteristiche e modificatori di risposta implementati.

Questo conferisce a PolarDNS la capacità di produrre risposte DNS altamente insolite, anomale e persino malformate, consentendo all'operatore di vedere come la parte ricevente gestisce tali situazioni e se è tecnicamente robusta e matura.

Alcuni esempi di risposte DNS che PolarDNS può produrre includono:

  • Catene di alias (CNAME) e loop di alias
  • Malformazioni dell'intestazione DNS (ID, Flag, numero di sezioni)
  • Iniezione di record non richiesti (cache poisoning)
  • Iniezione di byte arbitrari di lunghezza arbitraria
  • Risposte incomplete / vuote / con byte NULL
  • Problemi di compressione (loop, puntatori non validi)
  • Risposte chunked trasmesse lentamente
  • Etichette illegali o lunghezze di nomi di dominio non valide
  • Numero arbitrario di record TXT di dimensione arbitraria
  • Manipolazioni della lunghezza del pacchetto (TCP)
  • Ecc.

Questi possono portare alla scoperta di varie vulnerabilità come:

  • Attacchi Sloth domain
  • Attacchi Phantom domain
  • Attacchi Domain lock-up
  • Cache poisoning
  • Esaurimento delle risorse
  • Crash, DoS

Vedi le presentazioni BlackHat MEA 2023 (inclusi i BONUS slides) per maggiori dettagli, molti più esempi e casi d'uso.

Test dei resolver DNS ricorsivi

Ecco una panoramica di alto livello di ciò di cui hai bisogno per iniziare a testare i server DNS ricorsivi.

  1. Acquista un dominio per i tuoi test, ad esempio example123.com, utilizzando il tuo registrar di domini preferito.
  2. Ottieni 2 istanze VPS Linux con indirizzi IP pubblici e statici: questi saranno i tuoi nameserver.
  3. Distribuisci il server PolarDNS su entrambe le istanze.
  4. Modifica il file di configurazione polardns/polardns.toml su ciascuna istanza e cambia il tuo nome di dominio e gli indirizzi IP dei nameserver di conseguenza: stessa configurazione su entrambi.
  5. Nel registrar del dominio, seleziona di gestire il dominio utilizzando i tuoi nameserver. Dovrai specificare il NS primario e secondario: fornisci gli indirizzi IP delle tue istanze.

Ora la tua infrastruttura dovrebbe essere pronta per testare qualsiasi resolver DNS ricorsivo di tua scelta.

Suddivisione del processo di test

Per iniziare a testare un resolver DNS ricorsivo di destinazione, devi indirizzare le tue query al resolver DNS di destinazione, ad esempio:

root@kitploit:~
dig always.example123.com @<TARGET-RESOLVER-IP>

Ad esempio, per testare il DNS pubblico di CloudFlare:

root@kitploit:~
dig always.example123.com @1.1.1.1

Durante la risoluzione, il resolver DNS di destinazione contatterà i tuoi nameserver PolarDNS autoritativi (che gestiscono il tuo dominio di test example123.com) per risolvere la query.

Uno dei tuoi server PolarDNS risponderà al resolver DNS di destinazione. Il resolver riceverà, analizzerà ed elaborerà la risposta da PolarDNS. Successivamente, restituirà la risposta finale a te (il client).

Ecco una panoramica visiva del processo di test: Utilizzo di PolarDNS per testare un resolver DNS

Istruendo il resolver DNS a risolvere vari sottodomini sotto il tuo dominio example123.com, puoi effettivamente testare il comportamento del resolver DNS e vedere come gestisce varie situazioni inaspettate (risposte).

Ad esempio, come gestisce una situazione in cui ottiene una risposta DNS malformata, una risposta con un record iniettato o un record contenente caratteri illegali, e che tipo di risposta invia infine a te, il client?

Test E2E automatizzati con GitHub Actions

PolarDNS può essere integrato con una varietà di resolver DNS per eseguire una suite completa di test end-to-end (E2E) del server DNS.

Questa integrazione è alimentata da GitHub Actions, con modelli di riferimento (workflow) attualmente disponibili per i seguenti sei resolver DNS:

  • BIND9 (e2e-bind9.yaml)
  • CoreDNS (e2e-coredns.yaml)
  • Dnsmasq (e2e-dnsmasq.yaml)
  • Knot Resolver (e2e-knot-v5.yaml, e2e-knot-v6.yaml)
  • PowerDNS (e2e-powerdns.yaml)
  • Unbound (e2e-unbound.yaml)

Quando un'azione GitHub viene attivata (ad esempio su commit o manualmente), i workflow eseguono i seguenti passaggi:

  1. Avviano il resolver DNS selezionato in un contenitore Docker
  2. Avviano PolarDNS in un contenitore Docker separato
  3. Connettono il resolver selezionato a PolarDNS
  4. Eseguono la suite di test E2E contro il resolver DNS selezionato

Per aggiungere i tuoi test E2E, basta inserirli nella directory test-e2e/.

Cerchi una suite di test E2E completa per server DNS? Contatta [email protected].

Aggiungere nuove funzionalità

Aggiungere nuove funzionalità a PolarDNS è essenziale per scoprire problemi DNS veramente nuovi. E con PolarDNS, puoi farlo in modo relativamente semplice.

PolarDNS ti consente di aggiungere rapidamente una nuova funzionalità, provare le tue idee o sviluppare un PoC senza dover costruire il tuo server DNS. Tutto ciò di cui hai bisogno è la capacità di comprendere il codice Python e la curiosità di sperimentare con il protocollo DNS.

C'è una guida contributiva dettagliata e passo-passo per iniziare. Lì troverai non solo come aggiungere nuove funzionalità, ma anche come eseguire il debug di PolarDNS, inviare problemi, condividere idee e altro ancora.

Link

Ecco alcune risorse eccellenti utili quando si gioca con PolarDNS.

Link relativi al protocollo DNS:

  • https://en.wikipedia.org/wiki/List_of_DNS_record_types
  • https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

Server DNS:

  • https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
  • https://www.lifewire.com/free-and-public-dns-servers-2626062

Crediti

Grazie a tutti coloro che hanno contribuito a PolarDNS! ❤️

Scarica lo strumento