
cowrie v3.0.12
Cowrie Honeypot SSH/Telnet https://docs.cowrie.org/
.. SPDX-FileCopyrightText: 2014 Upi Tamminen [email protected] .. SPDX-FileCopyrightText: 2014-2025 Michel Oosterhof [email protected] .. .. SPDX-License-Identifier: BSD-3-Clause
Cowrie
O que é o Cowrie
O Cowrie é um honeypot SSH e Telnet de interação média a alta projetado para registrar ataques de força bruta e a interação com o shell realizada pelo atacante. No modo de interação média (shell), ele emula um sistema UNIX em Python; no modo de interação alta (proxy), funciona como um proxy SSH e Telnet para observar o comportamento do atacante em outro sistema. No modo LLM, ele usa modelos de linguagem de grande porte para gerar respostas dinâmicas aos comandos do atacante.
Cowrie <http://github.com/cowrie/cowrie/>_ é mantido por Michel Oosterhof.
Documentação
A documentação pode ser encontrada aqui <https://docs.cowrie.org/en/latest/index.html>_.
Slack
Você pode participar da comunidade Cowrie no seguinte workspace do Slack <https://www.cowrie.org/slack/>_.
Recursos
-
Escolha executar como um shell emulado (padrão):
- Sistema de arquivos falso com a capacidade de adicionar/remover arquivos. Um sistema de arquivos falso completo, semelhante a uma instalação Debian 5.0, está incluído
- Possibilidade de adicionar conteúdos de arquivos falsos para que o atacante possa usar
catem arquivos como/etc/passwd. Apenas conteúdos mínimos de arquivos estão incluídos - O Cowrie salva arquivos baixados com wget/curl ou enviados via SFTP e scp para inspeção posterior
-
Ou faça proxy SSH e Telnet para outro sistema
- Execute como um proxy puro de Telnet e SSH com monitoramento
- Ou deixe o Cowrie gerenciar um pool de servidores emulados com QEMU para fornecer os sistemas nos quais fazer login
-
Ou use um backend LLM (experimental):
- Use modelos de linguagem de grande porte (por exemplo, OpenAI GPT) para gerar dinamicamente respostas de shell realistas
- Lida com qualquer comando sem respostas predefinidas
- Mantém o contexto da conversa para sessões consistentes
Para ambas as configurações:
- Os logs de sessão são armazenados em um formato compatível com
User Mode Linux <http://user-mode-linux.sourceforge.net/>_ para fácil reprodução com o utilitárioplaylog. - Suporte a SFTP e SCP para upload de arquivos
- Suporte a comandos SSH exec
- Registro de tentativas de conexão TCP direta (proxy SSH)
- Encaminhamento de conexões SMTP para um Honeypot SMTP (por exemplo,
mailoney <https://github.com/awhitehatter/mailoney>_) - Registro em JSON para fácil processamento em soluções de gerenciamento de logs
Instalação
Há três maneiras de instalar o Cowrie: pip, Docker e um checkout via git.
Para seu primeiro honeypot, pip e Docker são os caminhos mais fáceis.
Use um checkout via git para desenvolvimento ou cenários avançados em que você queira
modificar o próprio Cowrie. Instruções completas para os três métodos estão em
o guia de instalação <https://docs.cowrie.org/en/latest/INSTALL.html>_.
Docker
Imagens Docker <https://hub.docker.com/repository/docker/cowrie/cowrie>_ estão disponíveis no Docker Hub.
-
Para começar rapidamente e experimentar o Cowrie, execute::
$ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost
-
Para apenas compilá-lo localmente, execute::
$ make docker-build
PyPI
O Cowrie está disponível no PyPI <https://pypi.org/project/cowrie>_. Para instalá-lo
em um ambiente virtual e iniciá-lo::
$ 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 grava o arquivo de configuração etc/cowrie.cfg no diretório
atual; logs e downloads ficam em var/.
Requisitos
Software necessário para executar localmente:
- Python 3.10+
- python-virtualenv
Arquivos de interesse:
etc/cowrie.cfg- arquivo de configuração do Cowrie (de propriedade do operador). Criado porcowrie init.src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - padrões incluídos; edite seuetc/cowrie.cfgem vez dissoetc/userdb.txt- credenciais para acessar o honeypotsrc/cowrie/data/fs.pickle- sistema de arquivos falso; contém tanto metadados (caminho, uid, gid, tamanho, modo) quanto os conteúdos incorporados (bytesA_CONTENTS) para os pequenos arquivos que os atacantes costumam usar comcat. Edite viafsctl; reconstrua viamake build-fs-pickle.src/cowrie/data/txtcmds/- saída para comandos falsos simplesvar/log/cowrie/cowrie.json- saída de auditoria em formato JSONvar/log/cowrie/cowrie.log- saída de log/depuraçãovar/lib/cowrie/tty/- logs de sessão, reproduzíveis com o utilitárioplaylog.var/lib/cowrie/downloads/- arquivos transferidos do atacante para o honeypot são armazenados aqui
Comandos
cowrie- iniciar, parar e reiniciar o Cowriefsctl- modificar o sistema de arquivos falsocreatefs- criar seu próprio sistema de arquivos falsoplaylog- utilitário para reproduzir logs de sessãoasciinema- converter logs do Cowrie em arquivos asciinema
Colaboradores
Muitas pessoas contribuíram para o Cowrie ao longo dos anos. Agradecimentos especiais a:
- Upi Tamminen (desaster) por todo o seu trabalho no desenvolvimento do Kippo, no qual o Cowrie foi baseado
- Dave Germiquet (davegermiquet) pelo suporte a TFTP, testes unitários e novo tratamento de processos
- Olivier Bilodeau (obilodeau) pelo suporte a Telnet
- Ivan Korolev (fe7ch) por muitas melhorias ao longo dos anos.
- Florian Pelgrim (craneworks) pelo seu trabalho na limpeza de código e no Docker.
- Guilherme Borges (sgtpepperpt) pelo proxy SSH e Telnet (GSoC 2019)
- E muitos, muitos outros.