Loading...
Loading...
Avg 782.1 stars per repo.
Coding for 11 years.
73 followers.
Cowrie
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. In LLM mode, it uses large language models to generate dynamic responses to attacker commands.
Cowrie <http://github.com/cowrie/cowrie/>_ is maintained by Michel Oosterhof.
Documentation
The Documentation can be found here <https://docs.cowrie.org/en/latest/index.html>_.
Slack
You can join the Cowrie community at the following Slack workspace <https://www.cowrie.org/slack/>_.
Features
Choose to run as an emulated shell (default):
cat files such as /etc/passwd. Only minimal file contents are includedOr proxy SSH and telnet to another system
Or use an LLM backend (experimental):
For both settings:
UML Compatible <http://user-mode-linux.sourceforge.net/>_ format for easy replay with the playlog utility.mailoney <https://github.com/awhitehatter/mailoney>_)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 <https://hub.docker.com/repository/docker/cowrie/cowrie>_ 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 <https://pypi.org/project/cowrie>_, 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:
Files of interest:
etc/cowrie.cfg - Cowrie's configuration file.etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/etc/cowrie.cfg.dist>_ - default settings, don't change this fileetc/userdb.txt - credentials to access the honeypotsrc/cowrie/data/fs.pickle - fake filesystem, this only contains metadata (path, uid, gid, size)honeyfs/ <https://github.com/cowrie/cowrie/tree/main/honeyfs>_ - contents for the fake filesystemhoneyfs/etc/issue.net - pre-login bannerhoneyfs/etc/motd <https://github.com/cowrie/cowrie/blob/main/honeyfs/etc/issue>_ - post-login bannersrc/cowrie/data/txtcmds/ - output for simple fake commandsvar/log/cowrie/cowrie.json - audit output in JSON formatvar/log/cowrie/cowrie.log - log/debug outputvar/lib/cowrie/tty/ - session logs, replayable with the playlog utility.var/lib/cowrie/downloads/ - files transferred from the attacker to the honeypot are stored hereCommands
cowrie - start, stop and restart Cowriefsctl - modify the fake filesystemcreatefs - create your own fake filesystemplaylog - utility to replay session logsasciinema - turn Cowrie logs into asciinema filesContributors
Many people have contributed to Cowrie over the years. Special thanks to: