10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

一直都想尝试搭建一个蜜罐,因为蜜罐是一款可以对ssh,telnet,http等等协议攻击进行记录,对于输入命令和上传文件均有记录的一款软件。

记录可以设置在日志文件中或者通过配置数据库,导入数据库中方便查询。今天闲了下来就尝试搭建蜜罐Cowrie,先来简单说一下蜜罐:

蜜罐分类:

低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互;
中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互;
高交互:攻击者可以几乎自由的访问系统资源直至系统重新清除恢复。

为什么选择Cowrie:

它是一个具有中等交互的SSH蜜罐,安装在Linux中,它可以获取攻击者用于暴力破解的字典、输入的命令以及
上传或下载的恶意文件。攻击者在上传恶意文件后,执行恶意文件的操作均会失败,所以对蜜罐本身来说比较安全。

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

本次搭建使用的基础环境是 Ubuntu 16.04

蜜罐所用资料来自外国友人的github:https://github.com/cowrie/cowrie

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

在Ubuntu下安装必要的支持软件:

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

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

创建一个非root的cowrie的新用户:

adduser cowrie

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

不过此时cowrie没有sudo权限,root用户下修改文件/etc/sudoers:

chmod 777 /etc/sudoers
vim /etc/sudoers
在文件中添加如下内容:
cowrie ALL=(ALL)ALL

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

pkexec chmod 0440 /etc/sudoers

切换到新账户cowrie,并从github下载cowrie:

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

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

打开cowrie文件夹,安装虚拟环境:

virtualenv cowrie-env

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

激活cowrie环境,并安装必要的软件包:

source cowrie-env/bin/activate
(以下的操作全部在cowrie-env环境下运行)
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

修改cowrie蜜罐的有关配置文件:

(cowrie-env) $ cd etc/
(cowrie-env) $ cp cowrie.cfg.dist cowrie.cfg

修改cowrie.cfg配置文件,打开ssh服务,并且修改监听端口:

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

配置输出文件output:

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

配置mysql数据库进行数据记录:

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

不过首先要安装数据库:

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

安装成功后可以通过下面的命令测试是否安装成功:

sudo netstat -tap | grep mysql

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

创建名为cowrie的数据库:

create database cowrie;

创建完成后,虚拟环境下进入cowrie安装目录中,使用cowrie用户登录数据库,进入cowrie库中,将/home/cowrie/honely-cowrie/cowrie/docs/sql作为数据源即可制成多个表:

(cowrie-env) $ pwd
(cowrie-env) $ mysql -u root –p
(输入root密码)
(cowrie-env) $ use cowrie
(cowrie-env) $ source /home/cowrie/honely-cowrie/cowrie/docs/sql/mysql.sql

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

完成后生成DSA密钥,避免有的版本的Twisted不兼容:

(cowrie-env) $ cd data
(cowrie-env) $ ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

明确 cowrie的路径:

(cowrie-env) $ export PYTHONPATH=/home/cowrie/honely-cowrie/cowrie

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

在root用户下将Ubuntu自身的ssh监听端口更改,并修改iptables规则,首先检查是否安装sshd

# ps -ef|grep sshd

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

如上图证明已经安装,没有的话安装:

# apt-get install openssh-server

安装完成后,修改sshd_config文件将端口改为60000

注:不要与cowrie.cfg文件中监听的端口一致 62223,否则进入22端口的流量就转发到新的ssh端口,蜜罐被屏蔽掉了。

# vim /etc/ssh/sshd_config

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

# sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

# iptables-save

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

虚拟环境下启动蜜罐并测试:

(cowrie-env) $ bin/cowrie start

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

emmmm...还要安装MySQLdb数据库

# pip install mysql-python 

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

虚拟环境下再次启动蜜罐并测试:

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

可以看到没有爆错信息了。

(cowrie-env)$ ps -ef | grep cowrie

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

有上图的信息即是安装成功。

查看端口使用情况:

lsof -i

10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

可以看到62223端口正在监听。

看一下cowrie基本配置,这是所有口令:
10.Ubuntu16搭建蜜罐Cowrie-LMLPHP

攻击者可以轻易破解。

这只介绍了cowrie蜜罐的搭建,任何可登陆的服务都可以用来搭建蜜罐:

基于python Twisted库的Ftp简单蜜罐:http://blackwolfsec.cc/2016/05/17/python_twisted_ftp_honeypot/

基于python Twisted库的Telnet简单蜜罐:http://blackwolfsec.cc/2016/06/03/telnet_honeypot/

github上面蜜罐搭建教程:https://github.com/cowrie/cowrie/blob/master/INSTALL.md#step-1-install-dependencies

参考链接:

https://blog.csdn.net/xujing19920814/article/details/78599604

https://blog.csdn.net/pygain/article/details/65658990

https://www.freebuf.com/articles/network/112065.html

https://blog.csdn.net/gobitan/article/details/50696641

05-11 22:17