アップデート一覧に戻る
New releaseOct 2, 2026

cowrie v3.1.0

Cowrie SSH/Telnet Honeypot 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

Cowrieとは


Cowrieは、ブルートフォース攻撃と攻撃者が実行するシェル操作を記録するために設計された、中〜高対話型のSSHおよびTelnetハニーポットです。中対話モード(シェル)ではPythonでUNIXシステムをエミュレートし、高対話モード(プロキシ)ではSSHおよびTelnetプロキシとして機能し、別のシステム上での攻撃者の挙動を観察します。LLMモードでは、大規模言語モデルを使用して攻撃者のコマンドに対して動的な応答を生成します。

Cowrie <http://github.com/cowrie/cowrie/>_ はMichel Oosterhofによってメンテナンスされています。

ドキュメント


ドキュメントは こちら <https://docs.cowrie.org/en/latest/index.html>_ にあります。

Slack


以下の Slackワークスペース <https://www.cowrie.org/slack/>_ でCowrieコミュニティに参加できます。

機能


  • エミュレートされたシェルとして実行することを選択できます(デフォルト):

    • ファイルの追加/削除が可能な偽ファイルシステム。Debian 5.0インストールに似た完全な偽ファイルシステムが含まれています
    • 攻撃者が /etc/passwd などのファイルを cat できるように、偽のファイル内容を追加する可能性。最小限のファイル内容のみが含まれています
    • Cowrieはwget/curlでダウンロードされたファイルやSFTPおよびscpでアップロードされたファイルを保存し、後で検査できます
  • またはSSHおよびtelnetを別のシステムにプロキシします

    • 監視付きの純粋なtelnetおよびsshプロキシとして実行
    • またはCowrieにQEMUエミュレートサーバーのプールを管理させ、ログインするシステムを提供
  • またはLLMバックエンドを使用します(実験的):

    • 大規模言語モデル(例:OpenAI GPT)を使用して、リアルなシェル応答を動的に生成
    • 事前定義された応答なしで任意のコマンドを処理
    • 一貫したセッションのために会話コンテキストを維持

両方の設定について:

  • セッションログは User Mode Linux <http://user-mode-linux.sourceforge.net/>_ 互換形式で保存され、playlog ユーティリティで簡単に再生できます。
  • ファイルアップロードのためのSFTPおよびSCPサポート
  • SSH execコマンドのサポート
  • direct-tcp接続試行(sshプロキシ)のログ記録
  • SMTP接続をSMTPハニーポット(例:mailoney <https://github.com/awhitehatter/mailoney>_)に転送
  • ログ管理ソリューションでの簡単な処理のためのJSONログ

インストール


Cowrieをインストールする方法は3つあります:pip、Docker、および git チェックアウトです。 最初のハニーポットには、pip とDockerが最も簡単な方法です。 Cowrie自体を変更したい開発や高度なシナリオでは git チェックアウトを使用してください。3つすべての完全な手順は インストールガイド <https://docs.cowrie.org/en/latest/INSTALL.html>_ にあります。

Docker


Dockerイメージ <https://hub.docker.com/r/cowrie/cowrie>_ はDocker Hubで利用可能です。

  • すぐに始めてCowrieを試すには、次を実行します::

    $ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost

  • ローカルでビルドするだけの場合は、次を実行します::

    $ make docker-build

PyPI


CowrieはPyPIで利用可能です <https://pypi.org/project/cowrie>_。仮想環境にインストールして 起動するには::

$ 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 は現在のディレクトリに設定ファイル etc/cowrie.cfg を書き込みます。ログとダウンロードは var/ 以下に配置されます。

要件


ローカルで実行するために必要なソフトウェア:

  • Python 3.11+
  • python-virtualenv

注目すべきファイル:


  • etc/cowrie.cfg - Cowrieの設定ファイル(運用者所有)。cowrie init によって作成されます。
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - バンドルされたデフォルト。代わりに etc/cowrie.cfg を編集してください
  • etc/userdb.txt - ハニーポットにアクセスするための認証情報
  • src/cowrie/data/fs.pickle - 偽ファイルシステム。メタデータ(パス、uid、gid、サイズ、モード)と、攻撃者がよくcatする小さなファイルの埋め込み内容(A_CONTENTS バイト)の両方を含みます。fsctl で編集し、make build-fs-pickle で再ビルドします。
  • src/cowrie/data/txtcmds/ - 単純な偽コマンドの出力
  • var/log/cowrie/cowrie.json - JSON形式の監査出力
  • var/log/cowrie/cowrie.log - ログ/デバッグ出力
  • var/lib/cowrie/tty/ - セッションログ。playlog ユーティリティで再生可能。
  • var/lib/cowrie/downloads/ - 攻撃者からハニーポットに転送されたファイルはここに保存されます

コマンド


  • cowrie - Cowrieの起動、停止、再起動
  • fsctl - 偽ファイルシステムの変更
  • createfs - 独自の偽ファイルシステムの作成
  • playlog - セッションログを再生するユーティリティ
  • asciinema - Cowrieログをasciinemaファイルに変換

貢献者


長年にわたり多くの人々がCowrieに貢献してきました。特に感謝します:

  • Upi Tamminen (desaster) - Cowrieの基盤となったKippoの開発におけるすべての功績
  • Dave Germiquet (davegermiquet) - TFTPサポート、ユニットテスト、新しいプロセス処理
  • Olivier Bilodeau (obilodeau) - Telnetサポート
  • Ivan Korolev (fe7ch) - 長年にわたる多くの改善。
  • Florian Pelgrim (craneworks) - コードクリーンアップとDockerへの取り組み。
  • Guilherme Borges (sgtpepperpt) - SSHおよびtelnetプロキシ(GSoC 2019)
  • その他多くの方々。

カテゴリ