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](https://qiita-image-store.s3.amazonaws.com/0/174283/78f4607f-cbf6-47b4-1cff-a036544628ea.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