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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SSHintel — Honeypot SSH autonome permettant de capturer les interactions des attaquants et de les transformer en renseignements de sécurité structurés. | Kitploit
Outils/GitHubGitHub/sonitbahl/sshintel
Sécurité RéseauRenseignement sur les MenacesDétection d'IntrusionRéponse aux IncidentsAnalyse de Journaux
GitHubsonitbahl/sshintel

SSHintel

Honeypot SSH autonome permettant de capturer les interactions des attaquants et de les transformer en renseignements de sécurité structurés.

Voir le dépôt
369il y a 8 joursPas encore vérifié

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

SSHintel — Honeypot SSH léger

License: MIT Python Last Commit Repo Size

SSHintel est un honeypot SSH léger construit avec Python et Paramiko. Il simule un shell Linux factice pour journaliser les tentatives d'accès non autorisées, capturer les identifiants et analyser le comportement des attaquants dans un environnement contrôlé.


🔧 Fonctionnalités

  • Journalise les tentatives de connexion SSH avec l'adresse IP, le nom d'utilisateur et le mot de passe
  • Fournit un shell Linux simulé (un environnement factice en mémoire)
  • Prend en charge un large ensemble de commandes de reconnaissance et de navigation (ls, cd, pwd, cat, echo, grep, find, tree, head, tail, wc, stat, ps, df, free, env, id, whoami, etc.)
  • Mode --tarpit optionnel pour ralentir les attaquants avec une sortie différée
  • Système de fichiers factice isolé par session avec prise en charge de la création et de la lecture de fichiers
  • Tableau de bord web local pour visualiser la télémétrie de sécurité capturée (sessions, commandes, tentatives d'authentification, principaux attaquants)
  • Vue d'investigation de session — sélectionnez n'importe quelle session et reconstituez la chronologie complète de l'attaque, y compris l'adresse IP source, le résultat de l'authentification, chaque commande exécutée avec son répertoire de travail et la durée de la session
  • Tout est simulé — les commandes ne s'exécutent jamais sur l'hôte, n'accèdent jamais au système de fichiers réel et n'effectuent aucune requête réseau.

SSHintel n'est pas un shell Bash/Linux complet. Il simule un sous-ensemble crédible de commandes courantes pour recueillir la télémétrie des attaquants. Les commandes sont distribuées par un registre léger ; ajouter une commande signifie ajouter une petite fonction de gestion.


🛠️ Installation

1. 📦 Installer les dépendances

pip install -r requirements.txt

Remarque : La clé d'hôte SSH est générée automatiquement au premier lancement. Aucune génération manuelle de clé n'est nécessaire.


🚀 Exécution du honeypot

Exécutez le honeypot avec un port, un nom d'utilisateur et un mot de passe spécifiques :

python3 run.py serve --port 2222 --username user1 --password pass123

Le port par défaut est 2222 et l'hôte est 0.0.0.0.

Le honeypot génère automatiquement une clé d'hôte SSH dans static/server.key au premier lancement si elle n'existe pas. Aucune génération manuelle de clé n'est nécessaire.

Pour activer le mode tarpit :

python3 run.py serve --port 2222 --username user1 --password pass123 --tarpit

Pour désactiver la télémétrie SQLite (JSONL uniquement) :

python3 run.py serve --port 2222 --username user1 --password pass123 --no-db

🛡️ Limites de connexion et délais d'attente

SSHintel protège contre l'épuisement des ressources causé par de nombreuses connexions simultanées ou des connexions maintenues actives indéfiniment. Ces paramètres sont configurables via la CLI :

IndicateurDéfautObjectif
--max-connections50Nombre maximal de connexions actives simultanées ; les connexions supplémentaires sont rejetées et journalisées comme un événement connection_rejected
--auth-timeout60 (s)Temps autorisé pour terminer la poignée de main/authentification SSH ; les clients bloqués sont déconnectés
--session-idle-timeout300 (s)Délai d'inactivité pour un shell authentifié ; une session inactive est terminée, mais un attaquant qui tape activement n'est jamais tué

Exemple :

python3 run.py serve --port 2222 --username user1 --password pass123 \
  --max-connections 25 --auth-timeout 30 --session-idle-timeout 300

Lorsque trop de connexions sont ouvertes, la connexion supplémentaire est fermée immédiatement et un événement de sécurité connection_rejected (avec reason: connection_limit) est écrit dans le journal JSONL. Une authentification bloquée est enregistrée comme une déconnexion avec reason: auth_timeout ; un shell inactif se termine avec reason: idle_timeout.

Le mode tarpit envoie intentionnellement la sortie lentement pour maintenir l'engagement d'un attaquant, donc la boucle de bannière tarpit n'est pas soumise au délai d'inactivité — mais les sessions tarpit comptent dans la limite de connexions.


📊 Tableau de bord

SSHintel comprend un tableau de bord web local qui visualise la télémétrie de sécurité stockée dans SQLite.

Démarrer le tableau de bord

python3 run.py dashboard

Ouvrez ensuite http://localhost:5000 dans votre navigateur.

Le tableau de bord lit la base de données SQLite dans data/sshintel.db par défaut. Démarrez d'abord le honeypot pour que la télémétrie soit capturée, puis lancez le tableau de bord pour le regarder se remplir.

Ce qu'il affiche

  • Cartes KPI — sessions totales, adresses IP sources uniques, tentatives d'authentification, authentifications réussies/échouées et commandes exécutées
  • Graphique d'activité — connexions au fil du temps, groupées par heure
  • Commandes principales — les commandes d'attaque les plus fréquemment exécutées
  • Noms d'utilisateur ciblés — quels noms d'utilisateur les attaquants essaient
  • Sessions récentes — cliquez sur n'importe quel ID de session pour l'investiguer
  • Activité récente — les derniers événements de télémétrie dans un tableau consultable

Investigation de session

Cliquez sur un ID de session (ou naviguez vers /session/<session_id>) pour ouvrir la vue d'investigation de session, qui reconstitue une seule attaque chronologiquement :

  • Résumé de la session — adresse IP source, nom d'utilisateur, heures de début/fin, durée, résultat de l'authentification, raison de la déconnexion
  • Chronologie de l'attaque — chaque événement (connexion, tentatives d'authentification, commandes, déconnexion) dans l'ordre chronologique
  • Séquence de commandes — une vue compacte $ commande de tout ce que l'attaquant a tapé, avec les répertoires de travail

Exemple de flux de travail

# Terminal 1 : démarrer le honeypot
python3 run.py serve --port 2222 --username user1 --password pass123

# Terminal 2 : démarrer le tableau de bord
python3 run.py dashboard

# Terminal 3 : simuler un attaquant
ssh user1@localhost -p 2222
# (exécuter quelques commandes, puis quitter)

Ouvrez ensuite http://localhost:5000 pour inspecter l'activité capturée.

Le tableau de bord prend en charge la télémétrie en direct — il interroge le honeypot toutes les 2 secondes et se met à jour automatiquement. Les nouvelles sessions, commandes et événements apparaissent en temps réel sans actualiser la page. Un indicateur en direct (● Live) montre l'état de la connexion.


🔐 Test depuis un autre terminal

Ouvrez un second terminal et essayez de vous connecter :

ssh user1@localhost -p 2222

Si les identifiants correspondent, vous serez placé dans le shell émulé.


🚑 Optionnel : Effacer les hôtes connus (en cas de reconnexion)

Pour supprimer les empreintes SSH obsolètes :

notepad "%USERPROFILE%\.ssh\known_hosts"

Supprimez la ligne pertinente contenant localhost ou l'adresse IP du honeypot.


📝 Informations journalisées

  • Les identifiants sont journalisés dans creds_logger
  • Les commandes shell sont journalisées via funnel_logger
  • Les événements de sécurité structurés sont écrits dans log_files/events.jsonl au format JSON Lines (JSONL) — un objet JSON valide par ligne
Télécharger l’outil