一直都想尝试搭建一个蜜罐,因为蜜罐是一款可以对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

https://www.freebuf.com/articles/network/112065.html

https://blog.csdn.net/gobitan/article/details/50696641

10.Ubuntu16搭建蜜罐Cowrie的更多相关文章

  1. 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版

    本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...

  2. Ubuntu16 搭建Git 服务器

    刚入职一个月左右,昨晚公司给培训了SVN和Git的使用.之前在研究生期间,和导师做项目就一直使用git做版本管理.想起研究生有一段时间,git总出错(秘钥都不好使了,只有某个机器生成的rsa key ...

  3. 如何在 Windows 10 中搭建 Node.js 环境?

    [编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...

  4. 10分钟搭建一个小型网页(python django)(hello world!)

    10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...

  5. 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)

    目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ...

  6. 用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器

    用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器 TrinityCore是魔兽世界(World of Warcraft)的开源的服务端.目前支持魔兽的3 ...

  7. 基于Ubuntu16搭建Hadoop大数据完全分布式环境

    [目的]:学习大数据 在此记录搭建大数据的过程. [系统环境] 宿主机操作系统:Win7 64位 虚拟机软件:Vmware workstation 12 虚拟机:Ubuntu 16 64位桌面版 [步 ...

  8. 在macOS Sierra 10.12搭建PHP开发环境

    macOS Sierra 11.12 已经帮我们预装了 Ruby.PHP(5.6).Perl.Python 等常用的脚本语言,以及 Apache HTTP 服务器.由于 nginx 既能作为 HTTP ...

  9. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

随机推荐

  1. android电池(四):电池 电量计(MAX17040)驱动分析篇【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/8969369 电池电量计,库仑计,用max17040这颗电量IC去计量电池电量,这种方法 ...

  2. Vim 标签定义

    一.单个文件: m+标记字符 打上标记,如在开头行按ms(start),标记开头: 如需返回到自己的标记点,按`+标记字符就行: 二.多个文件: m+大写标记字符 如果删除了标签的行,同时也删除了标签 ...

  3. Myeclipse中启动tomcat 异常

    信息: Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate ...

  4. DB2常见错误

    +098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统+111 0159 ...

  5. mongodb同步

    mongodb同步 py-mongo-sync MongodbSync mongodb 的一个同步工具,具备将一个数据源上的数据,同步到其它 mongodb 上,支持: mongos -> (m ...

  6. 更改ubuntu主机名称

    vim /etc/hostname 将root更改为admin vim /etc/passwd

  7. CreateProcess 执行CMD命令,并重定向输出

    1. 参考网址:http://www.cnblogs.com/cnarg/archive/2011/02/20/1959292.html function TfrmMain.ExecDosCmd :b ...

  8. Codeforces 459E Pashmak and Graph:dp + 贪心

    题目链接:http://codeforces.com/problemset/problem/459/E 题意: 给你一个有向图,每条边有边权. 让你找出一条路径,使得这条路径上的边权严格递增. 问你这 ...

  9. Memcached 分布式缓存实现原理简介

    摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...

  10. Android中高效的显示图片之一 ——加载大图

    在网上看了不少文章,发现还是官方文档介绍最详细,把重要的东西简单摘要出来.详细可看官方文档地址 ( http://www.bangchui.org/read.php?tid=9 ) . 在应用中显示图 ...