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

    在线演示 本地下载

  2. Wildfly在Linux下以Service的方式启动 配置步骤

    1.前提介绍 在目前项目中使用Wildfly9在linux下部署项目,经常会通过远程的SSH来启动关闭服务.但是通过SHH启动 standalone.sh 的服务,如果关闭窗口服务就会被停掉.所以就想 ...

  3. mac工作软件推荐-iterm + zsh + tmux

    原文链接: http://ju.outofmemory.cn/entry/57244 tmux安装https://blog.csdn.net/nmgzywd/article/details/50915 ...

  4. a note of R software write Function

    Functionals “To become significantly more reliable, code must become more transparent. In particular ...

  5. JavaScript秘密

    对象 对象使用和属性 JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined. false.toString(); // 'false' [1, 2, 3] ...

  6. 英语发音规则---th

    英语发音规则---th 一.总结 一句话总结: th发/ð/音的情况:a.在th后以字母-er结尾的单词中:b.在代词.冠词.介词.连词或副词中的字母组合th th发/θ/音的情况:a.在数词(包括基 ...

  7. 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  8. Selenium-浮层的操作

    实现-百度登录浮层-输入登录用户名 #! /usr/bin/env python #coding=utf-8 ''' 百度首页-登录浮层 ''' from selenium import webdri ...

  9. 5_Singleton 游戏开发中的单例模式

    强制类只有一个实例 提供全局的访问 ###为什么使用: ``` 如果没有地方访问这个类,则不会创建实例 静态类在main之前实例化, 可以尝试Lazy initialization 派生单例类, 获得 ...

  10. leetcode 2 Add Two Numbers(链表)

    数字反过来这个没有什么麻烦,就是镜像的去算十进制加法就可以了,然后就是简单的链表. /** * Definition for singly-linked list. * struct ListNode ...