Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SSHintel — Eigenständige SSH-Honeypot zur Erfassung von Angreiferinteraktionen und deren Umwandlung in strukturierte Sicherheitsinformationen. | Kitploit
Tools/GitHubGitHub/sonitbahl/sshintel
NetzwerksicherheitBedrohungsanalyseEinbruchserkennungIncident ResponseLog-Analyse
GitHubsonitbahl/sshintel

SSHintel

Eigenständige SSH-Honeypot zur Erfassung von Angreiferinteraktionen und deren Umwandlung in strukturierte Sicherheitsinformationen.

Repository anzeigen
369vor 8 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SSHintel — Leichtgewichtige SSH-Honeypot

License: MIT Python Last Commit Repo Size

SSHintel ist eine leichtgewichtige SSH-Honeypot, die mit Python und Paramiko erstellt wurde. Sie simuliert eine gefälschte Linux-Shell, um unbefugte Zugriffsversuche zu protokollieren, Anmeldedaten zu erfassen und das Verhalten von Angreifern in einer kontrollierten Umgebung zu analysieren.


🔧 Funktionen

  • Protokolliert SSH-Anmeldeversuche mit IP, Benutzername und Passwort
  • Bietet eine simulierte Linux-Shell (eine gefälschte, im Speicher gehaltene Umgebung)
  • Unterstützt eine breite Palette von Aufklärungs- und Navigationsbefehlen (ls, cd, pwd, cat, echo, grep, find, tree, head, tail, wc, stat, ps, df, free, env, id, whoami, usw.)
  • Optionaler --tarpit-Modus, um Angreifer mit verzögerter Ausgabe zu verlangsamen
  • Pro Sitzung isoliertes gefälschtes Dateisystem mit Unterstützung zum Erstellen und Lesen von Dateien
  • Lokales Web-Dashboard zur Visualisierung erfasster Sicherheitstelemetrie (Sitzungen, Befehle, Authentifizierungsversuche, Top-Angreifer)
  • Sitzungsuntersuchungsansicht — wählen Sie eine beliebige Sitzung aus und rekonstruieren Sie die vollständige Angriffszeitleiste chronologisch, einschließlich Quell-IP, Authentifizierungsergebnis, jedem ausgeführten Befehl mit seinem Arbeitsverzeichnis und der Sitzungsdauer
  • Alles ist simuliert — Befehle werden niemals auf dem Host ausgeführt, greifen niemals auf das echte Dateisystem zu und senden keine Netzwerkanfragen.

SSHintel ist keine vollwertige Bash/Linux-Shell. Es simuliert eine glaubwürdige Teilmenge gängiger Befehle, um Angreifertelemetrie zu sammeln. Befehle werden über ein leichtgewichtiges Register verteilt; das Hinzufügen eines Befehls bedeutet das Hinzufügen einer kleinen Handler-Funktion.


🛠️ Einrichtung

1. 📦 Abhängigkeiten installieren

pip install -r requirements.txt

Hinweis: Der SSH-Hostschlüssel wird beim ersten Start automatisch generiert. Keine manuelle Schlüsselerzeugung erforderlich.


🚀 Ausführen der Honeypot

Führen Sie die Honeypot mit einem bestimmten Port, Benutzernamen und Passwort aus:

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

Standardport ist 2222 und Host ist 0.0.0.0.

Die Honeypot generiert automatisch einen SSH-Hostschlüssel unter static/server.key beim ersten Start, falls keiner vorhanden ist. Keine manuelle Schlüsselerzeugung erforderlich.

Um den Tarpit-Modus zu aktivieren:

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

Um SQLite-Telemetrie zu deaktivieren (nur JSONL):

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

🛡️ Verbindungslimits und Timeouts

SSHintel schützt vor Ressourcenerschöpfung durch viele gleichzeitige Verbindungen oder Verbindungen, die unbegrenzt aufrechterhalten werden. Diese sind über die CLI konfigurierbar:

FlagStandardZweck
--max-connections50Maximale gleichzeitige aktive Verbindungen; zusätzliche Verbindungen werden abgelehnt und als connection_rejected-Ereignis protokolliert
--auth-timeout60 (s)Zeit, die für den Abschluss des SSH-Handshakes/der Authentifizierung erlaubt ist; blockierte Clients werden getrennt
--session-idle-timeout300 (s)Inaktivitäts-Timeout für eine authentifizierte Shell; eine inaktive Sitzung wird beendet, aber ein aktiv tippender Angreifer wird niemals beendet

Beispiel:

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

Wenn zu viele Verbindungen offen sind, wird die zusätzliche Verbindung sofort geschlossen und ein connection_rejected-Sicherheitsereignis (mit reason: connection_limit) wird in das JSONL-Protokoll geschrieben. Eine blockierte Authentifizierung wird als Trennung mit reason: auth_timeout aufgezeichnet; eine inaktive Shell endet mit reason: idle_timeout.

Der Tarpit-Modus sendet absichtlich Ausgaben langsam, um einen Angreifer zu beschäftigen, daher unterliegt die Tarpit-Banner-Schleife nicht dem Inaktivitäts-Timeout — aber Tarpit-Sitzungen zählen gegen das Verbindungslimit.


📊 Dashboard

SSHintel enthält ein lokales Web-Dashboard, das die in SQLite gespeicherte Sicherheitstelemetrie visualisiert.

Dashboard starten

python3 run.py dashboard

Öffnen Sie dann http://localhost:5000 in Ihrem Browser.

Das Dashboard liest standardmäßig aus der SQLite-Datenbank unter data/sshintel.db. Starten Sie zuerst die Honeypot, damit Telemetrie erfasst wird, und starten Sie dann das Dashboard, um zu beobachten, wie es sich füllt.

Was es anzeigt

  • KPI-Karten — Gesamtsitzungen, eindeutige Quell-IPs, Authentifizierungsversuche, erfolgreiche/fehlgeschlagene Authentifizierungen und ausgeführte Befehle
  • Aktivitätsdiagramm — Verbindungen im Zeitverlauf, gruppiert nach Stunde
  • Top-Befehle — die am häufigsten ausgeführten Angreiferbefehle
  • Gezielte Benutzernamen — welche Benutzernamen Angreifer versuchen
  • Letzte Sitzungen — klicken Sie auf eine beliebige Sitzungs-ID, um sie zu untersuchen
  • Letzte Aktivität — die neuesten Telemetrieereignisse in einer durchsuchbaren Tabelle

Sitzungsuntersuchung

Klicken Sie auf eine Sitzungs-ID (oder navigieren Sie zu /session/<session_id>), um die Sitzungsuntersuchungsansicht zu öffnen, die einen einzelnen Angriff chronologisch rekonstruiert:

  • Sitzungszusammenfassung — Quell-IP, Benutzername, Start-/Endzeiten, Dauer, Authentifizierungsergebnis, Trennungsgrund
  • Angriffszeitleiste — jedes Ereignis (Verbindung, Authentifizierungsversuche, Befehle, Trennung) in chronologischer Reihenfolge
  • Befehlssequenz — eine kompakte $ command-Ansicht von allem, was der Angreifer getippt hat, mit Arbeitsverzeichnissen

Beispiel-Workflow

# Terminal 1: Honeypot starten
python3 run.py serve --port 2222 --username user1 --password pass123

# Terminal 2: Dashboard starten
python3 run.py dashboard

# Terminal 3: Angreifer simulieren
ssh user1@localhost -p 2222
# (einige Befehle ausführen, dann beenden)

Öffnen Sie dann http://localhost:5000, um die erfasste Aktivität zu untersuchen.

Das Dashboard unterstützt Live-Telemetrie — es fragt die Honeypot alle 2 Sekunden ab und aktualisiert automatisch. Neue Sitzungen, Befehle und Ereignisse erscheinen in Echtzeit, ohne die Seite neu zu laden. Ein Live-Indikator (● Live) zeigt den Verbindungsstatus an.


🔐 Testen von einem anderen Terminal

Öffnen Sie ein zweites Terminal und versuchen Sie, sich zu verbinden:

ssh user1@localhost -p 2222

Wenn die Anmeldedaten übereinstimmen, werden Sie in die emulierte Shell geleitet.


🚑 Optional: Bekannte Hosts löschen (Bei erneuter Verbindung)

Um veraltete SSH-Fingerabdrücke zu entfernen:

notepad "%USERPROFILE%\.ssh\known_hosts"

Löschen Sie die relevante Zeile, die localhost oder die IP der Honeypot enthält.


📝 Protokollierte Informationen

  • Anmeldedaten werden an creds_logger protokolliert
  • Shell-Befehle werden über funnel_logger protokolliert
  • Strukturierte Sicherheitsereignisse werden als JSON Lines (JSONL) in log_files/events.jsonl geschrieben — ein gültiges JSON-Objekt pro Zeile

Jedes JSONL-Ereignis enthält einen UTC-ISO-8601-timestamp, einen event_type, eine eindeutige session_id und die source_ip. Verbindung, Authentifizierungsversuche/-ergebnisse, Befehlsausführung, Tarpit-Aktivierung und Trennungen werden alle als strukturierte Ereignisse aufgezeichnet.

Tool herunterladen