蜜罐学习

部署cowrie蜜罐

为什么会突然想到部署蜜罐呢。主要是某天看到了一些东西,然后想着自己也搞个蜜罐,抓点有用的数据,恶意样本,然后学习下。

前期准备

  • 系统:ubuntu 16.04

安装python虚拟环境所需要的相关包:

1
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind

创建单独用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ubuntu@VM-233-226-ubuntu:~$ sudo adduser cowrie
Adding user `cowrie' ...
Adding new group `cowrie' (1000) ...
Adding new user `cowrie' (1000) with group `cowrie' ...
Creating home directory `/home/cowrie' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for cowrie
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]

ubuntu@VM-233-226-ubuntu:~$ sudo su - cowrie

获取项目代码:

1
git clone http://github.com/micheloosterhof/cowrie

正式安装

安装虚拟环境:

1
2
3
4
5
6
7
8
cowrie@VM-233-226-ubuntu:~/cowrie$ pwd
/home/cowrie/cowrie

cowrie@VM-233-226-ubuntu:~/cowrie$ virtualenv cowrie-env
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/cowrie/cowrie/cowrie-env/bin/python2
Also creating executable in /home/cowrie/cowrie/cowrie-env/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

启动虚拟环境:

1
cowrie@VM-233-226-ubuntu:~/cowrie$ source cowrie-env/bin/activate

安装python依赖包:

1
(cowrie-env) cowrie@VM-233-226-ubuntu:~/cowrie$ pip install -r requirements.txt

修改配置文件:

Cowrie的配置存储在cowrie.cfg.dist和cowrie.cfg中。读取两个文件,其中来自cowrie.cfg的条目优先。所以创建cowrie.cfg并做以下修改:

1

修改配置

这里有一点,因为我们ssh的默认端口是22,这里我们将其修改成60000后,然后再讲蜜罐ssh的默认端口2222,也修改成60000之后,保证这两个端口不一样,这样就可以区分了。并且我们可以讲默认的22端口通过iptables重定向至蜜罐端口。

1
2
3
ubuntu@VM-233-226-ubuntu:~$ sudo vim /etc/ssh/sshd_config  //修改为65522
(cowrie-env) cowrie@VM-233-226-ubuntu:~/cowrie$ vim cowrie.cfg
ubuntu@VM-233-226-ubuntu:~$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223

2

启动蜜罐

1
cowrie@VM-233-226-ubuntu:~/cowrie$ bin/cowrie start

该蜜罐其实可以跟数据库挂钩,cowrie中产生的日志杂乱无章,即使放到日志分析工具中也很难制定规则去筛选。然而cowrie具备将攻击IP、时间、历史执行命令等记录直接存在数据库中,下面将说明如何配置数据库。

安装mysql基础环境

1
2
3
4
ubuntu@VM-233-226-ubuntu:~$ sudo apt-get install libmysqlclient-dev python-dev
ubuntu@VM-233-226-ubuntu:~$ sudo apt-get install python-pip
(cowrie-env) cowrie@VM-233-226-ubuntu:~/cowrie$ pip install mysql-python
ubuntu@VM-233-226-ubuntu:~$ sudo apt-get install mysql-server python-mysqldb

配置好数据库的用户名密码就可进行下一步数据库操作了

使用root用户建立名为cowrie的数据库并将该库中的所有表授权给cowrie

1
2
3
ubuntu@VM-233-226-ubuntu:~$ mysql -u root -p
mysql> CREATE DATABASE cowrie;
mysql> GRANT ALL ON cowrie.* TO cowrie@localhost IDENTIFIED BY 'xxx';

此时进入cowrie安装目录中,使用cowrie用户登录数据库,进入cowrie库中,将/home/cowrie/cowrie/doc/sql/mysql.sql作为数据源即可制成多个表。

1
2
3
mysql> use cowrie;
mysql> source /home/cowrie/cowrie/doc/sql/mysql.sql;
cowrie@VM-233-226-ubuntu:~/cowrie$ vim cowrie.cfg

3

后续的蜜罐日志分析

回头做一些蜜罐日志的分析,该页面做为长期更新项目。

  • 2018年5月15日,抓到了一些样本,以及ip地址,还有弱口令字典,美滋滋,样本分析有空做做。

4

5

Refer:

Installing Cowrie in seven steps.