ハニーポット
Cowrie

CentOS7へハニーポットCowrieを導入する

Cowrieとは

SSH+Telnetのハニーポット。Kippoというハニーポットを改良して作られたそう。
以下のことができます。(他にもあるかも)
・ 侵入者がターミナルに打ち込んだコマンドの記録&再生
・ 侵入者がサーバに置いたファイル(いけないスクリプトとか)の保存

今回はSSH機能のみ導入する記事。

導入

環境

AWS EC2にてCentOS7を用意しました。

バージョン
$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

$ uname -a
Linux XXXX.osji.net 3.10.0-693.11.6.el7.x86_64 #1 SMP Thu Jan 4 01:06:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

ポート周りの設定

ポート周りの完成イメージは以下の通り ※tcp
image.png

ここで必要なこと
・ Firewalldの設定変更
 - 22, 2222, 22222番ポートのファイアウォール解放
 - 攻撃ターゲットとなる22番ポートをCowrieの待ち受けポート2222番ポートへ転送
※ハニーポットはroot権限を持たないユーザで動かすため、Well-knownポートの22をそのまま利用することは不可

・ sshdの設定変更
 - 管理者用のSSHアクセスポートを22222番へ変更

Firewalldの設定変更

firewalldを使用。

現状のファイアウォール確認
$ sudo firewall-cmd --list-services --zone=public --permanent
ssh dhcpv6-client

ここのsshは"firewalldのssh.xml設定値"(=22番ポート)を指すので、
ssh.xmlを管理者のSSHアクセス用に使う22222番ポートに書き換えます。

それにあたって、まずは今繋いでいる22番を明示的に開放
& ついでにcowrieで使用するポートフォワード設定を入れます。

(cowrie用)設定変更・反映
$ sudo firewall-cmd --add-port=22/tcp --zone=public --permanent
success
$ sudo firewall-cmd --add-port=2222/tcp --zone=public --permanent
success
$ sudo firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=2222
success
$ sudo firewall-cmd --reload
success

それからssh.xmlの編集。
オーバーライド用ファイルを作り、そちらを変更。

(管理者SSH用)設定変更・反映
$ sudo cp -ip /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
$ sudo vi /etc/firewalld/services/ssh.xml
<port protocol="tcp" port="22"/>
↓ 書換え
<port protocol="tcp" port="22222"/>


$ sudo diff /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
5c5
<   <port protocol="tcp" port="22"/>
---
>   <port protocol="tcp" port="22222"/>
確認
$ sudo firewall-cmd --list-all --zone=public --permanent
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports: 22/tcp 2222/tcp
  protocols:
  masquerade: no
  forward-ports: port=22:proto=tcp:toport=2222:toaddr=
  source-ports:
  icmp-blocks:
  rich rules:

sshdの設定変更

設定変更・反映
$ sudo vi /etc/ssh/sshd_config
#Port 22
↓ コメントアウト・書換え
Port 22222

$ sudo systemctl restart sshd

※ 接続テストが終わるまで元セッションは切らないように!

Cowrieのインストールと設定

専用ユーザの作成
# su -
# useradd Cowrie
# passwd Cowrie
(任意のパスワード設定)
必要パッケージインストール
# yum groupinstall "Development Tools"
# yum install python-devel python-setuptools python-virtualenv
# easy_install pip
cowrieの導入
# su - Cowrie
$ git clone http://github.com/micheloosterhof/cowrie
$ cd cowrie/
$ cp -ip cowrie.cfg.dist cowrie.cfg

$ virtualenv cowrie-env
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
$ source cowrie-env/bin/activate
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
(cowrie-env) $ deactivate

※ (2018/3/28)ご指摘いただき修正: 1行目のsuから"-"が漏れていました。

cowrieの起動
$ ./bin/cowrie start

楽しむ

侵入者がターミナルに打ち込んだコマンドの記録&再生

"~Cowrie/cowrie/log/tty"に溜まっていくファイルを以下のコマンドで再生できます。

再生
~Cowrie/cowrie/bin/playlog ~Cowrie/cowrie/log/tty/(ログファイル名)

侵入者がサーバに置いたファイルの保存

"~/Cowrie/cowrie/dl" に自動保存されます。
空ファイルも多々あるけど、たまにDDoS用perlスクリプトとかも落ちてくる…!!

参考URL

以下URLを大変参考にさせていただきました。ありがとうございました。
http://ecoha0630.hatenablog.com/entry/2016/02/07/125110
https://blog.n-etupirka.net/archives/396