Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
DECEIVE — DECeption mit integrierter Evaluierungs- und Validierungs-Engine (DECEIVE): Lass ein LLM die gesamte harte Honeypot-Arbeit erledigen! | Kitploit
Tools/GitHubGitHub/cisco-talos/deceive
DefensivwerkzeugeNetzwerksicherheitBedrohungsanalyseEinbruchserkennungKI-SicherheitLog-Analyse
GitHubcisco-talos/deceive

DECEIVE

DECeption mit integrierter Evaluierungs- und Validierungs-Engine (DECEIVE): Lass ein LLM die gesamte harte Honeypot-Arbeit erledigen!

Repository anzeigen
288416vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

DECEIVE

Ein Cyberkrimineller interagiert mit einem geisterhaften, KI-gesteuerten Honeypot-System

DECEIVE, die DECeption with Evaluative Integrated Validation Engine, ist ein High-Interaction-Honeypot-System mit geringem Aufwand. Im Gegensatz zu den meisten High-Interaction-Honeypots gewährt DECEIVE Angreifern keinen Zugriff auf ein tatsächliches System. Die KI übernimmt tatsächlich die gesamte Arbeit der Simulation eines realistischen Honeypot-Systems, basierend auf einem konfigurierbaren System-Prompt, der beschreibt, welche Art von System Sie simulieren möchten. Anders als viele andere High-Interaction-Honeypots, die erheblichen Aufwand erfordern, um sie mit realistischen Benutzern, Daten und Anwendungen zu bestücken, übernimmt DECEIVEs KI-Backend all dies automatisch für Sie.

Diese Version von DECEIVE simuliert einen Linux-Server über das SSH-Protokoll. Sie protokolliert alle Benutzereingaben, die vom LLM-Backend zurückgegebenen Ausgaben sowie eine Zusammenfassung jeder Sitzung nach deren Ende. Sie teilt Ihnen sogar mit, ob sie eine Benutzersitzung als gutartig, verdächtig oder eindeutig bösartig einstuft.

⛔️⛔️ DECEIVE ist ein Proof-of-Concept-Projekt. Es ist nicht produktionsreif. Probieren Sie es aus, lernen Sie daraus, aber seien Sie vorsichtig, wenn Sie es in einer Produktionsumgebung einsetzen. ⛔️⛔️

Unterstützte Host-Plattformen

DECEIVE wird hauptsächlich unter MacOS 15 (Sequoia) entwickelt, sollte aber auf jedem UNIX-ähnlichen System funktionieren, auf dem Python3 läuft. Dazu gehören andere Versionen von MacOS, Linux und sogar Windows (über das Windows-Subsystem für Linux).

Einrichtung

Den neuesten Code von GitHub abrufen

Sie können die neueste Version mit dem folgenden Befehl abrufen:

root@kitploit:~
git clone https://github.com/splunk/DECEIVE

Die restlichen Anweisungen setzen voraus, dass Sie nach Abschluss des Klonens Ihr aktuelles Verzeichnis in das Repository gewechselt haben.

Abhängigkeiten installieren

DECEIVE verwendet uv für die Verwaltung von Python-Abhängigkeiten und virtuellen Umgebungen. Wenn Sie uv noch nicht installiert haben, installieren Sie es mit dem eigenständigen Installationsprogramm von Astral:

root@kitploit:~
curl -LsSf https://astral.sh/uv/install.sh | sh

Synchronisieren Sie anschließend die Projektumgebung vom Repository-Root aus:

root@kitploit:~
uv sync

Die Dateien pyproject.toml und uv.lock sind die maßgebliche Quelle für Abhängigkeiten. Dieses Projekt pflegt bewusst keinen requirements.txt-Fallback.

SSH-Hostschlüssel erzeugen

Der SSH-Server benötigt ein TLS-Schlüsselpaar für die sichere Kommunikation. Erzeugen Sie vom obersten Verzeichnis des Repos aus mit dem folgenden Befehl ein SSH-Schlüsselpaar:

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f SSH/ssh_host_key

Die Vorlagen-Konfigurationsdatei kopieren

Kopieren Sie die Datei SSH/config.ini.TEMPLATE nach SSH/config.ini:

Die Konfigurationsdatei bearbeiten

Öffnen Sie die Datei SSH/config.ini und prüfen Sie die Einstellungen. Aktualisieren Sie die Werte nach Bedarf, mit besonderer Aufmerksamkeit auf die Werte im Abschnitt [llm], in dem Sie das gewünschte LLM-Backend konfigurieren, sowie im Abschnitt [user_accounts], in dem Sie die Benutzernamen und Passwörter konfigurieren können, die das Honeypot unterstützen soll.

DECEIVE mitteilen, was es emuliert

Bearbeiten Sie die Datei SSH/prompt.txt, um eine kurze Beschreibung der Art von System aufzunehmen, das es vortäuschen soll. Sie müssen hier nicht sehr detailliert sein, auch wenn die Simulation umso besser wird, je mehr Details Sie angeben können. Sie können es allgemein halten, zum Beispiel:

root@kitploit:~
You are a video game developer's system. Include realistic video game source and asset files.

Wenn Sie möchten, können Sie alle weiteren Details hinzufügen, die Sie für hilfreich halten. Zum Beispiel:

root@kitploit:~
You are the Internet-facing mail server for bigschool.edu, a state-sponsored university in Virginia. Valid user accounts are "a20093887", "a20093887-admin", and "mxadmin". Home directories are in "/home/$USERNAME".  Everyone's default shell is /bin/zsh, except mxadmin's, which is bash. Mail spools for all campus users (be sure to include email accounts that are not valid for logon to this server) are in /var/spool/mail. Be sure to simulate some juicy emails there, but make them realistic.  Some should be personal, but some should be just about the business of administering the school, dealing with students, applying for financial aid, etc. Make the spool permissions relaxed, simulating a misconfiguration that would allow anyone on the system to read the files.

Den Honeypot ausführen

Um den DECEIVE-Honeypot-Server zu starten, stellen Sie zunächst sicher, dass Sie alle Umgebungsvariablen gesetzt haben, die Ihr gewähltes LLM-Backend benötigt. Wenn Sie beispielsweise eines der OpenAI-Modelle verwenden, müssen Sie die Variable OPENAI_API_KEY wie folgt setzen:

root@kitploit:~
export OPENAI_API_KEY="<your secret API key>"

Führen Sie als Nächstes den SSH-Honeypot vom Repository-Root aus:

root@kitploit:~
uv run python SSH/ssh_server.py

Sie können auch in das Verzeichnis SSH wechseln und Folgendes ausführen:

root@kitploit:~
uv run python ssh_server.py

Der Server startet und lauscht auf dem konfigurierten Port auf eingehende SSH-Verbindungen. Er erzeugt keine Ausgabe, bleibt aber im Vordergrund aktiv.

Ausprobieren

Sobald der Server läuft (dies kann einige Sekunden dauern), greifen Sie über den konfigurierten Port darauf zu. Wenn Sie ein Linux- oder UNIX-ähnliches System verwenden, versuchen Sie den folgenden Befehl (ersetzen Sie „localhost" und „8022" je nach Ihrer Konfiguration):

root@kitploit:~
ssh guest@localhost -p 8022

Automatisierte Tests ausführen

Führen Sie nach uv sync alle Tests vom Repository-Root aus:

root@kitploit:~
uv run pytest

Um nur die SSH-Integrationstests auszuführen:

root@kitploit:~
uv run pytest tests/test_ssh_integration.py

Die Integrationstests starten den echten SSH-Server auf einem lokalen zufälligen Port, verbinden sich mit einem SSH-Client und verwenden ein deterministisches Fake-LLM-Backend, sodass die Assertions nicht von Live-Modellausgaben abhängen.

Protokollierung

Protokolle werden in die Datei geschrieben, die in der Konfigurationsoption log_file angegeben ist. Relative log_file-Pfade werden relativ zum Verzeichnis aufgelöst, das die geladene Konfigurationsdatei enthält. Der Standardwert der Vorlage schreibt daher nach SSH/ssh_log.log.

DECEIVE-Protokolle liegen im JSON-Lines-Format vor, wobei jede Zeile ein vollständiges JSON-Dokument ist.

Im Folgenden finden Sie ein vollständiges Beispiel einer einfachen SSH-Sitzung, in der der Benutzer zwei einfache Befehle (pwd und exit) ausgeführt hat:

root@kitploit:~
{"timestamp": "2025-01-10T20:37:55.018+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "SSH connection received", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 59, "funcName": "connection_made", "created": 1736541475.0183098, "msecs": 18.0, "relativeCreated": 13872.790813446045, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": null}
{"timestamp": "2025-01-10T20:37:55.177+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "Authentication success", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 75, "funcName": "begin_auth", "created": 1736541475.1775439, "msecs": 177.0, "relativeCreated": 14032.02486038208, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "username": "guest", "password": ""}
{"timestamp": "2025-01-10T20:37:57.456+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "LLM response", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 174, "funcName": "handle_client", "created": 1736541477.4568708, "msecs": 456.0, "relativeCreated": 16311.351776123047, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "details": "V2VsY29tZSB0byBHYW1lRGV2IENvcnAncyBEZXZlbG9wbWVudCBFbnZpcm9ubWVudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBXZWxjb21lLCBndWVzdCEgCiAgIExhc3QgbG9naW46IFR1ZSBPY3QgMjQgMTQ6MzI6MTUgMjAyMyBmcm9tIDE5Mi4xNjguMS4xMAogICBQcm9qZWN0czoKICAgICAtIEZhbnRhc3lRdWVzdAogICAgIC0gU3BhY2VFeHBsb3JlcnMKICAgICAtIFJhY2luZ01hbmlhCiAgIFN5c3RlbSBTdGF0dXM6IEFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsCiAgIFJlbWVtYmVyIHRvIGNvbW1pdCB5b3VyIGNoYW5nZXMhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmd1ZXN0QGRldi13b3Jrc3RhdGlvbjp+JCA="}
{"timestamp": "2025-01-10T20:37:59.333+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "User input", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 184, "funcName": "handle_client", "created": 1736541479.3334038, "msecs": 333.0, "relativeCreated": 18187.88480758667, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "details": "cHdk"}
{"timestamp": "2025-01-10T20:38:00.189+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "LLM response", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 200, "funcName": "handle_client", "created": 1736541480.189375, "msecs": 189.0, "relativeCreated": 19043.855905532837, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "details": "L2hvbWUvZ3Vlc3QKCmd1ZXN0QGRldi13b3Jrc3RhdGlvbjp+JCA="}
{"timestamp": "2025-01-10T20:38:01.944+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "User input", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 184, "funcName": "handle_client", "created": 1736541481.944072, "msecs": 944.0, "relativeCreated": 20798.552989959717, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "details": "ZXhpdA=="}
{"timestamp": "2025-01-10T20:38:04.132+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "Session summary", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 151, "funcName": "session_summary", "created": 1736541484.1324642, "msecs": 132.0, "relativeCreated": 22986.945152282715, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": "session-6355218b-59e5-4549-add3-49e6d1efc133", "details": "The user issued basic commands like `pwd` to check the current working directory and `exit` to terminate the session. This activity is typical of a benign user checking their environment upon logging in and then closing the session. There is no indication of reconnaissance, exploitation, or any post-foothold activity such as privilege escalation or data exfiltration. The actions appear to be standard and routine.\n\nJudgement: BENIGN", "judgement": "BENIGN"}
{"timestamp": "2025-01-10T20:38:04.139+00:00", "level": "INFO", "task_name": "session-6355218b-59e5-4549-add3-49e6d1efc133", "src_ip": "::1", "src_port": 58164, "dst_ip": "::1", "dst_port": 8022, "message": "SSH connection closed", "name": "__main__", "levelname": "INFO", "levelno": 20, "pathname": "/home/deceive/DECEIVE/SSH/./ssh_server.py", "filename": "ssh_server.py", "module": "ssh_server", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 65, "funcName": "connection_lost", "created": 1736541484.139776, "msecs": 139.0, "relativeCreated": 22994.2569732666, "thread": 8145041472, "threadName": "MainThread", "processName": "MainProcess", "process": 10823, "taskName": null}

Zu beachten:

  • Zeitstempel sind immer in UTC. UTC||GTFO!
  • Das Feld task_name enthält einen eindeutigen Wert, der beim Empfang der SSH-Verbindung vergeben und für alle Protokolleinträge dieser Sitzung verwendet wird.
  • Das Feld „message" verrät Ihnen, um welche Art von Eintrag es sich handelt:
    • SSH connection received
    • Authentication success
    • User input
    • LLM response
    • Session summary
    • SSH connection closed
  • Mehrere dieser Nachrichtentypen enthalten außerdem ein details-Feld mit zusätzlichen Informationen
    • User input-Nachrichten enthalten im details-Feld eine base64-kodierte Kopie der gesamten Benutzereingabe sowie ein interactive-Feld (true/false), das angibt, ob es sich um einen interaktiven oder nicht interaktiven Befehl handelte (d. h., ob sich der Benutzer mit einer Terminal-Sitzung angemeldet oder einen Befehl über die SSH-Kommandozeile übergeben hat).

Mitwirken

Beiträge sind willkommen! Bitte reichen Sie Pull Requests ein oder eröffnen Sie Issues, um Änderungen oder Verbesserungen zu besprechen.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Details finden Sie in der Datei LICENSE.

Tool herunterladen
  • LLM response-Nachrichten enthalten im details-Feld eine base64-kodierte Kopie der gesamten simulierten Antwort.
  • Session summary-Nachrichten enthalten nicht nur eine Zusammenfassung der Befehle, sondern auch eine Einschätzung, was mit ihnen möglicherweise bezweckt wurde. Außerdem gibt es ein judgement-Feld, das einen der Werte „BENIGN", „SUSPICIOUS" oder „MALICIOUS" enthält.
  • Da es sich um ein Honeypot handelt, das nicht für echte Benutzer gedacht ist, WERDEN BENUTZERNAMEN UND PASSWÖRTER PROTOKOLLIERT! Diese finden Sie in den Authentication success-Nachrichten in den Feldern username und password.