Cowrie SSH/Telnet Honeypot.
Project description
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 a UML Compatible format for easy replay with the 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
Installation
There are currently three ways to install Cowrie: git clone, Docker and pip. Docker is the easiest to try and run, but to configure and modify you’ll need a good understanding of containers and volumes. git clone is recommended if you want to change the configuration of the honeypot. pip mode is still under development.
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
PyPI
Cowrie is available on PyPI, to install run:
$ pip install cowrie $ twistd cowrie
When installed this way, it will behave differently from having a full directory download.
This is still in beta and may not work as expected, git clone or docker methods are preferred.
Requirements
Software required to run locally:
Python 3.10+
python-virtualenv
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 playlog utility.
var/lib/cowrie/downloads/ - files transferred from the attacker to the honeypot are stored here
createfs - create your own fake filesystem
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cowrie-2.8.1.tar.gz.
File metadata
- Download URL: cowrie-2.8.1.tar.gz
- Upload date:
- Size: 620.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20cd24000bcad90262ecd187003daf6cf0c31c1be54d8767c8a09121fd5dbd3c
|
|
| MD5 |
39ce7a65315e4f482f544011078d3b2f
|
|
| BLAKE2b-256 |
43f8dfc7ebd86e33d1b73a27b53aeef32487e96da76cab6ed057a01e307141f4
|
Provenance
The following attestation bundles were made for cowrie-2.8.1.tar.gz:
Publisher:
pypi.yml on cowrie/cowrie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cowrie-2.8.1.tar.gz -
Subject digest:
20cd24000bcad90262ecd187003daf6cf0c31c1be54d8767c8a09121fd5dbd3c - Sigstore transparency entry: 597216832
- Sigstore integration time:
-
Permalink:
cowrie/cowrie@967a8cda2da3086822c50d502a0398af61ea3092 -
Branch / Tag:
refs/tags/v2.8.1 - Owner: https://github.com/cowrie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@967a8cda2da3086822c50d502a0398af61ea3092 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cowrie-2.8.1-py3-none-any.whl.
File metadata
- Download URL: cowrie-2.8.1-py3-none-any.whl
- Upload date:
- Size: 661.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c366176e33241f23d1927ffbdc78ec257c38d07131f71dfd3751cf5b36374d2
|
|
| MD5 |
4a40480643a7d4b76045cefb95c67bd5
|
|
| BLAKE2b-256 |
ac8d96f81ee560b5c9df09d65e85bde2facd18dcbe0d0aff21302fb8d73e8ce3
|
Provenance
The following attestation bundles were made for cowrie-2.8.1-py3-none-any.whl:
Publisher:
pypi.yml on cowrie/cowrie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cowrie-2.8.1-py3-none-any.whl -
Subject digest:
6c366176e33241f23d1927ffbdc78ec257c38d07131f71dfd3751cf5b36374d2 - Sigstore transparency entry: 597216834
- Sigstore integration time:
-
Permalink:
cowrie/cowrie@967a8cda2da3086822c50d502a0398af61ea3092 -
Branch / Tag:
refs/tags/v2.8.1 - Owner: https://github.com/cowrie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@967a8cda2da3086822c50d502a0398af61ea3092 -
Trigger Event:
push
-
Statement type: