
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)
- その他多くの方々。