文档章节

点亮我的攻击地图:树莓派蜜罐节点部署实战

slyso
 slyso
发布于 2015/11/13 16:24
字数 3687
阅读 304
收藏 10
点赞 0
评论 2

Part1 蜜罐网络简介

详情请见: [http://drops.wooyun.org/papers/5968][url1-1] (蜜罐网络) [url1-1]: http://drops.wooyun.org/papers/5968

采用MHN中心服务器和树莓派蜜罐终端的方式主要考虑如下几点

  1. MHN中心服务器可部署在独立ip的远程VPS上,部署简单,支持多种蜜罐
  2. 树莓派蜜罐终端成本低,部署也比较容易,部署好后可以即插即用
  3. MHN中心服务器汇总数据,展示;使得蜜罐终端可以灵活部署在内外网,只要网络能连接到MHN中心服务器即可

MHN简介:

MHN是一个开源软件,它简化了蜜罐的部署,同时便于收集和统计蜜罐的数据。用ThreatStream(http://threatstream.github.io/mhn/)来部署,MHN使用开源蜜罐来收集数据,整理后保存在Mongodb中,收集到的信息也可以通过web接口来展示或者通过开发的API访问。
MHN能够提供多种开源的蜜罐,可以通过web接口来添加他们。一个蜜罐的部署过程很简单,只需要粘贴,复制一些命令就可以完成部署,部署完成后,可以通过开源的协议hpfeeds来收集的信息。

搭建好后,访问3000端口,就会看到默认的世界地图准备就绪(没有数据来源的情况下空白状态):

输入图片说明

首先看MHN中心服务器支持的蜜罐终端的类型(还是很丰富):

输入图片说明

这里我们选择比较简单的“Raspberry Pi-Dionaea”,就是树莓派上的Dionaea蜜罐,Dionaea是个低交互蜜罐。
Dionaea简介:

Dionaea(捕蝇草) 低交互式蜜罐是 Honeynet Project 的开源项目,起始于 Google Summer of Code 2009,是Nepenthes(猪笼草)项目的后继。Honeynet Project 是成立于 1999 年的国际性非盈利研究组织,致力于提高因特网的安全性,在蜜罐技术与互联网安全威胁研究领域具有较大的影响力。
Dionaea 蜜罐的设计目的是诱捕恶意攻击,获取恶意攻击会话与恶意代码程序样本。它通过模拟各种常见服务,捕获对服务的攻击数据,记录攻击源和目标IP、端口、协议类型等信息,以及完整的网络会话过程,自动分析其中可能包含的 shellcode 及其中的函数调用和下载文件,并获取恶意程序。
有别于高交互式蜜罐采用真实系统与服务诱捕恶意攻击,Dionaea 被设计成低交互式蜜罐,它为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟。这样设计的好处是安装和配置十分简单,蜜罐系统几乎没有安全风险,不足之处是不完善的模拟会降低数据捕获的能力,并容易被攻击者识别。

详情见:http://drops.wooyun.org/tips/640 (Dionaea低交互式蜜罐部署详解)

为什么用树莓派呢?
树莓派,没玩过的可以简单理解为一个微型计算机主机。 百度百科:[树莓派][url1-4] [url1-4]:http://baike.baidu.com/link?url=6sDixIpkBXPAm9Zz7ZjEYDHI5oP3SYtdNkAfZOb_QuZ5RqC3C0EiRx-EQaLEyf0uLpoXkcmM3k7luHUWWW1bfFKLQGusvJWA9dOYo7zMnxe 为什么选用树莓派作为终端呢?

  1. 这两年树莓派软硬件发展,社区建设也比较迅速,学习和使用比较便捷
  2. 成本低:一个树莓派主体 + 电源 + SD卡不超过300元。
  3. 便携,树莓派很小,搭建好之后便于携带,即插即用。配合移动电源还可以实现短时间独立供电。

Part2 树莓派搭建Dionaea蜜罐实战

本地搭建蜜罐终端前提:MHN已在远程VPS搭建好且运行正常 (其实蜜罐终端也可独立部署,然后通过访问查看捕获到的攻击数据和攻击地图展示,这里说的不是这种模式) 那么开始搭建树莓派蜜罐吧,让地图闪动起来~

树莓派部署Dionaea参考教程(放轻松,姿势正常的话会很顺利): [https://github.com/threatstream/mhn/wiki/Deploying-Dionaea-on-a-Raspberry-Pi][url2-1] [url2-1]:https://github.com/threatstream/mhn/wiki/Deploying-Dionaea-on-a-Raspberry-Pi 为了少出错误,基本按照官方教程来。

工具和软件准备

在Windows7下进行工具的下载和树莓派SD卡的处理(这次用的是一个16GB的SD卡,用读卡器连接到电脑上) 用到的工具(前两个)

输入图片说明

工具下载链接:
[SDFromatter][url2-2]
[NOOBS_lite][url2-3] [url2-2]:https://www.sdcard.org/downloads/formatter_4/ [url2-3]:http://downloads.raspberrypi.org/NOOBS_lite_latest 用“SDFromatter”软件格式化SD卡,直接用Windows格式化应该也可以,注意下磁盘格式,考虑到后边树莓派装的linux系统。
把“NOOBS_lite”下载,解压后如下图,整个拷贝到SD卡中。

输入图片说明

树莓派联网安装所需操作系统

然后准备工作就做好了,可以把SD卡插到树莓派中,给树莓派连接上网线(保证树莓派能够稳定上网就行),启动,就进入安装界面,按照教程一步步操作就好了。 注意:这个安装其实是安装的操作系统,边下载边安装,很慢,我安装的时候,整整等了12个小时才安好...(安装的是Debian GNU/Linux system)

输入图片说明

输入图片说明

然后就可以重启进入树莓派系统了。

几个建议做的树莓派初始化设置

首次启动的设置,用户及密码设置

首次启动将出现系统初始配置的界面,这个界面在也可以在之后的终端窗口中通过sudo raspi-config 激活选择2 Change User Password ,改一下pi用户的密码,初始密码为空或者raspberry。
root用户默认没开启,重新开启root账号,可由pi用户登录后,在命令行下执行
sudo passwd root
执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行
sudo passwd --unlock root
这样就可以解锁root账户了。

让树莓派支持中文

终端中输入(通常需要root权限):
sudo apt-get install ttf-wqy-zenhei
将安装文泉驿的开源中文字体
输入法呢? Linux 下早就有,叫 SCIM ( Smart Common Input Method ),输入:
sudo apt-get install scim-pinyin

时间设置

部署的MHN的中心服务器在国外,默认是是格林尼治时间(世界时间):
Greenwich Mean Time(GMT): 10/22/2015 08:52:41 Thursday(星期四)
想把树莓派设置成国内的本地时间,
使用时区设置,sudo dpkg-reconfigure tzdata
试了几种,最后选择time zone“Asia/Chita” 就对了

网络设置

默认设置是DHCP,根据需要修改,可改成静态ip。
设置树莓派为静态ip的方法和debian linux修改是一样的 ,
只需要修改文件sudo vi /etc/network/interfaces文件即可。

开启SSH服务

终端里,sudo raspi-config 。选项8
8-4-ssh enable 。打开ssh服务。
远程连接putty和winscp,直接root登录默认是禁止的。
putty的ssh可以,普通用户接入,然后su,改成root用户。

在树莓派上安装和部署Dionaea蜜罐,和中心服务器进行连接

前提是树莓派已经接入了局域网,为了方便,可以在电脑上SSH连接树莓派,root权限下通过执行命令安装Dionaea。
首先Web登录远程的MHN中心服务器:

输入图片说明

复制这条命令执行即可,
wget "http://MHN服务器的ip/api/script/?text=true&script_id=10" -O deploy.sh && sudo bash deploy.sh http://MHN服务器的ip d5xofICf

等几分钟,蜜罐就部署好了,中心服务器就能看到这个节点了。

输入图片说明

以后只要把这个树莓派通电,连上网就可以自动工作了。服务会开机自启动的。

几个需要解决的问题

部署在局域网的蜜罐如何检测外网攻击?

部署在局域网内的树莓派蜜罐,只能检测到内网的扫描行为,你会发现那个攻击地图啥也没有,而且通常情况下,一般的单位被攻击到内网的情况比较少。想部署在外网呢?很多人又没这个条件,成本也高。
所以,如果你的外网是ADSL或者电信宽带,有独立外网IP的话,可以通过在出口路由器设置端口映射的方式。

输入图片说明

端口映射出去,会给内网带来一定的风险。但是Dionaea 被设计成低交互式蜜罐,它为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟,网络配置适当的话,风险还是比较小的。
这样就能够检测外网攻击了。

如何快速批量地部署多个终端?

上述,安装操作系统的时候需要联网等待12个小时,还是太久了。所以,推荐的解决办法,是对一个安装好操作系统,基本配置完成的树莓派的SD卡进行镜像克隆成img文件。然后就可以方便地还原到新的SD卡中,还原后只需要执行最后一步安装蜜罐的那条命令就好了。
试了几种方法,各有利弊,但是推荐一种傻瓜式的方法,windows下使用win32diskimager软件克隆,或者linux下使用dd命令克隆效果是一样的。
但需要注意的是:这个克隆是全盘克隆,意思是说,我这次安装的时候用的是16GB的SD卡,虽然安装好后实际只用了4GB多,但是克隆后的img文件足足有14GB多,这样的话,拿一个小于等于16GB的SD卡来进行还原,往往就会因为空间不足还原不了。
所以,强烈建议首次安装的时候用小于等于8GB的SD卡,然后克隆成img镜像,以后批量部署,就可以方便地把这个img镜像,还原到16GB大小的SD卡上直接使用了。(其实就复制4GB的方法也有,要麻烦些)

尝试“win32diskimager-binary.rar”工具:
注意:为了避免奇葩的错误,请使用英文路径,且路径不要有空格。
先自己先建立一个后缀为img的文件,例如miguan.img,要不然之后操作时会提示文件不存在。
然后以管理员身份运行这个程序,必要时关闭杀软。

输入图片说明

选中这个空的文件,然后用read命令,制作镜像。

输入图片说明

输入图片说明

树莓派Dionaea 蜜罐终端的稳定性问题?

试运行几天后,我发现这个树莓派Dionaea 蜜罐终端运行几天后就捕捉不到攻击行为了,重启后就可以立马恢复正常。或者是树莓派蜜罐突然断网,网络恢复后有时也会出现捕获不到攻击了。一个解决思路就是定时重启。这样可以持续稳定运行。说起来容易,折腾了一晚上才解决。
给出最简单的解决方法:
借助crontab定时任务,设定每天8点执行,比较常见的就是,echo命令可以很顺利执行,结果reboot命令,怎么都不执行。权限问题。
试了很久,各种姿势。
最后发现,想要执行重启,在root用户下,必须把命令写到 /etc/crontab 文件中,而且格式必须对,只要报错就说明命令格式不对。
00 08 * * * root reboot 这个命令就可以正常执行了 每天8点重启

nano编辑器也不错

输入图片说明

Ctrl + X 退出,然后Y保存
改动后
service cron restart 重启服务
然后
service cron status 不报错,就ok了

cron命令详解:
[https://www.raspberrypi.org/documentation/linux/usage/cron.md][url2-4]
[url2-4]:https://www.raspberrypi.org/documentation/linux/usage/cron.md

Part3 实验效果

部署在局域网的树莓派,一副扑克牌大小:

输入图片说明

攻击地图一夜里收到的攻击:

输入图片说明

输入图片说明

说明:红圈圈说明刚检测到的攻击源,红点表示之前捕捉到的攻击源。底下会显示时间,攻击源所在地,经纬度。
看到我一个普通宽带的ip每天都被那么多人扫描,还是有种感知的即视感。
登录后可看到攻击细节:IP、时间、扫描的端口、包类型等。

输入图片说明

输入图片说明

攻击细节记录(大都是被扫描记录)
低交互式蜜罐的普遍弱点:

即对网络服务的模拟与真实服务存在差距,可能无法捕获某些对环境敏感的攻击,可以搭配其他专用服务蜜罐一起使用,来不断进行完善。

Part4 应用场景思考

检测潜在的内网攻击

单位各局域网中部署一台,管理员定期查看,捕捉内网攻击。
也可通过端口映射,检测潜在的外网攻击。

蜜罐的深度利用

及时看到潜在攻击行为,提前应对;学习攻击者针对该服务的攻击技巧和利用代码。 一些蜜罐能够捕获恶意软件,利用代码等等。
再次提醒:蜜罐是把双刃剑,如果不能正确的使用,有可能遭受更多的攻击,模拟服务的软件存在问题,也会产生新的漏洞。

MHN中心服务器的定制开发

蜜罐终端传回的毕竟是基础数据,可以通过自己开发程序对基础数据进行处理和分析,提取出关注的信息,增加报警功能等。也可以把攻击地图改了,比如[http://map.norsecorp.com/][url4-1]
[url4-1]:http://map.norsecorp.com/

输入图片说明

Part5 继续

如果看到这里你心动了,就去尝试用树莓派点亮你的地图吧。

楼主表示:我也是刚开始玩,以上都是入门级的功能,还有很多可以尝试的思路。

主要参考文章汇总:
[http://drops.wooyun.org/papers/5968][urlf-1] (蜜罐网络)
[http://drops.wooyun.org/tips/640][urlf-2] (Dionaea低交互式蜜罐部署详解)
[https://github.com/threatstream/mhn/wiki/Deploying-Dionaea-on-a-Raspberry-Pi][urlf-3](树莓派部署Dionaea参考教程)
[urlf-1]:http://drops.wooyun.org/papers/5968
[urlf-2]:http://drops.wooyun.org/tips/640
[urlf-3]:https://github.com/threatstream/mhn/wiki/Deploying-Dionaea-on-a-Raspberry-Pi

© 著作权归作者所有

共有 人打赏支持
slyso
粉丝 23
博文 28
码字总数 52229
作品 0
美国
个人站长
加载中

评论(2)

dingdayu
dingdayu
这个要赞。
clouddyy
clouddyy
赞一个
树莓派随身工具箱:中间人劫持获取控制权

  *本文原创作者:Rc4x,本文属FreeBuf原创奖励计划,未经许可禁止转载   导读   上文讲解了树莓派随身工具箱的环境搭建,这段时间又对其进行了一些优化,主要是从便携美观上面改进。同...

FreeBuf ⋅ 04/26 ⋅ 0

树莓派摄像头VLC网络监控

备忘 树莓派有网口,又有摄像头可以用,当然不能浪费资源,下面我就用红外摄像头来做个昼夜均可使用的摄像头监控~ 连接好树莓派的CSI摄像头,我用的是带有红外灯的,并且有光感控制的,只有在...

乐_然 ⋅ 03/11 ⋅ 0

树莓派pi3 串口问题的解决办法

转载: https://blog.csdn.net/aguangg6655la/article/details/54985423 其他参考1:https://blog.csdn.net/xukai871105/article/details/22713925 其他参考2:https://www.briandorey.com/......

zhenguo26 ⋅ 04/18 ⋅ 0

树莓派3b连接串口类型GPS使用使用串口并关闭蓝牙板载方法

树莓派3上用户目前无法正常是使用GPIO中的UART串口(GPIO14&GPIO15),也就是说用户无论是想用串口来调试树莓派,还是想用GPIO中的串口来连接GPS,蓝牙,XBEE等等串口外设目前都是有问题的。 原因...

huazwz ⋅ 04/11 ⋅ 0

树莓派开启VNC,电脑远程实时操控树莓派桌面

一般远程控制树莓派,命令行使用SSH服务,但是有的时候,我们想远程控制树莓派的桌面。这时就要启用VNC了。 1.在树莓派上开启VNC服务: 这样在树莓派上就开启了VNC服务,开启成功后,在桌面右...

乐_然 ⋅ 03/07 ⋅ 0

EAI激光雷达X4使用hector_slam建图(二)

通过上一节,我在虚拟机下测试雷达驱动成功,现在,我们就拿树莓派3B为例,给激光雷达单独供电后,按着上一节来操作图上为PC端通过VNC与树莓派远程桌面连接,接在按着上一节在树莓派上操作完...

zhu751191958 ⋅ 01/04 ⋅ 0

PHP再学习5——RESTFul框架 远程控制LED

0.前言 去年(2013年)2月第一次接触yeelink平台,当时该平台已经运行了一些时间也吸引了不少极客。试想自己也将投身IoT(物联网)行业,就花了些时间研究了它。陆陆续续使用和研究了一年,大...

thinkyoung ⋅ 2014/12/02 ⋅ 0

树莓派可视化编程软件 - BlocklyPi

本项目是一个基于Blockly的树莓派可视化编程软件,类似于Mixly,可以让让零基础不会编程的人玩转树莓派gpio。 使用说明 见项目 地址 更多说明详见BlocklyPi 实际使用 详见 http://hgccloud....

王逸伦 ⋅ 06/11 ⋅ 0

树莓派3首次安装要做的配置

安装完成后,打开wifi或者连上有线网络 之后在命令行运行如下命令:sudo raspi-config,出现树莓派配置界面。 其中每项的说明如下: 1、Expand Filesystem 扩展文件系统 2、Change User Pas...

乐_然 ⋅ 03/07 ⋅ 0

【树莓派】树莓派+OpenCV3.4 + python3.5 成功以及注意细节

正文之前 网络上太多的安装opencv的教程了,但是不是太旧就是各种幺蛾子。我昨晚测试了一个老外写的。好像是基于什么虚拟环境弄出来。。。知道今天安装成功了我才知道,我要那玩意干嘛啊!!...

HustWolf ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长...

颖辉小居 ⋅ 17分钟前 ⋅ 0

利用有限制通配符提升API灵活性(28)

1、参数化类型是不可变的 List<String> 不是List<Object>的子类,但是二者是有联系的 利用有限制的通配符类型处理类似情况 List<? extends Object>(生产者) Collection<? super E>(消费者......

职业搬砖20年 ⋅ 24分钟前 ⋅ 0

ssm框架 +bootstrap分页

这里有两种方式 方式一:自己写分页 方式二:使用插件PageHelper 1.自己写分页 1.1 效果 1.2 实现过程 1.2.1 创建分页公共类 //---------------------------1.属性-------------------------...

Lucky_Me ⋅ 31分钟前 ⋅ 0

Istio

helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml after $ kubectl create namespace istio-system$ kubectl create -f $HOME/ist......

openthings ⋅ 31分钟前 ⋅ 0

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 36分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 37分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 41分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 53分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 58分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部