蜜罐cowrie搭建和部分问题处理

因为目前研究的内容涉及到蜜罐,找了很久的资料,终于找到一个中交互的蜜罐cowrie,这是一个外国人写的github项目,打开github项目
这个蜜罐作者在github和他提问他真的很快就回复了。非常赞。

用途

是一款可以对ssh,telnet,http等等协议攻击进行记录,对于输入命令和上传文件均有记录的一款软件。
记录可以设置在日志文件中或者通过配置数据库,导入数据库中方便查询。

效果查看

记录连接ssh的客户端
这里写图片描述
记录尝试暴力破解的用户名和密码
这里写图片描述
登陆之后的操作
这里写图片描述

安装前奏

  • 大环境
    ubuntu 16.04

  • 版本选择

蜜罐的作者在github上有很多个版本,目前我下载并且使用的是
这里写图片描述
这里写图片描述

在ubuntu中可以直接用,下载的就是最新的版本

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

请注意下,这个版本没有start.sh和stop.sh,和目前有的教程可能不完全一致。

开始安装

  • step0:参考github intall.md文件

打开参考

  • step1: 安装必要的支持软件,在ubuntu环境,root用户
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
  • step2: 创建一个cowrie用户
sudo adduser --disabled-password cowrie

因为我对linux的权限不是特别驾轻熟就,本来照着参看,创建没有密码登陆的用户,但是在使用apt install的时候,系统提示输入密码,但是创建用户没有密码,所以折腾了下。

折腾内容:
root用户下 移除cowrie用户密码 passwd –delete cowrie
root用户下 创建cowrie用户新密码 passwd cowrie
两次输入新密码

提示cowrie用户没有sudo权限
root用户下,修改文件/etc/sudoers

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

这里写图片描述
退出后记得改回去 chmod 555 /etc/sudoers

  • step3:切换账户,并从github下载cowrie
git clone http://github.com/micheloosterhof/cowrie
  • step4:打开cowrie文件夹,安装虚拟环境
$ cd cowrie
$ pwd

/home/cowrie/cowrie

$ virtualenv cowrie-env

New python executable in ./cowrie/cowrie-env/bin/python
Installing setuptools, pip, wheel…done.

  • step5:激活环境并安装必要的包
$ source cowrie-env/bin/activate
注释下:一下的操作全部是在cowrie-env环境运行的(cowrie-env)
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
  • step6:修改cowrie蜜罐的有关配置文件
(cowrie-env) $ cp cowrie.cfg.dist cowrie.cfg

修改cowrie.cfg
打开ssh,并修改监听端口
这里写图片描述
这里写图片描述
配置输出文件output
这里写图片描述
配置数据库mysql进行记录
这里写图片描述

  • step7:生成DSA密钥,避免有的版本的Twisted不兼容
(cowrie-env) $ cd data
(cowrie-env) $ ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key
(cowrie-env) $ cd ..
  • step8:明确cowrie的路径
(cowrie-env) $ export PYTHONPATH=/home/cowrie/cowrie
  • step9:在root用户下将ubuntu自身的ssh监听端口修改,并修改iptables

首先开启另外一个终端界面检查是否安装sshd

$ ps -ef|grep sshd

如果有结果则已经安装,否则进行安装

$ sudo apt-get install openssh-server

修改sshd_config文件将端口改为千万不要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

这里会提示cowrie输入密码
也就是step1中说的多余的操作

补充
docker报错没有iptables指令,root用户下

sudo apt-get install iptables

使用

iptables-save

这里写图片描述
查看路由规则,如果写错了用D替换上面的A
学习参考链接

  • step10:root用户下,配置mysql数据库
    首先检查是否安装mysql
    没有安装,进行安装
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev

安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:

sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

登陆mysql数据库可以通过如下命令:

mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

  • step11:在虚拟环境下,安装mysql必备的与python有关的开发包
(cowrie-env) $ sudo apt-get install python-dev
(cowrie-env) $ sudo apt install python-pip
(cowrie-env) $ sudo pip install mysql-python
(cowrie-env) $ sudo apt-get install python-MySQLdb

apt-get install python-MySQLdb特别重要,注意大小写
补充
在docker下安装,和上述操作有出入
这里写图片描述
补充输入指令

(cowrie-env) $ sudo easy_install pip
(cowrie-env) $ sudo pip install pip --upgrade
(cowrie-env) $ sudo pip install MySQL-python
(cowrie-env) $ sudo sudo apt-get install python-MySQLdb
  • step12:在虚拟环境下,创建名为cowrie的yoghurt表将该库的所有表权限赋给cowrie
$mysql -uroot –p
(输入安装mysql数据库root用户的密码)

进入mysql

mysql> CREATE DATABASE cowrie;
mysql> GRANT ALL ON cowrie.* TO cowrie@localhost IDENTIFIED BY 'cowrie';
mysql> exit;

这里的密码是和cowrie.cfg即第6步中
配置数据库mysql进行记录一致
这里写图片描述

  • step13:虚拟环境下进入cowrie安装目录中,使用cowrie用户登录数据库,进入cowrie库中,将/home/cowrie/cowrie/doc/sql/mysql.sql作为数据源即可制成多个表
(cowrie-env) $cd /home/cowrie/cowrie/
(cowrie-env) $mysql -uroot –p
(输入root密码)
(cowrie-env) $use cowrie;
(cowrie-env) $source /home/cowrie/cowrie/doc/sql/mysql.sql;

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

(cowrie-env) $cd /home/cowrie/cowrie
(cowrie-env) $bin/cowrie start

这里写图片描述

开启另外一个终端,确定本机的ip地址
使用ssh连接攻击xshell进行连接
这里写图片描述
这里写图片描述
蜜罐的用户配置信息在home/cowrie/cowrie/data/userdb.txt中

连接成功,提示的信息是蜜罐的信息
这里写图片描述

附录

可能出现的问题
蜜罐第二天再启动不可以连接了,我列举几个查找问题的方法和可能的原因。

1、监听端口不对,默认监听端口是2222
查看所有端口使用情况

lsof -i

这里写图片描述
这边有问题,应该重新编写cowrie.cfg,利用备份的那个改,记得改数据库的配置

2、iptables转发规则失效

  • 打开转发开关

要让iptables的端口转发生效,首先需要打开转发开关

永久打开,重启依然有效
编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward=1前面的#注释去掉,保存文件,然后执行sudo sysctl -p使其生效

  • 查看iptables规则
iptables-save
  • 开关机启动加载iptables规则

注:配置的规则系统默认重启后就失效,因此做开机启动时加载iptables的配置也有必要。
/etc/network/interfaces的末尾添加如下一行:
pre-up iptables-restore < /etc/iptables.rules

如果想在关机的时候自动保存修改过的iptables规则,可添加如下行
post-down iptables-save > /etc/iptables.up.rules

  • 端口转发出问题
    修改sshd_config文件将端口改为千万不要cowrie.cfg文件中监听的端口一致 62223,否则进入22端口的流量就转发到新的ssh端口,蜜罐被屏蔽掉了

参考文献
蜜罐Cowrie的简单搭建和用法介绍
Cowrie蜜罐搭建教程
老司机教你撘cowrie
Ubuntu环境下的iptables的端口转发配置实例

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值