Cowrie 部署 SSH 蜜罐_cowrie蜜罐

1. 低交互蜜罐

低交互蜜罐最大的特点是:蜜罐为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟。由于它的服务都是模拟的行为,所以蜜罐可以获得的信息非常有限,只能对攻击者进行简单的应答。不过,它也是最安全的蜜罐类型。

2. 中交互蜜罐

中交互蜜罐是对真正的操作系统的各种行为的模拟,它提供了更多的交互信息,同时也可以从攻击者的行为中获得更多的信息。在这个模拟行为的系统中,蜜罐此时看起来和一个真正的操作系统没有区别,它们甚至是比真正系统还诱人的攻击目标。

3. 高交互蜜罐

高交互蜜罐具有一个真实的操作系统,它的优点体现在对攻击者提供完全真实的系统。当攻击者获得 ROOT 权限后,受系统、数据真实性的迷惑,他的更多活动和行为将被记录下来。缺点是被入侵的可能性很高,如果整个高交互蜜罐被入侵,那么它就会成为攻击者下一步攻击的跳板,不太安全。
简化版

蜜罐分类:
低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互;

中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互;

高交互:攻击者可以几乎自由的访问系统资源直至系统重新清除恢复。

什么是 Cowrie

Cowrie 是一个具有中等交互的 SSH 蜜罐,它可以获取攻击者用于暴力破解的字典、输入的命令以及上传或下载的恶意文件。所有这些攻击记录都会被记载到日志中,以便日后分析。

项目地址:https://github.com/cowrie/cowrie

Cowrie 安装部署

使用源码部署

本次搭建使用的基础环境是 Ubuntu ,以下步骤除切换到虚拟环境中的操作,其它均为 root 权限执行。

安装必要的支持软件

Python 3

$ sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython3-dev python3-minimal authbind virtualenv

Python 2

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

添加一个普通用户

对外提供服务的程序均以普通用户身份运行,能更好的保证服务器安全性。

$ sudo adduser --disabled-password cowrie
Adding user ‘cowrie’ …
Adding new group ‘cowrie’ (1002) …
Adding new user ‘cowrie’ (1002) with group ‘cowrie’ …
Changing the user information for cowrie
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]

$ sudo su - cowrie

安装 Cowire

由于 Cowire 是采用 Python 开发,为了方便管理和安全,我们就直接将 Cowire 部署到 Python 的虚拟环境中。

下载 Cowire

$ cd /home/cowrie/
$ git clone https://github.com/cowrie/cowrie.git

在这里插入图片描述
在 Python 虚拟环境中安装 Cowire

  • 进入 Cowrie 所在目录,并安装虚拟环境
    $ cd /home/cowrie/cowrie
  • 使用 Python 3 创建虚拟环境

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

  • 使用 Python 2 创建虚拟环境

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

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

$ source cowrie-env/bin/activate
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt

常见报错
在这里插入图片描述
原因:Ubuntu升级pip后,使用时出现了问题
解决办法:
sudo gedit /usr/bin/pip
这时打开了pip文件,修改

from pip import main
if name == ‘main’:
sys.exit(main())

from pip import main //修改
if name == ‘main’:
sys.exit(main._main())//修改

创建并修改 Cowire 的配置文件

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

在这里插入图片描述
打开 SSH 服务,并且修改监听端口
[ssh]

Enable SSH support

(default: true)

enabled = true

listen_endpoints = tcp:2222:interface=0.0.0.0

  • 配置日志文件输出

默认情况下,Cowire 支持将日志输出到多个接收终端中。比如:文件文件、Cuckoo、ELK Stack、Graylog、Kippo-Graph、Splunk、SQL (MySQL、SQLite3、RethinkDB) 等等中。这里我们就来说说最常用的文本文件和 MySQL 数据库:

保存在文本文件中,需要配置以下一些内容。

[output_textlog]
enabled = true
logfile = ${honeypot:log_path}/audit.log
format = text

保存在数据库中,需要配置以下一些内容。

[output_mysql]
host = localhost
database = cowrie
username = cowrie
password = 123456
port = 3306
debug = false
enabled = true

如果是需要保存在 MySQL 数据库中,当然只配置是不行的,你还得需要有一个对应的数据库。如果你没有,可以按下面的步骤进行安装。

  • 安装 MySQL

$ sudo apt-get install mysql-server mysql-client libmysqlclient-dev python-mysqldb

设置数据库密码
在这里插入图片描述
在这里插入图片描述
安装成功后,你可以通过下面的命令测试是否安装成功。

$ sudo netstat -tap | grep mysql

在这里插入图片描述

  • 在 Python 虚拟环境中安装 MySQL 依赖包

$ source cowrie-env/bin/activate
$ pip install mysqlclient mysql-python

在这里插入图片描述
3、创建名为 cowrie 的数据库

$ mysql -u root -p
mysql> create database cowrie;

创建一个给 Cowrie 访问数据库的用户

mysql> GRANT INSERT, SELECT, UPDATE ON cowrie.* TO ‘cowrie’@‘localhost’ IDENTIFIED BY ‘PASSWORD HERE’;
mysql>GRANT INSERT,SELECT,CREATE,UPDATE ON cowrie.* TO ‘cowrie’@‘localhost’ IDENTIFIED BY ‘123456’;

mysql> FLUSH PRIVILEGES;
mysql> exit

在这里插入图片描述
常见报错 :
在这里插入图片描述
解决办法 :https://blog.csdn.net/github_38336924/article/details/82702017

数据库和对应的数据库用户创建完成后,在数据库中导入初始数据的 SQL 语句

$ cd ~/cowrie/docs/sql/
$ mysql -u cowrie -p
mysql> USE cowrie;
mysql> source mysql.sql;
mysql> exit

在这里插入图片描述
常见报错 :用户cowrie没有权限
在这里插入图片描述
解决办法 :切换到root用户下面,退出mysql,使用账号密码登录 mysql -u root -proot
在这里插入图片描述
4、在 Python 虚拟
环境下启动蜜罐

(cowrie-env) $ bin/cowrie start
Activating virtualenv “cowrie-env”
Starting cowrie with extra arguments [] …

在这里插入图片描述
常见报错 :
在这里插入图片描述

5、修改 SSH 默认的监听端口
在 root 用户下将 Ubuntu 自身的 SSH 监听端口进行更改,并修改 Iptables 规则。

首先,我们验证下是否安装 SSH。

$ ps -ef|grep sshd
root 2720 1 0 Nov 02 ? 00:00:00 /usr/sbin/sshd

如果输出结果和以上类似就证明已经安装,没有安装的话可以使用以下命令安装。

$ apt-get install openssh-server

安装完成后,我们可以修改 sshd_config 文件将默认端口改为一个较高的端口,这里为 51268 。

$ vim /etc/ssh/sshd_config

Port 22

Port 51268

注意:一定不要与 cowrie.cfg 文件中监听的端口一致,否则进入 22 端口的流量就转发到真正的 SSH 服务端口,蜜罐就不起作用了。

6、配置 Iptables 进行端口转发
以上都配置好后,最后就是在 Iptables 中新增一条转发规则,将默认到 22 端口的请求转发到蜜罐中对应的端口。

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

在这里插入图片描述
除了使用 Iptables 外,你还可以在没有 Root 权限的条件下使用 Authbind 或 Setcap 将蜜罐绑定到一些特权端口上,以达到伪装一些正常服务的目的。具体方法可以参见官方文档如下部分:

https://cowrie.readthedocs.io/en/latest/INSTALL.html#authbind

https://cowrie.readthedocs.io/en/latest/INSTALL.html#setcap

使用 Docker 部署

上面讲解的通过源码安装,主要是为了演示 Cowrie 如何工作的,当然最方便的还是直接使用 Docker 部署。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

g-FyeK1CGB-1712863877863)]
[外链图片转存中…(img-0CMcQJbu-1712863877863)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-FzD7Zj76-1712863877864)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值