カシミアのニット

カシミヤのニット

日々のメモです

cowrieを設置した

cowrie

cowrieSSH型Honeypotの一種.

cowrieインストール

cowrie用設定

自分がcowrieを設置している環境はdebian ver8.5.

以下コマンドで必要なものをインストール.

# apt-get install git python-dev python-openssl openssh-server python-pyasn1 python-twisted

cowrieが22番ポートを使うので普段自分がsshするポートを指定できる範囲で変える.

sshd_configのバックアップを取った上で書き換える.

# vim /etc/ssh/sshd_config

Port 22
↓
Port {任意の番号}

書式のテストをして,いい感じならsshd_configの再読み込み.

# sshd -t
# service sshd restart

cowrie設置用のユーザを作成し,22番ポートをcowrie用に設定.

# adduser --disabled-password cowrie
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 2222

cowrieにユーザをスイッチ.

# su cowrie
$ cd

cowrieのインストール

cowrieをダウンロード,設定ファイルを作る.

$ git clone https://github.com/cowrie/cowrie.git
$ cd cowrie
$ cp cowrie.cfg.dist cowrie.cfg

設定ファイルをいじる(ここではホスト名だけを変えた).

$ vim cowrie.cfg

hostname = {任意のホスト名}

cowrieの設定ポートを直接22にしてauthbind使ってもいい.

# apt-get install authbind
# touch /etc/authbind/byport/22
# chown cowrie /etc/authbind/byport/22
# chmod 777 /etc/authbind/byport/22

cowrie/data内にあるuserdb.txtいじれば, 攻撃者がログインできるユーザネームとパスワードのコンビを変えることができる.

cowrieの起動

下記コマンドで起動&起動できたか確認.

$ ./start.sh

$ cat cowrie.pid #process
or
$ netstat -antp | grep 2222

cowrieに接続してみる

cowrieにsshしてちゃんと動いているか確かめる.

$ ssh root@{ipaddress}

userdb.txtで指定したユーザネームとパスワードのコンビでログインできたらok.

cowrie側でlogの確認

自分のssh用に開けたポートでログインしたらlogを見る.

$ cat ~/cawrie/log/cowrie.log

攻撃者のipとか見える.

cowrieを止める時はstop.shとか

以上cowrieのインストール.

kippo-graphのインストール

kippo-graphはkippoで取れた攻撃者情報をいい感じに可視化してくれるやつ.

cowrieでも使えるっぽいので使っていく.

cowrieで取れたデータをMySQLに保存して,phpで表示するというもの.

MySQLのインストール

MySQLをインストール.

# apt-get install mysql-server python-mysqldb

インストール途中でMySQLのrootのパスワードを聞かれるのでいい感じに設定.

MySQLにcowrie用のユーザを追加と権限を設定.

# mysql -u root -p #インストール途中に入力したrootパスワードを入力
 mysql > create user 'cowrie'@'localhost' identified by '{cowrieのパスワード任意で}';
 mysql > grant all on cowrie.* to 'cowrie'@'localhost' identified by '{cowrieのパスワード}';
 mysql > exit;

cowrieにスイッチして,データベースをいい感じにしていく.

# su cowrie
$ cd ~/cowrie/doc/sql/
$ mysql -u cowrie -p
 mysql > create database cowrie;
 mysql > use cowrie;
 mysql > source mysql.sql;
 mysql > show tables;
+-----------------+
| Tables_in_kippo |
+-----------------+
| auth            |
| clients         |
| downloads       |
| input           |
| sensors         |
| sessions        |
| ttylog          |
+-----------------+
7 rows in set (0.00 sec)

 mysql > exit;

cowrieのログの出力を今しがた作ったデータベースにガンガン入れていくように設定する.

$ vim ~/cowrie/cowrie.cfg

~略~
[database_mysql]
host = localhost
database = cowrie
username = cowrie
password = {cowrieのパスワード}
port = 3306
~略~

kippo-graphのインストール

# apt-get update && apt-get install -y libapache2-mod-php5 php5-mysql php5-gd php5-curl
# /etc/init.d/apache2 restart

最新版をダウンロードしてやる. (2016-08-15現在 Ver. 1.5.1)

# cd /var/www
# wget http://bruteforce.gr/wp-content/uploads/kippo-graph-1.5.1.tar.gz
# openssl sha1 kippo-graph-1.5.1.tar.gz
# tar zxvf kippo-graph-1.5.1.tar.gz
# mv kippo-graph-1.5.1 kippo-graph
# cd kippo-graph
# chmod 777 generated-graphs
# cp config.php.dist config.php
# vim config.php

~略~
define('DB_HOST', 'localhost');
define('DB_USER', 'cowrie');
define('DB_PASS', '{cowrieのパスワード}');
define('DB_NAME', 'cowrie');
define('DB_PORT', '3306');
~略~

ブラウザでhttp://{ipaddress}/kippo-graph/を見る.

f:id:lapis_zero09:20180228220647p:plain

余談

kippo-graphにはKIPPO-PLAYLOGという機能があり,攻撃者がログインしてから,ログアウトするまでの実行コマンドを可視化してくれる機能がある.

cowrieではバグで今んとこ(2016-08-15現在)使えないっぽい https://github.com/ikoniaris/kippo-graph/issues/44

スクリプトを実行すれば見れる.

$ cd ~/cowrie/log
$ python ../../bin/playlog {任意のlog}.log