一直都想尝试搭建一个蜜罐,因为蜜罐是一款可以对ssh,telnet,http等等协议攻击进行记录,对于输入命令和上传文件均有记录的一款软件。
记录可以设置在日志文件中或者通过配置数据库,导入数据库中方便查询。今天闲了下来就尝试搭建蜜罐Cowrie,先来简单说一下蜜罐:
蜜罐分类:
低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互;
中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互;
高交互:攻击者可以几乎自由的访问系统资源直至系统重新清除恢复。
为什么选择Cowrie:
它是一个具有中等交互的SSH蜜罐,安装在Linux中,它可以获取攻击者用于暴力破解的字典、输入的命令以及
上传或下载的恶意文件。攻击者在上传恶意文件后,执行恶意文件的操作均会失败,所以对蜜罐本身来说比较安全。
本次搭建使用的基础环境是 Ubuntu 16.04
蜜罐所用资料来自外国友人的github:https://github.com/cowrie/cowrie
在Ubuntu下安装必要的支持软件:
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
创建一个非root的cowrie的新用户:
adduser cowrie
不过此时cowrie没有sudo权限,root用户下修改文件/etc/sudoers:
chmod 777 /etc/sudoers
vim /etc/sudoers
在文件中添加如下内容:
cowrie ALL=(ALL)ALL
pkexec chmod 0440 /etc/sudoers
切换到新账户cowrie,并从github下载cowrie:
git clone http://github.com/micheloosterhof/cowrie
打开cowrie文件夹,安装虚拟环境:
virtualenv cowrie-env
激活cowrie环境,并安装必要的软件包:
source cowrie-env/bin/activate
(以下的操作全部在cowrie-env环境下运行)
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
修改cowrie蜜罐的有关配置文件:
(cowrie-env) $ cd etc/
(cowrie-env) $ cp cowrie.cfg.dist cowrie.cfg
修改cowrie.cfg配置文件,打开ssh服务,并且修改监听端口:
配置输出文件output:
配置mysql数据库进行数据记录:
不过首先要安装数据库:
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
安装成功后可以通过下面的命令测试是否安装成功:
sudo netstat -tap | grep mysql
创建名为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
完成后生成DSA密钥,避免有的版本的Twisted不兼容:
(cowrie-env) $ cd data
(cowrie-env) $ ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key
明确 cowrie的路径:
(cowrie-env) $ export PYTHONPATH=/home/cowrie/honely-cowrie/cowrie
在root用户下将Ubuntu自身的ssh监听端口更改,并修改iptables规则,首先检查是否安装sshd
# ps -ef|grep sshd
如上图证明已经安装,没有的话安装:
# apt-get install openssh-server
安装完成后,修改sshd_config文件将端口改为60000
注:不要与cowrie.cfg文件中监听的端口一致 62223,否则进入22端口的流量就转发到新的ssh端口,蜜罐被屏蔽掉了。
# vim /etc/ssh/sshd_config
# sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223
# iptables-save
虚拟环境下启动蜜罐并测试:
(cowrie-env) $ bin/cowrie start
emmmm...还要安装MySQLdb数据库
# pip install mysql-python
虚拟环境下再次启动蜜罐并测试:
可以看到没有爆错信息了。
(cowrie-env)$ ps -ef | grep cowrie
有上图的信息即是安装成功。
查看端口使用情况:
lsof -i
可以看到62223端口正在监听。
看一下cowrie基本配置,这是所有口令:
攻击者可以轻易破解。
这只介绍了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