Voltar às atualizações
New releaseAug 31, 2026

cowrie v3.0.12

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

Compartilhar

.. 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 cat em 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ário playlog.
  • 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 por cowrie 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 seu etc/cowrie.cfg em vez disso
  • etc/userdb.txt - credenciais para acessar o honeypot
  • src/cowrie/data/fs.pickle - sistema de arquivos falso; contém tanto metadados (caminho, uid, gid, tamanho, modo) quanto os conteúdos incorporados (bytes A_CONTENTS) para os pequenos arquivos que os atacantes costumam usar com cat. Edite via fsctl; reconstrua via make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - saída para comandos falsos simples
  • var/log/cowrie/cowrie.json - saída de auditoria em formato JSON
  • var/log/cowrie/cowrie.log - saída de log/depuração
  • var/lib/cowrie/tty/ - logs de sessão, reproduzíveis com o utilitário playlog.
  • var/lib/cowrie/downloads/ - arquivos transferidos do atacante para o honeypot são armazenados aqui

Comandos


  • cowrie - iniciar, parar e reiniciar o Cowrie
  • fsctl - modificar o sistema de arquivos falso
  • createfs - criar seu próprio sistema de arquivos falso
  • playlog - utilitário para reproduzir logs de sessão
  • asciinema - 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.

Categorias