Torna agli aggiornamenti
New releaseAug 31, 2026

cowrie v3.0.12

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

Condividi

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

Cowrie

Cos'è Cowrie


Cowrie è un honeypot SSH e Telnet a interazione medio-alta progettato per registrare gli attacchi di forza bruta e l'interazione con la shell eseguita dall'attaccante. In modalità a interazione media (shell) emula un sistema UNIX in Python, in modalità a interazione alta (proxy) funziona come proxy SSH e Telnet per osservare il comportamento dell'attaccante su un altro sistema. In modalità LLM, utilizza modelli linguistici di grandi dimensioni per generare risposte dinamiche ai comandi dell'attaccante.

Cowrie <http://github.com/cowrie/cowrie/>_ è mantenuto da Michel Oosterhof.

Documentazione


La documentazione può essere trovata qui <https://docs.cowrie.org/en/latest/index.html>_.

Slack


Puoi unirti alla community di Cowrie nel seguente workspace Slack <https://www.cowrie.org/slack/>_.

Funzionalità


  • Scegli di eseguirlo come shell emulata (predefinita):

    • Filesystem fittizio con la possibilità di aggiungere/rimuovere file. È incluso un filesystem fittizio completo che replica un'installazione Debian 5.0
    • Possibilità di aggiungere contenuti fittizi ai file così che l'attaccante possa fare cat di file come /etc/passwd. Sono inclusi solo contenuti minimi dei file
    • Cowrie salva i file scaricati con wget/curl o caricati con SFTP e scp per un'ispezione successiva
  • Oppure fai da proxy SSH e Telnet verso un altro sistema

    • Esegui come puro proxy Telnet e SSH con monitoraggio
    • Oppure lascia che Cowrie gestisca un pool di server emulati con QEMU per fornire i sistemi a cui accedere
  • Oppure usa un backend LLM (sperimentale):

    • Usa modelli linguistici di grandi dimensioni (es. OpenAI GPT) per generare dinamicamente risposte realistiche della shell
    • Gestisce qualsiasi comando senza risposte predefinite
    • Mantiene il contesto della conversazione per sessioni coerenti

Per entrambe le configurazioni:

  • I log delle sessioni sono salvati in un formato compatibile con User Mode Linux <http://user-mode-linux.sourceforge.net/>_ per una facile riproduzione con l'utility playlog.
  • Supporto SFTP e SCP per il caricamento di file
  • Supporto per i comandi SSH exec
  • Registrazione dei tentativi di connessione direct-tcp (proxy SSH)
  • Inoltro delle connessioni SMTP verso un honeypot SMTP (es. mailoney <https://github.com/awhitehatter/mailoney>_)
  • Registrazione in JSON per una facile elaborazione nelle soluzioni di gestione dei log

Installazione


Ci sono tre modi per installare Cowrie: pip, Docker e un checkout git. Per il tuo primo honeypot, pip e Docker sono i percorsi più semplici. Usa un checkout git per lo sviluppo o per scenari avanzati in cui vuoi modificare Cowrie stesso. Le istruzioni complete per tutti e tre i metodi sono in la guida all'installazione <https://docs.cowrie.org/en/latest/INSTALL.html>_.

Docker


Le immagini Docker <https://hub.docker.com/repository/docker/cowrie/cowrie>_ sono disponibili su Docker Hub.

  • Per iniziare rapidamente e provare Cowrie, esegui::

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

  • Per crearla solo localmente, esegui::

    $ make docker-build

PyPI


Cowrie è disponibile su PyPI <https://pypi.org/project/cowrie>_. Per installarlo in un ambiente virtuale e avviarlo::

$ 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 scrive il file di configurazione etc/cowrie.cfg nella directory corrente; log e download finiscono in var/.

Requisiti


Software necessario per l'esecuzione locale:

  • Python 3.10+
  • python-virtualenv

File di interesse:


  • etc/cowrie.cfg - il file di configurazione di Cowrie (di proprietà dell'operatore). Creato da cowrie init.
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - impostazioni predefinite incluse, modifica invece il tuo etc/cowrie.cfg
  • etc/userdb.txt - credenziali per accedere all'honeypot
  • src/cowrie/data/fs.pickle - filesystem fittizio; contiene sia i metadati (percorso, uid, gid, dimensione, modalità) sia i contenuti incorporati (byte A_CONTENTS) per i piccoli file che gli attaccanti spesso leggono con cat. Modificabile tramite fsctl; ricostruibile tramite make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - output per i semplici comandi fittizi
  • var/log/cowrie/cowrie.json - output di audit in formato JSON
  • var/log/cowrie/cowrie.log - output di log/debug
  • var/lib/cowrie/tty/ - log delle sessioni, riproducibili con l'utility playlog.
  • var/lib/cowrie/downloads/ - i file trasferiti dall'attaccante all'honeypot vengono salvati qui

Comandi


  • cowrie - avvia, ferma e riavvia Cowrie
  • fsctl - modifica il filesystem fittizio
  • createfs - crea il tuo filesystem fittizio
  • playlog - utility per riprodurre i log delle sessioni
  • asciinema - converte i log di Cowrie in file asciinema

Contributori


Molte persone hanno contribuito a Cowrie nel corso degli anni. Un ringraziamento speciale a:

  • Upi Tamminen (desaster) per tutto il suo lavoro nello sviluppo di Kippo su cui Cowrie si basa
  • Dave Germiquet (davegermiquet) per il supporto TFTP, i test unitari e la nuova gestione dei processi
  • Olivier Bilodeau (obilodeau) per il supporto Telnet
  • Ivan Korolev (fe7ch) per i numerosi miglioramenti nel corso degli anni.
  • Florian Pelgrim (craneworks) per il suo lavoro sulla pulizia del codice e su Docker.
  • Guilherme Borges (sgtpepperpt) per il proxy SSH e Telnet (GSoC 2019)
  • E molti, molti altri.

Categorie