Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SSH-Snake — Script Bash sans fichier et auto-propageant qui découvre récursivement les clés privées SSH et les hôtes accessibles, puis parcourt le réseau via SSH pour cartographier les chemins de compromission. | Kitploit
Outils/GitHubGitHub/megamansec/ssh-snake
Escalade de PrivilègesReconnaissanceCartographie RéseauMouvement LatéralScripting et AutomatisationExfiltration de DonnéesCollecte d'InformationsPost-ExploitationTests d'IntrusionRed Teaming
GitHub
2.3k22148il y a 2 joursVé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
megamansec/ssh-snake

SSH-Snake

Script Bash sans fichier et auto-propageant qui découvre récursivement les clés privées SSH et les hôtes accessibles, puis parcourt le réseau via SSH pour cartographier les chemins de compromission.

Voir le dépôtSite web

SSH-Snake : Traversée de réseau automatisée basée sur SSH

🐍 SSH-Snake est un outil puissant conçu pour effectuer une traversée de réseau automatique à l'aide des clés privées SSH découvertes sur les systèmes, dans le but de créer une cartographie complète d'un réseau et de ses dépendances, en identifiant dans quelle mesure un réseau peut être compromis à l'aide de SSH et de clés privées SSH à partir d'un système donné.

SSH-Snake peut révéler automatiquement les relations entre les systèmes connectés via SSH, ce qui nécessiterait normalement une quantité considérable de temps et d'efforts pour être réalisé manuellement.

En d'autres termes, SSH-Snake effectue automatiquement et récursivement les tâches suivantes :

  1. Sur le système actuel, trouver toute clé privée SSH,
  2. Sur le système actuel, trouver tout hôte ou destination (user@host) où les clés privées peuvent être acceptées,
  3. Tenter de se connecter en SSH à toutes les destinations en utilisant toutes les clés privées découvertes,
  4. Si une connexion à une destination réussit, répéter les étapes #1 à #4 sur le système connecté.

Il est entièrement auto-répliquant et auto-propageant -- et entièrement sans fichier. À bien des égards, SSH-Snake est en réalité un ver : il se réplique et se propage d'un système à un autre aussi loin qu'il le peut.

Au lieu de sauter manuellement entre les systèmes avec des clés SSH comme dans un jeu Super Mario, laissez SSH-Snake faire le travail pour vous.

Bien que cet outil soit destiné à des fins de hacking, les administrateurs système peuvent également l'utiliser pour mieux comprendre leur infrastructure et leur réseau. Si vous souhaitez désactiver l'affichage des clés privées découvertes, commentez cette ligne de code.

Pour un examen approfondi du fonctionnement réel de ce script, des détails techniques, des découvertes intéressantes, des décisions de conception, des benchmarks et des leçons apprises, consultez cet article de blog. Ce logiciel a été écrit par Joshua Rogers.

Captures d'écran

Une capture d'écran réduite de la sortie de SSH-Snake dans un très petit réseau.

Un graphe visualisant la relation entre les systèmes via SSHLes nœuds bleus indiquent que la destination peut se connecter à elle-même (user@host<-->user@host). Les arêtes rouges indiquent que la connexion est bidirectionnelle (user1@host1<-->user2@host2).

Un graphe visualisant la relation entre les systèmes via SSHLes nœuds verts indiquent un hôte (sans nom d'utilisateur) qui peut se connecter à lui-même (host1<-->host1). Les arêtes vertes indiquent que la connexion est bidirectionnelle (host1<-->host2). L'hôte gris dans le coin supérieur droit est l'hôte sur lequel le script a été initialement exécuté.

Un graphe visualisant la relation entre les systèmes via SSHLes nœuds bleus indiquent que la destination peut se connecter à elle-même (user@host<-->user@host). Les arêtes rouges indiquent que la connexion est bidirectionnelle (user1@host1<-->user2@host2).

Utilisation et exécution de SSH-Snake

SSH-Snake peut soit être téléchargé, soit être transmis par pipe à bash :

wget https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh
bash ./Snake.nocomments.sh

ou

curl https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh | bash

À propos de SSH-Snake

SSH-Snake émule de manière transparente ce qu'un adversaire humain ferait pour découvrir les clés privées SSH et les destinations où elles peuvent être utilisées pour se connecter. Entièrement écrit en Bash, il fonctionne avec un ensemble minimal de dépendances couramment disponibles sur les principaux systèmes Linux (et MacOS) : bash, ssh, coreutils, awk, uniq, sort, grep, tr, find et cat. getent OU dscacheutil est requis. sed n'est requis que pour le tout premier système. De même, sudo, hostname, ip, timeout, arp, ifconfig, ipconfig et xargs peuvent également être utilisés, mais ils ne sont pas requis (et le script gère gracieusement les cas où ils ne sont pas présents). Si un système est découvert sans l'un des paquets requis, il échoue gracieusement, en alertant l'utilisateur que l'analyse ne pouvait pas continuer sur ce système particulier (et revient en arrière, en continuant depuis le système précédent).

SSH-Snake est entièrement sans fichier : après que l'utilisateur a exécuté le script, celui-ci est transmis au bash des destinations via stdin et les arguments de bash (via SSH). Aucune preuve matérielle du script n'existe sur les systèmes analysés : la seule preuve de l'exécution du script se trouve dans l'arborescence des processus, et la quantité substantielle de tentatives SSH invalides qui se produiront inévitablement.

SSH-Snake adopte une approche en profondeur d'abord pour la découverte : une fois qu'il se connecte à un système, il tente de se connecter plus loin depuis ce système avant de revenir en arrière.

Le nom SSH-Snake vient du fait que la sortie du script ressemble à un serpent qui se glisse de haut en bas dans le réseau. Cependant, contrairement au jeu Snake, SSH-Snake ne mourra pas lorsqu'il se mordra la queue (se connecte à un système qu'il a déjà analysé ou qu'il est en train d'analyser) : il imprimera simplement comment il s'est connecté là-bas comme d'habitude, mais reviendra et ne réanalysera pas la destination (afin d'éviter une récursion infinie).

SSH-Snake a été testé sur diverses distributions de Linux et sur MacOS (avec Homebrew Bash installé). Si vous rencontrez un OS basé sur Linux avec lequel il n'est pas compatible, veuillez soumettre un rapport.

Fonctionnalités

  • SSH récursif d'un système à un autre en utilisant les clés privées SSH locales,
  • Traversée et propagation/réplication sans fichier du script SSH-Snake en utilisant uniquement stdin et les arguments de bash vers les systèmes distants,
  • Élévation automatique des privilèges vers root en utilisant sudo si possible,
  • Découverte des fichiers de clés privées SSH à partir des entrées de .bash_history,
  • Découverte des clés privées SSH à partir des fichiers et dossiers couramment utilisés,
  • Exfiltration des clés privées SSH en tant que sortie du script,
  • Exécution de commandes personnalisées configurables sur chaque système,
  • Système modulaire plug-and-play pour découvrir les clés privées et les systèmes,
  • Détection des hôtes à partir des plages d'IP, des dernières connexions, des hôtes connus, des fichiers de configuration SSH, et plus encore,
  • Capacité à détecter quand un système a déjà été analysé ou est en cours d'analyse, de sorte qu'un réseau comme A->B->C puisse également découvrir C->A mais ne régresse pas vers A->B->C-A->B->C->A->B->....,
  • Capacité à générer des visualisations graphiques d'un réseau à partir de la sortie du script,
  • ... et plus encore.

Paramètres

SSH-Snake est livré avec quelques paramètres généraux qui peuvent être configurés. Ces paramètres sont documentés dans SETTINGS.md#general-settings.

Télécharger l’outil