Cowrie蜜罐部署实践

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

以下均为root权限执行

  • 添加非root用户
useradd -r -m -s /bin/bash honey
  • 设置密码
passwd honey
  • 安装各种python相关包
apt-get install -y python-twisted python-crypto python-pyasn1 python-gmpy2 python-mysqldb python-zope.interface
  • 安装virtualenv
apt-get install virtualenv
  • 下载cowire
$ cd /opt
$ git clone http://github.com/micheloosterhof/cowrie
  • 配置python虚拟环境
$ cd /opt/cowrie
$ virtualenv env
$ source env/bin/activate
$ pip install twisted cryptography pyopenssl gmpy2
  • 此处报错,需安装相应依赖
$ apt-get install -y python-cffi libffi-dev libssl-dev
$ apt-get install -y libgmp-dev libmpfr-dev libmpc-dev
  • 依赖安装完毕,重新运行上一步命令即可完成python虚拟环境配置
  • 改变/opt/cowrie的拥有者
chown -R honey:honey /opt/cowrie
  • 建立 cowrie配置文件
cp cowrie.cfg.dist cowrie.cfg
  • 修改日志的umask为0022(默认为0077)
$ cd /opt/cowrie
$ vim start.sh
# change "-- umask 0077" into "-- umask 0022"
  • 修改蜜罐的SSH端口(默认为2222)
$ cd /opt/cowrie
$ vim cowrie.cfg
# change the value of listen_port as follows: listen_port = 63333 (higher than 60000 is better to avoid the port-scan of namp by default)
  • 将公网访问服务器22端口的请求做端口转发,转发到蜜罐的端口中
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 63333
  • 将真正的(非蜜罐)SSH端口改为65432
$ vim /etc/ssh/sshd_config
$ service ssh restart

此处切换为honey用户操作

$ su honey
  • 启动蜜罐
$ cd /opt/cowrie 
$ ./start.sh
  • 此处报错,缺乏部分依赖
pip install configparser service_identity pycrypto tftpy

#3.Cowrie配置
data/userdb.txt——设置外部连接蜜罐时的密码,可以设置稍微复杂但是在攻击字典里,诱使攻击者进行暴力破解并获取其行为。
这里写图片描述
log/cowrie.json与 log/cowrie.log——均为日志
这里写图片描述
txtcmds/——均为假的命令,其实打开就会发现完全就是txt
这里写图片描述
dl/
——攻击者上传的文件均会复制到这里
这里写图片描述
honeyfs/etc/motd——自定义欢迎/警告banner
这里写图片描述

### 安装和配置 Cowrie 蜜罐于 Ubuntu #### 准备工作 为了确保顺利安装并运行Cowrie蜜罐,在Ubuntu环境中需先更新系统软件包列表,并安装必要的依赖项。 ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装必备组件 对于Python开发环境以及其他工具的支持,执行以下命令来安装所需的基础库: ```bash sudo apt install python3-pip git build-essential libffi-dev libssl-dev python3-dev python3-setuptools python3-virtualenv -y ``` #### 获取Cowrie源码 通过Git克隆官方仓库获取最新版本的Cowrie代码至本地机器: ```bash git clone https://github.com/cowrie/cowrie.git ~/cowrie cd ~/cowrie/ ``` #### 创建虚拟环境 建议创建独立的Python虚拟环境用于隔离项目依赖关系: ```bash virtualenv --python=python3 venv source venv/bin/activate ``` #### 安装Python依赖 激活虚拟环境后,利用Pip工具安装`requirements.txt`文件里指定的所有Python库: ```bash pip install --upgrade pip setuptools wheel pip install -r requirements.txt ``` #### 配置Cowrie服务 编辑位于`~/cowrie/etc/`目录下的`cowrie.cfg.dist`文件完成初步设置;如果打算长期稳定运行,则可复制此模板作为正式配置文件使用: ```bash cp etc/cowrie.cfg.dist etc/cowrie.cfg nano etc/cowrie.cfg ``` 在此过程中可根据实际需求调整监听端口、日志记录方式等参数。保存更改退出编辑器之后继续下一步骤。 #### 启动Cowrie服务 返回到项目的根目录下并通过Twistd启动守护进程模式的服务实例: ```bash twistd -n -l log/cowrie.log -u nobody cowrie ``` 此时应该可以看到终端输出有关服务器状态的信息提示符,表示Cowrie已经开始正常运作了。 #### 设置开机自启(可选) 为了让Cowrie能够在每次重启操作系统时自动加载,可以将其注册成SystemD服务单元管理对象之一。具体操作如下所示: 1. 编辑一个新的Unit文件 `/etc/systemd/system/cowrie.service`: ```ini [Unit] Description=Cowrie SSH/Telnet Honeypot [Service] ExecStart=/home/user/cowrie/twistd -n -l /var/log/cowrie/cowrie.log -u nobody cowrie WorkingDirectory=/home/user/cowrie User=root Group=root Restart=always [Install] WantedBy=multi-user.target ``` 2. 刷新Daemon缓存并将该服务设为默认开启状态: ```bash systemctl daemon-reload systemctl enable cowrie.service ``` 现在即使重新引导主机也不必担心Cowrie会停止工作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值