
cowrie v3.0.12
Cowrie SSH/Telnet Honeypot https://docs.cowrie.org/
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/repository/docker/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.10+
- 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)に対して
- そして他にも大勢の方々