docker ubuntu16.04镜像下安装cowrie蜜罐记录

来源:互联网 发布:php 大端序 编辑:程序博客网 时间:2024/06/06 09:13

宿主主机准备

service docker  startdocker pull ubuntu:16.04docker run -i -t --privileged=true -d -p 4489:4489/tcp  --name cowrie_v1 ubuntu:16.04  /bin/bash #目的是允许docker容器中使用iptables有关内容,默认是不可以的cowrie_v1是容器的名字 ubuntu:16.04是镜像的名字

进入docker容器,命令行操作
打开源有关信息

  • step1:更新国内的源
apt-get updateapt-get install vimcp /etc/apt/sources.list /etc/apt/sources.list.oldvim /etc/apt/sources.list
  • step2:安装必要的支持软件,root用户
apt-get updateapt-get install sudoapt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
  • step3:创建cowrie用户,密码也为cowrie
sudo adduser 

手动输入 cowrie

  • step4:提示cowrie用户没有sudo权限
    root用户下,修改文件/etc/sudoers
chmod 777 /etc/sudoersvim /etc/sudoers#在文件中添加如下内容cowrie ALL=(ALL)ALL

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

  • step5:切换账户,并从github下载cowrie这里写链接内容

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

$ cd cowrie$ pwd

/home/cowrie/cowrie

$ virtualenv cowrie-env

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

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

修改cowrie.cfg
打开ssh,并修改监听端口 为62225
这里写图片描述
这里写图片描述
配置输出文件output
这里写图片描述
配置数据库mysql进行记录这里写图片描述
这里先不着急,我们的docker容器ubuntu还没有装mysql,一会再装。

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

首先检查是否安装sshd

$ ps -ef|grep sshd

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

$ sudo apt-get install openssh-server

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

安装iptables,docker的ubuntu没有安装

sudo apt-get install iptables

安装成功后

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

这里会提示cowrie输入密码 。
注意下关机之后或者是退出容器之后,iptables失效,需要重新输入。或者将其写入文件永久有效。

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

step12:root用户下,配置mysql数据库
首先检查是否安装mysql

whereis mysql

为空没有安装,进行安装,安装期间输入root用户登陆mysql的密码

apt-get purge mysql*apt-get autoremoveapt-get autocleanapt-get dist-upgradeapt-get upgradeapt-get install mysql-server --fix-missing --fix-brokenapt-get install mysql-common

安装完可能没有自动启动mysql

service mysql startsudo netstat -tap | grep mysql#通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功

进入mysql

mysql -uroot -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。
如果此时报错,参考
退出mysql,进入cowrie用户的虚拟环境下

  • step13:安装mysql和python之间必要的工具
(cowrie-env) $ sudo apt-get -y install sudo(cowrie-env) $ sudo sudo apt-get install libmysqlclient-dev(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 pip install --upgrade pip(cowrie-env) $ sudo pip install mysql-python(cowrie-env) $ sudo apt-get install python-mysqldb #这里全是小写
  • 如果cowrie蜜罐启动报错
    这里写图片描述
    则虚拟环境下,补充输入指令
(cowrie-env) $ sudo easy_install pip(cowrie-env) $ sudo pip install pip --upgrade(cowrie-env) $ sudo pip install MySQL-python
  • step14:在虚拟环境下,创建名为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进行记录一致
这里写图片描述

  • step15:虚拟环境下进入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;
  • step16:虚拟环境下启动蜜罐并测试
(cowrie-env) $cd /home/cowrie/cowrie(cowrie-env) $bin/cowrie start

这里写图片描述

可以使用宿主主机ssh对docker容器进行ssh连接,测试成功。
这里写图片描述

有关内容可以参考文章
蜜罐cowrie搭建和部分问题处理