Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
SSH-Snake — SSH-Snake est un script sans fichier, auto-propagateur et auto-réplicant qui automatise la tâche de post-exploitation de découverte de clés privées SSH et d'hôtes. | Kitploit
Outils/GitHubGitHub/megamansec/ssh-snake
Escalade de PrivilègesReconnaissanceCartographie RéseauMouvement LatéralCollecte d'InformationsPost-ExploitationTests d'IntrusionRed TeamingArchived
GitHubmegamansec/ssh-snake

SSH-Snake

SSH-Snake est un script sans fichier, auto-propagateur et auto-réplicant qui automatise la tâche de post-exploitation de découverte de clés privées SSH et d'hôtes.

2.3k22122il y a 6 moisVé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ôtSite web

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

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

SSH-Snake peut automatiquement révéler les relations entre les systèmes connectés via SSH, ce qui prendrait normalement un temps et un effort considérables pour être effectué manuellement.

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

  1. Sur le système actuel, trouver toutes les clés privées SSH,
  2. Sur le système actuel, trouver tous les hôtes ou destinations (user@host) pour lesquels les clés privées pourraient être acceptées,
  3. Essayer 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 totalement auto-réplicatif et auto-propageant -- et complètement sans fichier. À bien des égards, SSH-Snake est en fait un ver : il se réplique et se propage d'un système à un autre aussi loin que possible.

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 à votre place.

Bien que cet outil soit destiné à des fins de piratage, 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.

Screenshots

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

A graph visualizing the relation between systems using 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).

A graph visualizing the relation between systems using 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é.

A graph visualizing the relation between systems using 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 être téléchargé ou redirigé vers 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 généralement 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 aucun des paquets requis, il échoue gracieusement, alertant l'utilisateur que l'analyse n'a pas pu continuer sur ce système particulier (et fait marche arrière, continuant à partir du système précédent.)

SSH-Snake est totalement sans fichier : après que l'utilisateur a exécuté le script, il est passé au bash des destinations via stdin et les arguments bash (via SSH). Aucune trace matérielle du script n'existe sur aucun des systèmes scannés : la seule preuve de l'exécution du script est dans l'arbre des processus et le nombre substantiel 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 essaie de se connecter plus loin à partir de ce système avant de faire marche arrière.

Le nom SSH-Snake vient du fait que la sortie du script ressemble à un serpent qui serpente de haut en bas du réseau. Cependant, contrairement au jeu Snake, SSH-Snake ne mourra pas lorsqu'il se mord la queue (se connecte à un système qu'il a déjà scanné ou qu'il est en train de scanner) : il affichera simplement comment il s'est connecté là-bas normalement, mais reviendra et ne re-scannera pas la destination (afin d'éviter une récursion infinie).

SSH-Snake a été testé sur diverses distributions Linux et MacOS (avec Homebrew Bash installé). Si vous rencontrez un système d'exploitation 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 bash vers les systèmes distants,
  • Élévation automatique des privilèges vers root via sudo si possible,
  • Découverte des fichiers de clés privées SSH à partir des entrées .bash_history,
  • Découverte des clés privées SSH à partir de fichiers et dossiers couramment utilisés,
  • Exfiltration des clés privées SSH en 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 de plages IP, dernières connexions, hôtes connus, fichiers de configuration SSH, etc.,
  • Capacité à détecter quand un système a déjà été scanné ou est en cours de scan, 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 fourni avec certains 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