Volver a actualizaciones
Nuevo releaseAug 31, 2026

cowrie v3.0.12

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

Compartir

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

Cowrie

Qué es Cowrie


Cowrie es un honeypot SSH y Telnet de interacción media a alta diseñado para registrar ataques de fuerza bruta y la interacción con el shell realizada por el atacante. En el modo de interacción media (shell) emula un sistema UNIX en Python; en el modo de interacción alta (proxy) funciona como un proxy SSH y Telnet para observar el comportamiento del atacante en otro sistema. En el modo LLM, utiliza modelos de lenguaje grandes para generar respuestas dinámicas a los comandos del atacante.

Cowrie <http://github.com/cowrie/cowrie/>_ es mantenido por Michel Oosterhof.

Documentación


La documentación se puede encontrar aquí <https://docs.cowrie.org/en/latest/index.html>_.

Slack


Puedes unirte a la comunidad de Cowrie en el siguiente espacio de trabajo de Slack <https://www.cowrie.org/slack/>_.

Características


  • Elige ejecutarlo como un shell emulado (por defecto):

    • Sistema de archivos falso con la capacidad de añadir/eliminar archivos. Se incluye un sistema de archivos falso completo que se asemeja a una instalación de Debian 5.0
    • Posibilidad de añadir contenidos de archivos falsos para que el atacante pueda hacer cat de archivos como /etc/passwd. Solo se incluyen contenidos mínimos de archivos
    • Cowrie guarda los archivos descargados con wget/curl o subidos con SFTP y scp para su posterior inspección
  • O hacer proxy de SSH y Telnet a otro sistema

    • Ejecutar como un proxy puro de Telnet y SSH con monitorización
    • O dejar que Cowrie gestione un grupo de servidores emulados con QEMU para proporcionar los sistemas a los que iniciar sesión
  • O usar un backend LLM (experimental):

    • Usar modelos de lenguaje grandes (p. ej., OpenAI GPT) para generar respuestas de shell realistas de forma dinámica
    • Maneja cualquier comando sin respuestas predefinidas
    • Mantiene el contexto de la conversación para sesiones coherentes

Para ambas configuraciones:

  • Los registros de sesión se almacenan en un formato compatible con User Mode Linux <http://user-mode-linux.sourceforge.net/>_ para una fácil reproducción con la utilidad playlog.
  • Soporte SFTP y SCP para la subida de archivos
  • Soporte para comandos exec de SSH
  • Registro de intentos de conexión directa TCP (proxy SSH)
  • Reenvío de conexiones SMTP a un honeypot SMTP (p. ej., mailoney <https://github.com/awhitehatter/mailoney>_)
  • Registro JSON para un procesamiento fácil en soluciones de gestión de registros

Instalación


Hay tres formas de instalar Cowrie: pip, Docker y una copia de git. Para tu primer honeypot, pip y Docker son las vías más fáciles. Usa una copia de git para desarrollo o escenarios avanzados donde quieras modificar el propio Cowrie. Las instrucciones completas para las tres están en la guía de instalación <https://docs.cowrie.org/en/latest/INSTALL.html>_.

Docker


Las imágenes de Docker <https://hub.docker.com/repository/docker/cowrie/cowrie>_ están disponibles en Docker Hub.

  • Para empezar rápidamente y probar Cowrie, ejecuta::

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

  • Para compilarlo localmente, ejecuta::

    $ make docker-build

PyPI


Cowrie está disponible en PyPI <https://pypi.org/project/cowrie>_. Para instalarlo en un entorno virtual e iniciarlo::

$ 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 escribe el archivo de configuración etc/cowrie.cfg en el directorio actual; los registros y las descargas se guardan en var/.

Requisitos


Software necesario para ejecutarlo localmente:

  • Python 3.10+
  • python-virtualenv

Archivos de interés:


  • etc/cowrie.cfg - archivo de configuración de Cowrie (propiedad del operador). Creado por cowrie init.
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - valores predeterminados incluidos; edita tu etc/cowrie.cfg en su lugar
  • etc/userdb.txt - credenciales para acceder al honeypot
  • src/cowrie/data/fs.pickle - sistema de archivos falso; contiene tanto los metadatos (ruta, uid, gid, tamaño, modo) como los contenidos incrustados (bytes A_CONTENTS) para los archivos pequeños que los atacantes suelen consultar con cat. Edítalo mediante fsctl; recompílalo mediante make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - salida para comandos falsos simples
  • var/log/cowrie/cowrie.json - salida de auditoría en formato JSON
  • var/log/cowrie/cowrie.log - salida de registro/depuración
  • var/lib/cowrie/tty/ - registros de sesión, reproducibles con la utilidad playlog.
  • var/lib/cowrie/downloads/ - los archivos transferidos del atacante al honeypot se almacenan aquí

Comandos


  • cowrie - iniciar, detener y reiniciar Cowrie
  • fsctl - modificar el sistema de archivos falso
  • createfs - crear tu propio sistema de archivos falso
  • playlog - utilidad para reproducir registros de sesión
  • asciinema - convertir los registros de Cowrie en archivos asciinema

Colaboradores


Muchas personas han contribuido a Cowrie a lo largo de los años. Un agradecimiento especial a:

  • Upi Tamminen (desaster) por todo su trabajo desarrollando Kippo, en el que se basó Cowrie
  • Dave Germiquet (davegermiquet) por el soporte TFTP, las pruebas unitarias y el nuevo manejo de procesos
  • Olivier Bilodeau (obilodeau) por el soporte Telnet
  • Ivan Korolev (fe7ch) por muchas mejoras a lo largo de los años.
  • Florian Pelgrim (craneworks) por su trabajo en la limpieza del código y Docker.
  • Guilherme Borges (sgtpepperpt) por el proxy SSH y Telnet (GSoC 2019)
  • Y muchos, muchos otros.

Categorías