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.

FeedsKontaktDatenschutz© 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
378vor 2 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 — Leichtgewichtiger SSH-Honeypot

License: MIT Python Last Commit Repo Size

SSHintel ist ein leichtgewichtiger SSH-Honeypot, der mit Python und Paramiko erstellt wurde. Er 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 In-Memory-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 durch verzögerte Ausgabe auszubremsen
  • Pro Sitzung isoliertes gefälschtes Dateisystem mit Unterstützung für Dateierstellung und -lesen
  • Lokales Web-Dashboard zur Visualisierung der erfassten Sicherheitstelemetrie (Sitzungen, Befehle, Authentifizierungsversuche, Top-Angreifer)
  • Sitzungs-Untersuchungsansicht — 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 stellen keine Netzwerkanfragen.

SSHintel ist keine vollständige Bash/Linux-Shell. Es simuliert eine glaubwürdige Teilmenge gängiger Befehle, um Angreifer-Telemetrie zu sammeln. Befehle werden über eine leichtgewichtige Registry 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. Es ist keine manuelle Schlüsselerzeugung erforderlich.


🚀 Den Honeypot ausführen

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

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

Der Standardport ist 2222 und der Host ist 0.0.0.0.

Der Honeypot generiert automatisch beim ersten Start einen SSH-Hostschlüssel unter static/server.key, falls noch keiner existiert. Es ist keine manuelle Schlüsselgenerierung 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

Konfigurationsdateien und Umgebungsvariablen

Sensor-Einstellungen verwenden CLI > Umgebung > Konfigurationsdatei > Standardwerte. Nur explizit angegebene CLI-Flags überschreiben andere Quellen. Dies gilt für serve; Dashboard-/Abfragebefehle behalten ihre eigenen CLI-Einstellungen.

Unter Python 3.11+:

cp sshintel.toml.example sshintel.toml
chmod 600 sshintel.toml
python3 run.py serve

Unter Python 3.8/3.10 verwenden Sie das abhängigkeitsfreie JSON-Äquivalent:

cp sshintel.json.example sshintel.json
chmod 600 sshintel.json
python3 run.py serve

Bearbeiten Sie die kopierte Datei vor der Bereitstellung. TOML erfordert Python 3.11+; ältere Versionen schlagen mit einer klaren Anweisung fehl, JSON zu verwenden. Ohne explizite Datei sucht SSHintel im aktuellen Verzeichnis nach sshintel.toml, dann nach sshintel.json. Verwenden Sie serve --config /path/to/settings.json oder HONEYPOT_CONFIG, um eine andere Datei auszuwählen (--config hat Vorrang). Explizit fehlende Dateien, fehlerhafte Dateien, unbekannte Schlüssel und ungültige Werte führen zum Abbruch, bevor der Server oder die Datenbank startet. Dateipfade innerhalb der Konfiguration sind relativ zum Arbeitsverzeichnis des Prozesses, nicht zur Konfigurationsdatei.

DateischlüsselUmgebungsvariableStandardwert
hostHONEYPOT_HOST0.0.0.0
portHONEYPOT_PORT (Legacy-Alias: PORT)2222
usernameHONEYPOT_USERNAMEuser1
passwordHONEYPOT_PASSWORDpass123
tarpitHONEYPOT_TARPITfalse
tarpit_max_secondsHONEYPOT_TARPIT_MAX_SECONDS120
max_connectionsHONEYPOT_MAX_CONNECTIONS50
auth_timeoutHONEYPOT_AUTH_TIMEOUT60
session_idle_timeoutHONEYPOT_SESSION_IDLE_TIMEOUT300
sensor_idHONEYPOT_SENSOR_IDnicht gesetzt
db_pathHONEYPOT_DB_PATHdata/sshintel.db
no_dbHONEYPOT_NO_DBfalse
fetch_payloadsHONEYPOT_FETCH_PAYLOADSfalse (reserviert)

Umgebungs-Booleans akzeptieren true/false, 1/0, yes/no und on/off. HONEYPOT_PORT hat Vorrang vor PORT. Ports müssen 1–65535 sein und Limits sowie Timeouts müssen positive Ganzzahlen sein. Verwenden Sie --no-tarpit, --db-enabled oder --no-fetch-payloads, um eine True-Einstellung mit niedrigerer Priorität zu überschreiben. Datenbankpfade verwenden das bestehende --db-CLI-Flag. Das Abrufen von Payloads ist nicht implementiert: Das Aktivieren von fetch_payloads wird abgelehnt, statt stillschweigend ignoriert zu werden.

Lokale sshintel.toml/sshintel.json-Dateien werden von Git ignoriert und von Docker- Builds ausgeschlossen, da sie Anmeldedaten enthalten können. Binden Sie eine Konfigurationsdatei stattdessen schreibgeschützt in einen Container ein. Docker verwendet Umgebungsvariablen direkt (ohne Shell-Interpolation von Anmeldedaten); die vorhandenen ENV-Standardwerte haben Vorrang vor einer eingebundenen Datei. Überschreiben Sie diese Variablen nach Bedarf oder verwenden Sie explizite CLI-Flags.

🛡️ Verbindungslimits & Timeouts

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

FlagStandardwertZweck
--max-connections50Maximale Anzahl gleichzeitig aktiver Verbindungen; zusätzliche Verbindungen werden abgelehnt und als connection_rejected-Ereignis protokolliert
--auth-timeout60 (s)Zeit, die zum Abschluss des SSH-Handshakes/der Authentifizierung erlaubt ist; hängende 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 getötet

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 geöffnet sind, wird die zusätzliche Verbindung sofort geschlossen und ein Sicherheitsereignis connection_rejected (mit reason: connection_limit) in das JSONL-Protokoll geschrieben. Eine stockende Authentifizierung wird als Trennung mit reason: auth_timeout aufgezeichnet; eine inaktive Shell endet mit reason: idle_timeout.

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


📊 Dashboard

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

Dashboard starten

python3 run.py dashboard

Öffne anschließend http://localhost:5000 in deinem Browser.

Tool herunterladen