
cowrie v3.0.12
Pot de miel SSH/Telnet Cowrie 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
Qu'est-ce que Cowrie
Cowrie est un honeypot SSH et Telnet d'interaction moyenne à élevée conçu pour journaliser les attaques par force brute et l'interaction avec le shell effectuée par l'attaquant. En mode d'interaction moyenne (shell), il émule un système UNIX en Python ; en mode d'interaction élevée (proxy), il fonctionne comme un proxy SSH et Telnet pour observer le comportement de l'attaquant sur un autre système. En mode LLM, il utilise de grands modèles de langage pour générer des réponses dynamiques aux commandes de l'attaquant.
Cowrie <http://github.com/cowrie/cowrie/>_ est maintenu par Michel Oosterhof.
Documentation
La documentation est disponible ici <https://docs.cowrie.org/en/latest/index.html>_.
Slack
Vous pouvez rejoindre la communauté Cowrie sur l'espace de travail Slack <https://www.cowrie.org/slack/>_ suivant.
Fonctionnalités
-
Choisissez de l'exécuter comme un shell émulé (par défaut) :
- Système de fichiers factice avec la possibilité d'ajouter/supprimer des fichiers. Un système de fichiers factice complet ressemblant à une installation Debian 5.0 est inclus
- Possibilité d'ajouter des contenus de fichiers factices afin que l'attaquant puisse
catdes fichiers tels que/etc/passwd. Seuls des contenus de fichiers minimaux sont inclus - Cowrie enregistre les fichiers téléchargés avec wget/curl ou envoyés via SFTP et scp pour une inspection ultérieure
-
Ou proxiez SSH et Telnet vers un autre système
- Fonctionne comme un pur proxy Telnet et SSH avec surveillance
- Ou laissez Cowrie gérer un pool de serveurs émulés QEMU pour fournir les systèmes auxquels se connecter
-
Ou utilisez un backend LLM (expérimental) :
- Utilisez de grands modèles de langage (par exemple, OpenAI GPT) pour générer dynamiquement des réponses shell réalistes
- Gère toute commande sans réponses prédéfinies
- Maintient le contexte de conversation pour des sessions cohérentes
Pour les deux configurations :
- Les journaux de session sont stockés dans un format compatible
User Mode Linux <http://user-mode-linux.sourceforge.net/>_ pour une relecture facile avec l'utilitaireplaylog. - Prise en charge SFTP et SCP pour l'envoi de fichiers
- Prise en charge des commandes SSH exec
- Journalisation des tentatives de connexion direct-tcp (proxy SSH)
- Transfère les connexions SMTP vers un honeypot SMTP (par exemple
mailoney <https://github.com/awhitehatter/mailoney>_) - Journalisation JSON pour un traitement facile dans les solutions de gestion de journaux
Installation
Il existe trois façons d'installer Cowrie : pip, Docker et un checkout git.
Pour votre premier honeypot, pip et Docker sont les chemins les plus simples.
Utilisez un checkout git pour le développement ou les scénarios avancés où vous souhaitez
modifier Cowrie lui-même. Les instructions complètes pour les trois sont dans
le guide d'installation <https://docs.cowrie.org/en/latest/INSTALL.html>_.
Docker
Les images Docker <https://hub.docker.com/repository/docker/cowrie/cowrie>_ sont disponibles sur Docker Hub.
-
Pour démarrer rapidement et essayer Cowrie, exécutez ::
$ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost
-
Pour le construire localement, exécutez ::
$ make docker-build
PyPI
Cowrie est disponible sur PyPI <https://pypi.org/project/cowrie>_. Pour l'installer
dans un environnement virtuel et le démarrer ::
$ 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 écrit le fichier de configuration etc/cowrie.cfg dans le répertoire
courant ; les journaux et les téléchargements sont placés sous var/.
Prérequis
Logiciels requis pour une exécution locale :
- Python 3.10+
- python-virtualenv
Fichiers d'intérêt :
etc/cowrie.cfg- fichier de configuration de Cowrie (appartenant à l'opérateur). Créé parcowrie init.src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - valeurs par défaut fournies, modifiez plutôt votreetc/cowrie.cfgetc/userdb.txt- identifiants pour accéder au honeypotsrc/cowrie/data/fs.pickle- système de fichiers factice ; contient à la fois les métadonnées (chemin, uid, gid, taille, mode) et les contenus intégrés (octetsA_CONTENTS) pour les petits fichiers que les attaquants consultent couramment aveccat. Modifiable viafsctl; reconstruisible viamake build-fs-pickle.src/cowrie/data/txtcmds/- sortie pour les commandes factices simplesvar/log/cowrie/cowrie.json- sortie d'audit au format JSONvar/log/cowrie/cowrie.log- sortie de journalisation/débogagevar/lib/cowrie/tty/- journaux de session, rejouables avec l'utilitaireplaylog.var/lib/cowrie/downloads/- les fichiers transférés de l'attaquant vers le honeypot sont stockés ici
Commandes
cowrie- démarrer, arrêter et redémarrer Cowriefsctl- modifier le système de fichiers facticecreatefs- créer votre propre système de fichiers facticeplaylog- utilitaire pour rejouer les journaux de sessionasciinema- convertir les journaux Cowrie en fichiers asciinema
Contributeurs
De nombreuses personnes ont contribué à Cowrie au fil des ans. Remerciements particuliers à :
- Upi Tamminen (desaster) pour tout son travail de développement de Kippo sur lequel Cowrie est basé
- Dave Germiquet (davegermiquet) pour la prise en charge TFTP, les tests unitaires, le nouveau traitement des processus
- Olivier Bilodeau (obilodeau) pour la prise en charge Telnet
- Ivan Korolev (fe7ch) pour de nombreuses améliorations au fil des ans.
- Florian Pelgrim (craneworks) pour son travail de nettoyage du code et sur Docker.
- Guilherme Borges (sgtpepperpt) pour le proxy SSH et Telnet (GSoC 2019)
- Et bien d'autres encore.