Skip to main content

Cowrie SSH/Telnet Honeypot.

Project description

Welcome to the Cowrie GitHub repository

This is the official repository for the Cowrie SSH and Telnet Honeypot effort.

What is Cowrie

Cowrie is a medium to high interaction SSH and Telnet honeypot designed to log brute force attacks and the shell interaction performed by the attacker. In medium interaction mode (shell) it emulates a UNIX system in Python, in high interaction mode (proxy) it functions as an SSH and telnet proxy to observe attacker behavior to another system.

Cowrie is maintained by Michel Oosterhof.

Documentation

The Documentation can be found here.

Slack

You can join the Cowrie community at the following Slack workspace.

Features

  • Choose to run as an emulated shell (default):
    • Fake filesystem with the ability to add/remove files. A full fake filesystem resembling a Debian 5.0 installation is included

    • Possibility of adding fake file contents so the attacker can cat files such as /etc/passwd. Only minimal file contents are included

    • Cowrie saves files downloaded with wget/curl or uploaded with SFTP and scp for later inspection

  • Or proxy SSH and telnet to another system
    • Run as a pure telnet and ssh proxy with monitoring

    • Or let Cowrie manage a pool of QEMU emulated servers to provide the systems to login to

For both settings:

  • Session logs are stored in an UML Compatible format for easy replay with the bin/playlog utility.

  • SFTP and SCP support for file upload

  • Support for SSH exec commands

  • Logging of direct-tcp connection attempts (ssh proxying)

  • Forward SMTP connections to SMTP Honeypot (e.g. mailoney)

  • JSON logging for easy processing in log management solutions

Docker

Docker images are available on Docker Hub.

  • To get started quickly and give Cowrie a try, run:

    $ docker run -p 2222:2222 cowrie/cowrie:latest
    $ ssh -p 2222 root@localhost
  • To just make it locally, run:

    $ make docker-build

Requirements

Software required to run locally:

  • Python 3.10+

  • python-virtualenv

For Python dependencies, see requirements.txt.

Files of interest:

  • etc/cowrie.cfg - Cowrie’s configuration file.

  • etc/cowrie.cfg.dist - default settings, don’t change this file

  • etc/userdb.txt - credentials to access the honeypot

  • src/cowrie/data/fs.pickle - fake filesystem, this only contains metadata (path, uid, gid, size)

  • honeyfs/ - contents for the fake filesystem

  • honeyfs/etc/issue.net - pre-login banner

  • honeyfs/etc/motd - post-login banner

  • src/cowrie/data/txtcmds/ - output for simple fake commands

  • var/log/cowrie/cowrie.json - audit output in JSON format

  • var/log/cowrie/cowrie.log - log/debug output

  • var/lib/cowrie/tty/ - session logs, replayable with the bin/playlog utility.

  • var/lib/cowrie/downloads/ - files transferred from the attacker to the honeypot are stored here

  • bin/createfs - create your own fake filesystem

  • bin/playlog - utility to replay session logs

Contributors

Many people have contributed to Cowrie over the years. Special thanks to:

  • Upi Tamminen (desaster) for all his work developing Kippo on which Cowrie was based

  • Dave Germiquet (davegermiquet) for TFTP support, unit tests, new process handling

  • Olivier Bilodeau (obilodeau) for Telnet support

  • Ivan Korolev (fe7ch) for many improvements over the years.

  • Florian Pelgrim (craneworks) for his work on code cleanup and Docker.

  • Guilherme Borges (sgtpepperpt) for SSH and telnet proxy (GSoC 2019)

  • And many many others.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cowrie-2.7.0.tar.gz (610.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cowrie-2.7.0-py3-none-any.whl (653.6 kB view details)

Uploaded Python 3

File details

Details for the file cowrie-2.7.0.tar.gz.

File metadata

  • Download URL: cowrie-2.7.0.tar.gz
  • Upload date:
  • Size: 610.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for cowrie-2.7.0.tar.gz
Algorithm Hash digest
SHA256 8fd71531eea8c2ea4a20ceb00ed29e4d511626316f5c97bda22375427d8c8713
MD5 2913e6c8705f350e3c2678fa071585e8
BLAKE2b-256 0258314404564670cd30da8195c75e356db31764db2e03408b29d88fa19b0d40

See more details on using hashes here.

File details

Details for the file cowrie-2.7.0-py3-none-any.whl.

File metadata

  • Download URL: cowrie-2.7.0-py3-none-any.whl
  • Upload date:
  • Size: 653.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for cowrie-2.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f38a4386b333acd0f126880bc4986eb47e6f1fdfcd5c155aa36dfab55268331
MD5 4f1ef10d8baabd582f4775ba634adbe0
BLAKE2b-256 c85defb3c79ede147e74d9d952016bab44717ec33918424ed6cf47109d84c917

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page