Zurück zu den Updates
New releaseAug 31, 2026

cowrie v3.0.12

Cowrie SSH/Telnet Honeypot https://docs.cowrie.org/

Teilen

.. SPDX-FileCopyrightText: 2014 Upi Tamminen [email protected] .. SPDX-FileCopyrightText: 2014-2025 Michel Oosterhof [email protected] .. .. SPDX-License-Identifier: BSD-3-Clause

Cowrie

Was ist Cowrie


Cowrie ist ein SSH- und Telnet-Honeypot mittlerer bis hoher Interaktion, der dazu entwickelt wurde, Brute-Force-Angriffe und die Shell-Interaktion des Angreifers zu protokollieren. Im Modus mittlerer Interaktion (Shell) emuliert er ein UNIX-System in Python, im Modus hoher Interaktion (Proxy) fungiert er als SSH- und Telnet-Proxy, um das Verhalten des Angreifers auf einem anderen System zu beobachten. Im LLM-Modus verwendet er große Sprachmodelle, um dynamische Antworten auf Angreiferbefehle zu generieren.

Cowrie <http://github.com/cowrie/cowrie/>_ wird von Michel Oosterhof gepflegt.

Dokumentation


Die Dokumentation finden Sie hier <https://docs.cowrie.org/en/latest/index.html>_.

Slack


Sie können der Cowrie-Community im folgenden Slack-Workspace <https://www.cowrie.org/slack/>_ beitreten.

Funktionen


  • Wahlweise als emulierte Shell ausführen (Standard):

    • Fake-Dateisystem mit der Möglichkeit, Dateien hinzuzufügen/zu entfernen. Ein vollständiges Fake-Dateisystem, das einer Debian-5.0-Installation ähnelt, ist enthalten
    • Möglichkeit, Fake-Dateiinhalte hinzuzufügen, sodass der Angreifer Dateien wie /etc/passwd mit cat anzeigen kann. Es sind nur minimale Dateiinhalte enthalten
    • Cowrie speichert Dateien, die mit wget/curl heruntergeladen oder per SFTP und scp hochgeladen wurden, zur späteren Untersuchung
  • Oder SSH und Telnet auf ein anderes System proxen

    • Als reiner Telnet- und SSH-Proxy mit Überwachung ausführen
    • Oder Cowrie einen Pool von QEMU-emulierten Servern verwalten lassen, um die Systeme für die Anmeldung bereitzustellen
  • Oder ein LLM-Backend verwenden (experimentell):

    • Große Sprachmodelle (z. B. OpenAI GPT) verwenden, um dynamisch realistische Shell-Antworten zu generieren
    • Behandelt jeden Befehl ohne vordefinierte Antworten
    • Behält den Gesprächskontext für konsistente Sitzungen bei

Für beide Einstellungen:

  • Sitzungsprotokolle werden in einem User Mode Linux <http://user-mode-linux.sourceforge.net/>_ kompatiblen Format gespeichert, das sich mit dem Dienstprogramm playlog einfach wiedergeben lässt.
  • SFTP- und SCP-Unterstützung für Datei-Uploads
  • Unterstützung für SSH-Exec-Befehle
  • Protokollierung von Direct-TCP-Verbindungsversuchen (SSH-Proxying)
  • SMTP-Verbindungen an einen SMTP-Honeypot weiterleiten (z. B. mailoney <https://github.com/awhitehatter/mailoney>_)
  • JSON-Protokollierung für die einfache Verarbeitung in Log-Management-Lösungen

Installation


Es gibt drei Möglichkeiten, Cowrie zu installieren: pip, Docker und ein git-Checkout. Für Ihren ersten Honeypot sind pip und Docker die einfachsten Wege. Verwenden Sie ein git-Checkout für die Entwicklung oder fortgeschrittene Szenarien, in denen Sie Cowrie selbst modifizieren möchten. Vollständige Anweisungen für alle drei finden Sie in der Installationsanleitung <https://docs.cowrie.org/en/latest/INSTALL.html>_.

Docker


Docker-Images <https://hub.docker.com/repository/docker/cowrie/cowrie>_ sind auf Docker Hub verfügbar.

  • Für einen schnellen Start und um Cowrie auszuprobieren, führen Sie Folgendes aus::

    $ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost

  • Um es nur lokal zu erstellen, führen Sie Folgendes aus::

    $ make docker-build

PyPI


Cowrie ist auf PyPI verfügbar <https://pypi.org/project/cowrie>_. Um es in einer virtuellen Umgebung zu installieren und zu starten::

$ mkdir my-honeypot && cd my-honeypot
$ python3 -m venv cowrie-env
$ source cowrie-env/bin/activate
(cowrie-env) $ pip install cowrie
(cowrie-env) $ cowrie init
(cowrie-env) $ cowrie start

cowrie init schreibt die Konfigurationsdatei etc/cowrie.cfg in das aktuelle Verzeichnis; Protokolle und Downloads landen unter var/.

Anforderungen


Software, die für den lokalen Betrieb erforderlich ist:

  • Python 3.10+
  • python-virtualenv

Interessante Dateien:


  • etc/cowrie.cfg - Cowries Konfigurationsdatei (vom Betreiber verwaltet). Wird von cowrie init erstellt.
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - gebündelte Standardwerte, bearbeiten Sie stattdessen Ihre etc/cowrie.cfg
  • etc/userdb.txt - Anmeldeinformationen für den Zugriff auf den Honeypot
  • src/cowrie/data/fs.pickle - Fake-Dateisystem; enthält sowohl Metadaten (Pfad, uid, gid, Größe, Modus) als auch die eingebetteten Inhalte (A_CONTENTS-Bytes) für die kleinen Dateien, die Angreifer häufig mit cat anzeigen. Bearbeiten über fsctl; neu erstellen über make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - Ausgabe für einfache Fake-Befehle
  • var/log/cowrie/cowrie.json - Audit-Ausgabe im JSON-Format
  • var/log/cowrie/cowrie.log - Protokoll-/Debug-Ausgabe
  • var/lib/cowrie/tty/ - Sitzungsprotokolle, wiedergebbar mit dem Dienstprogramm playlog.
  • var/lib/cowrie/downloads/ - Dateien, die vom Angreifer auf den Honeypot übertragen wurden, werden hier gespeichert

Befehle


  • cowrie - Cowrie starten, stoppen und neu starten
  • fsctl - das Fake-Dateisystem modifizieren
  • createfs - ein eigenes Fake-Dateisystem erstellen
  • playlog - Dienstprogramm zum Wiedergeben von Sitzungsprotokollen
  • asciinema - Cowrie-Protokolle in asciinema-Dateien umwandeln

Mitwirkende


Viele Menschen haben im Laufe der Jahre zu Cowrie beigetragen. Besonderer Dank gilt:

  • Upi Tamminen (desaster) für seine gesamte Arbeit an der Entwicklung von Kippo, auf dem Cowrie basiert
  • Dave Germiquet (davegermiquet) für TFTP-Unterstützung, Unit-Tests, neue Prozessverwaltung
  • Olivier Bilodeau (obilodeau) für Telnet-Unterstützung
  • Ivan Korolev (fe7ch) für viele Verbesserungen im Laufe der Jahre.
  • Florian Pelgrim (craneworks) für seine Arbeit an Code-Bereinigung und Docker.
  • Guilherme Borges (sgtpepperpt) für SSH- und Telnet-Proxy (GSoC 2019)
  • Und viele, viele andere.

Kategorien