10.Ubuntu16搭建蜜罐Cowrie
一直都想尝试搭建一个蜜罐,因为蜜罐是一款可以对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的更多相关文章
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
- Ubuntu16 搭建Git 服务器
刚入职一个月左右,昨晚公司给培训了SVN和Git的使用.之前在研究生期间,和导师做项目就一直使用git做版本管理.想起研究生有一段时间,git总出错(秘钥都不好使了,只有某个机器生成的rsa key ...
- 如何在 Windows 10 中搭建 Node.js 环境?
[编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...
- 10分钟搭建一个小型网页(python django)(hello world!)
10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...
- 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)
目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ...
- 用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器
用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器 TrinityCore是魔兽世界(World of Warcraft)的开源的服务端.目前支持魔兽的3 ...
- 基于Ubuntu16搭建Hadoop大数据完全分布式环境
[目的]:学习大数据 在此记录搭建大数据的过程. [系统环境] 宿主机操作系统:Win7 64位 虚拟机软件:Vmware workstation 12 虚拟机:Ubuntu 16 64位桌面版 [步 ...
- 在macOS Sierra 10.12搭建PHP开发环境
macOS Sierra 11.12 已经帮我们预装了 Ruby.PHP(5.6).Perl.Python 等常用的脚本语言,以及 Apache HTTP 服务器.由于 nginx 既能作为 HTTP ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
随机推荐
- Spring Cloud之统一fallback接口
每个方法都配备一个fallback方法 不利于开发的 用类的方式 并且整个方法都是在同一个线程池里面的 主要对于client的修改: pom: <project xmlns="http ...
- 《python基础教程(第二版)》学习笔记 字符串(第3章)
<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...
- java深入探究07-jsp
RequestDispatcher是web资源包装类<jsp:include>只能实现固定jsp文件名他可以翻译为:RequestDispatcher(filename).include( ...
- EntityFramework 学习 一 Local Data
DBSet的Local属性提供简单的从context上下文获取当前已经被跟踪的实体(实体不能被标记为Deleted状态) using System.Data.Entity; class Program ...
- linux 交换分区 swap
linux swap分区用来保证内存过载时也可以使用,是在磁盘级别对内存的一次扩展,swap分区必须是一个单独的分区 创建过程: 1.用fdisk 命令新建分区,在创建过程中通过L命令和t命令来调整分 ...
- Codeforces 571B Minimization:dp + 贪心【前后相消】
题目链接:http://codeforces.com/problemset/problem/571/B 题意: 给你一个长度为n的数列a[i]. 现在你可以随意改变数字的位置,问你 ∑| a[i] - ...
- 分享知识-快乐自己:Linux下安装 erlang 及 RabbitmMQ
Linux下安装 erlang 及 RabbitmMQ: 下载地址一 下载地址二 下载地址三 安装依赖: yum install ncurses-devel 安装 erlang: 1):下载Erla ...
- I.MX6 Busybox watchdog
/************************************************************************* * I.MX6 Busybox watchdog ...
- [HDU5290]Bombing plan
vjudge sol 树DP. 首先把模型转换成:每个点可以控制与它距离不超过\(w_i\)的点,先要求选出数量最少的点控制所有点. 设\(f[i][-100...100]\)表示\(i\)号点向上还 ...
- Codeforces Round #402 (Div. 2) 阵亡记
好长时间没有打Codeforces了,今天被ysf拉过去打了一场. lrd也来参(nian)加(ya)比(zhong)赛(sheng) Problem A: 我去,这不SB题吗.. 用桶统计一下每个数 ...