Torna agli aggiornamenti
New releaseOct 2, 2026

cowrie v3.1.0

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 media e alta, progettato per registrare attacchi di forza bruta e l'interazione con la shell effettuata 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 è disponibile qui <https://docs.cowrie.org/en/latest/index.html>_.

Slack


Puoi unirti alla comunità di Cowrie sul seguente workspace Slack <https://www.cowrie.org/slack/>_.

Funzionalità


  • Scegli di eseguirlo come shell emulata (predefinito):

    • Filesystem fittizio con la possibilità di aggiungere/rimuovere file. È incluso un filesystem fittizio completo che riproduce un'installazione Debian 5.0
    • Possibilità di aggiungere contenuti fittizi ai file, così l'attaccante può 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 proxy SSH e telnet verso un altro sistema

    • Eseguilo come puro proxy telnet e ssh con monitoraggio
    • Oppure lascia che Cowrie gestisca un pool di server emulati QEMU per fornire i sistemi su cui effettuare il login
  • Oppure usa un backend LLM (sperimentale):

    • Usa modelli linguistici di grandi dimensioni (ad 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 memorizzati 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 dei file
  • Supporto per i comandi exec SSH
  • Registrazione dei tentativi di connessione direct-tcp (ssh proxying)
  • Inoltro delle connessioni SMTP a SMTP Honeypot (ad es. mailoney <https://github.com/awhitehatter/mailoney>_)
  • Logging 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 le strade più semplici. Usa un checkout git per lo sviluppo o scenari avanzati in cui vuoi modificare Cowrie stesso. Le istruzioni complete per tutti e tre sono nella guida all'installazione <https://docs.cowrie.org/en/latest/INSTALL.html>_.

Docker


Le immagini Docker <https://hub.docker.com/r/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; i log e i download finiscono sotto var/.

Requisiti


Software necessario per l'esecuzione locale:

  • Python 3.11+
  • python-virtualenv

File di interesse:


  • etc/cowrie.cfg - 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>_ - valori predefiniti inclusi, 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 (path, uid, gid, size, mode) sia i contenuti incorporati (A_CONTENTS bytes) per i piccoli file che gli attaccanti tipicamente visualizzano con cat. Modifica tramite fsctl; ricostruisci tramite make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - output per 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 sono memorizzati 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 - trasforma 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 si basa Cowrie
  • Dave Germiquet (davegermiquet) per il supporto TFTP, gli unit test, la nuova gestione dei processi
  • Olivier Bilodeau (obilodeau) per il supporto Telnet
  • Ivan Korolev (fe7ch) per i molti 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