搭建蜜灌系统&创造蜜网拓扑

接着上一期的引言我从这篇文章开始就正式陆陆续续写一些安全方向的文章,非常适合初学者学习以防止对安全爱好者成为“脚本小子”。不过在进行攻防之前首先我们得搭建一张攻防的拓扑才能进行攻击和防御是不?

首先在说拓扑之前我得引入一些关于蜜罐的概念,大多数人对蜜罐的了解是这个:

好吧,咱们又不是熊,不过看上去这蜜罐里面的蜂蜜还是挺好吃的!不过今天的主题不是这个,首先看看什么是蜜罐?

什么是蜜罐?

蜜罐系统是一个用于企业的安全资源,蜜罐的价值在于并不是像防火墙一样的防御而是教唆犯罪分子主动进攻。在攻击者攻击的过程中收集信息让攻击者露出马脚,除此之外还能收集最近攻击者新的攻击方向,还能免费发现企业自己新开发程序的漏洞(只要你愿意放在蜜罐中)!

不过这么吊炸天的概念为啥叫蜜罐?我的理解就是:“蜜”是甜的专门吸引一些有害昆虫进入创造的“罐”中并将其截获。不过正确的概念是:最初出现在1990年出版的一本小说《The Cuckoo’s Egg》中,在这本小说中描述了作者作为一个公司的网络管理员,如何追踪并发现一起商业间谍案的故事。

使用蜜罐的优缺点:

首先说说优点:

  • 收集数据的保真度,由于蜜罐提供的内容主要作用就是做个有缝的蛋并不是作为应用上线,所以收集到的数据基本都是攻击者造成的。由于蜜罐不依赖于任何复杂的检测技术等,因此减少了漏报率和误报率。
  • 使用蜜罐技术能够收集到新的攻击工具和攻击方法,所谓的知己知彼百战不殆!当然甚至可以安装logstash对信息收集自动化通过搜索引擎lucene进行实时分析。而现在目前大部分公司的入侵检测系统只能根据特征匹配的方法检测到已知的攻击。
  • 蜜罐技术不需要强大的外部资源支持,可以使用一些低成本的设备构建蜜罐(甚至是一台机器做虚拟化),不需要大量的资金投入。
  • 相对入侵检测等其他技术,蜜罐技术比较简单,使得网络管理人员能够比较容易地掌握黑客攻击的一些知识。

接下来说说缺点:

  • 第一个就是需要大量的精力投入设计蜜罐系统中去,虽然不需要硬件设备的支持但是蜜罐的设计确实需要费脑经。
  • 其次蜜罐技术只能对针对蜜罐的攻击行为进行监视和分析,所以蜜罐只是为了研究攻击者的攻击行为,不像入侵检测系统能够通过旁路侦听等技术对整个网络进行监控。
  • 部署蜜罐很容易带来安全风险,这个缺点和第一条非常对应。如果蜜罐系统设计不良会造成自己搬起石头砸自己的脚。所以蜜罐系统的布置不是这么容易。
蜜罐技术的分类:

什么蜜罐这种技术还有分类?答案是必须的!不过分类也是按照蜜罐系统对攻击者提供的交互等级而进行分类。一共有两类:低交互式蜜罐高交互式蜜罐

关于低交互式蜜罐:

一般模拟最简单的操作系统和网路服务,里面的内容比较简陋,甚至连应用和服务都是模拟的。大家可以将低交互式蜜罐理解为是一个在正常操作系统中的沙箱!不过配置低交互式蜜罐的好处是部署风险比较小不会被黑客反攻将蜜罐机器拿下。但是缺点显而易见了容易被攻击者识破,毕竟不能模拟一个完整的操作系统。

关于高交互式蜜罐:

真实的操作系统环境和网络服务,没有给攻击者做任何限制,也就是说如果黑客攻下之后拿到shell权限等于他得到了一整台计算机。因此在高交互型蜜罐中,我们能够获得更多的攻击活动信息。但是高交互型蜜罐在提升攻击者活动自由度的同时,自然地加大了部署维护的复杂度和安全风险。所以在企业中安全员可能为了企业的安全并不会采用高交互式的蜜罐,如果攻击者将整个蜜罐拿下后果不堪设想!

关于蜜网&蜜墙:

蜜网是在蜜罐技术上逐步发展起来的一个新的概念,大家可以理解为多个蜜罐组成的网络,这样做的好处就是组织成为了一种企业的架构而且更加的逼真。蜜网技术与传统蜜罐技术的差异在于,蜜网构成了一个黑客诱捕网络体系架构,在这个架构中,我们可以包含一个或多个蜜罐,这样做的原因就是让攻击者认为这就是一个企业的架构。在信息收集方面,由于有多个蜜罐组织成的模拟企业架构所以收集攻击信息的种类更多,对整个攻击流程有更清晰的认识。

本次文章的内容就是搭建一个简单的蜜网,但是被攻击的靶机只是简单的安装类似于agent端的蜜罐收集信息,并不是真正的蜜罐所以请别用在生产环境中!当然有了agent端就会有server端那么server端就是蜜墙,看来我又扯到一个新的概念叫做蜜墙……蜜墙其实非常好理解,大家可以想象成相当于一个中间的收费站,流量从一个入口进入进行收集网络数据,随后从另一个口出去进入各个蜜罐搭成的密网。然后回来的数据由原先的出口进行收集。并且每个蜜罐中都有agent收集攻击数据并反馈到server端!如果需要查看数据可以从蜜墙的秘密网口进入进行查看当前情况。我download了一张官网给出的一个简单拓扑这样更方便理解:

其中eth0&eth1作为数据流入流出的接口,而eth2作为蜜墙的交互口。下面黄色的电脑就是蜜罐组织的蜜网,而上面的电脑是正式生产环境中使用的机器。如果对蜜罐技术还想更多了解的可以登陆这个网站进行更加详细的了解:www.honeynet.org请自备各类翻墙工具进行点入查看!

搭建蜜网拓扑&实验解析:

首先说说不同之处,网上也有许多的搭建蜜网拓扑但都是使用VMWARE的商业产品进行搭建。当然VMWARE产品价格还是不菲的,况且搭建这么一个拓扑也不需要VMWARE使用virtualbox这么一个开源小巧玲珑的虚拟化程序也能搞定!本博文下面的实验内容都是由virtualbox进行搭建。首先上一张我的拓扑图:

首先整个拓扑需要两块网卡才能玩转,第一个就是一个NAT模式的网络,另一个是仅主机的网络。蓝色线表示NAT模式的网络流程通过honeywall流转到仅主机的网络结构来攻击靶机!随后我来介绍一下各个主机的作用和对应的网络:

  • BT5:192.168.1.5 这个我就不用过多的进行介绍了吧?back track系列不懂的可以使用google查询经典的黑客所使用的Linux发行版本作为攻击机!
  • honeywall:eth0连接nat网络、eth1连接host-only网络、eth2作为管理接口我这边连接nat网络,网络地址是192.168.1.10。而eth0&1进行桥接,不需要网络地址你可以想象成一个交换机上面的口而已!
  • windows靶机:192.168.1.15 系统是一个windows server2003作为靶机使用!
  • linux靶机:182.168.1.16 系统是一个ubuntu的发行版本!

说完了拓扑首先我们得安装一个virtualbox随后进行设置!官网地址:www.virtualbox.org

设置virtualbox:

首先就是创建虚拟机等之类的繁琐操作,这边我就不细细描述了。不知道创建虚拟机的可以查看这篇文章!首先在创建之前得设置一下网卡设置需要创建两个网络,一个NAT一个host-only下面看图说话:

  • 首先我们要修改网络,先选择全局设定

  • 首先创建一个nat网络,我之前有创建过这个可以无视。选择右边添加一个网络。

  • 添加完毕之后我们得修改这个网络情况,将其修改为192.168.1.0网段并且掩码为255.255.255.0即可。下面的图片的第二张其中dhcp大家可以选择将其去掉,我拓扑的地址都是固定的!还有一个就是网络名称大家也可以修改,为了方便可以改为192.168.1.0作为名称。

  • 改好以后按好OK之后看到下图,后面的从XXX重命名不用管理退出重进没问题。

  • 改完了NAT网络模式,接下来我们修改Host-only网络模式。还是在老地方选择右边的仅主机XXXX选项随后修改原先Host-only网络模式无需添加!

  • 首先修改IPV4地址还有掩码,有很多人就看不懂这里了为啥填写的是192.168.1.100这个IPV4地址代表什么?这个我在后面详细描述如果是初学者先按照我写的改即可!还有后面的DHCP服务器我这边拓扑是固定IP不需要的话可以去掉。

改好网络地址之后接下来引来了两个概念,在虚拟化环境中网络模式NAT和Host-only是什么?分别有什么作用?首先我来说说NAT模式:

NAT的网络模式,大家应该都学习过网络吧?由于IPV4公网地址不足,并且内部网络的私网地址都需要上网所以有了NAT协议专门用于网络地址转换。不过在早期的研发中是为了安全设计的一种协议!不过这一期不聊网络。在虚拟化环境中的NAT表示在宿主机的网口中创建一个虚拟路由器并设置好网段,随后N多由宿主机创建的虚拟机连接到这台虚拟路由器上。由这台虚拟路由器帮助这些连接的虚拟机做网络协议转换。可以想象成这样宿主机就是一台企业网络边界的路由器,而下面的虚拟机则是需要通讯的主机。那么NAT对宿主机来说不能访问里面的虚拟机(除非使用端口映射来访问在常见NAT网络模式里面有个选项就是端口转换!),也就是这些虚拟机对外是不可见的,看上去还挺安全的。

接下来来说说什么是Host-only?

其实可以这样想象,宿主机在系统中新建了一块网卡作为交换设备,随后如果创建的虚拟机如果使用仅主机模式(Host-only)那么这台虚拟机就像把网线插入宿主机提供的交换机中!但是注意宿主机创建的交换机仅仅只是交换机并没有连通其他设备。所以仅主机模式的通讯范围只能在宿主机和连接进来的虚拟机之间相互通讯,而虚拟机并不能访问外网!所以为什么解答了当时在修改Host-only网络是只有IPV4和掩码连网关都不要,其中IPV4地址就是宿主机设定的网卡地址,你会在你的适配器设置中会有一块新的网卡,这就是Host-only提供的。

好吧最后顺便我说说桥接模式:

桥接模式相当好理解,可以这样想象将宿主机网卡模拟成一个交换机,虚拟机和宿主机同用这块物理网卡。那么宿主机的网段就是虚拟机的网段,这样做的好处就是宿主机能够连接虚拟机,并且虚拟机也能够访问外部网络。但是这样虚拟机就和宿主机一样暴露在外部网络中了可能会造成安全隐患,如果是靶机的虚拟机一旦被俘获后果还是很严重的。

常用的三种模式进行比对:

首先桥接模式,很好的兼顾了主机与虚拟机、虚拟机访问外部网络的优势,但是缺点也是显而易见的那就是造成虚拟机暴露在外部环境中!

第二个NAT模式,只兼顾了虚拟机访问外部网络的优势,并且很好的保护了虚拟机不受外部网络的骚扰。但是缺点就是主机访问NAT模式的虚拟机非常麻烦需要做端口映射。

第三个Host-only模式,只兼顾了主机与虚拟机之间的通讯,并且很好的保护了虚拟机不会被外部网络所访问到。但是缺点更明显,就是虚拟机无法访问外部网络如果需要从外部网络下载一些文件使用尤为麻烦需要宿主机下载之后传给虚拟机。

看来上述的模式在主机&虚拟机、虚拟机访问外部网络、安全只能三选二。那么假如说我想全部占有的话建议给虚拟机设定两块网卡,一块是NAT模式让虚拟机自由访问外网并且隐藏虚拟机。第二块网卡做Host-only模式专门用于主机与虚拟机之间访问。

上述的设定virtualbox已经全部结束了,接下来我们要按照拓扑来创建虚拟机。不过新建虚拟机我就我在进行姥姥似的演讲了,如果不会创建建议看这里!创建好之后应该是这样的:

其中我把攻击机、靶机和honeynet创建完毕。靶机建议从网上下载VMDK的虚拟镜像,BT5的话在官网brcktrack-linux.org自行下载(准备好翻墙),蜜墙(honeywall)在https://projects.honeynet.org/honeywall/里面下载,在图片中SEED的ubuntu虚拟机我之前的实验放在NAT网络中用于查看honeywall流量情况!其实这个可以使用BT5代替,这样还能节约一些资源,是否安装看个人情况。

关于设置攻击机(BT5):

首先简单介绍一下BT5:

BT5只是安装了很多渗透程序的一个Linux发行版,如果想要极客一些更装B一些建议自行安装gentoo发行版来安装渗透程序。更有可能建议LFS编译安装linux自己做操作系统来作为攻击机都行!

接下来在安装BT5之前首先设定网络环境,右键机器找到设置,然后按照下图进行设置:

别忘了在存储这边记得将安装光盘塞入,不会?那么从最后看看honeywall是如何安装的,这个我会详细介绍!随后启动虚拟机安装完毕之后修改BT5网络…关于修改其实我真的是不想说,不过为了照顾新手朋友们(请看完本博客后去恶补如何使用shell、vim编辑器、等unix类操作系统的基本知识)。修改BT5网络可以通过命令startx开启图形界面修改(自己摸索吧)或者使用vim编辑配置文件修改:

ip addr show #查看网络使用的那块网卡?
vim /etc/network/interface #首先打开debian系发行版本的网络配置文件
allow-hotplug eth0 #找到使用的网卡该成下面这种
iface eth0 inet static #设置为静态设置IP地址
 address 192.168.1.5
 netmask 255.255.255.0
 gateway 192.168.1.1
 broadcast 192.168.1.255
 dns-nameservers 223.5.5.5 
#修改完毕之后wq退出。我感觉这句话我不该讲...
/etc/init.d/networking restart #重启网络,也可以service networking restart
ip addr show #再次查看网络看看地址是192.168.1.5?

如果都设置完毕,攻击机就算结束了!

关于设置靶机(ubuntu和windows server2003):

关于靶机我就一起讲掉了,修改网络啥的由于是ubuntu系统自行参考我是如何设定BT5网络的!好了下面贴出网络环境设定(两台靶机都一样设定):

随后设定IP地址….这个我就不详细说了…如果你windows设置网络都不会的话…

关于设置蜜墙(honeywall):

终于到了详细讨论的地方了,注意的是:honeywall官网给出的系统不能做不同网段的蜜罐主机监控!

首先贴出网络环境的设定,第一块网卡NAT模式、第二块为Host-only、第三块还是NAT模式:

这两个网络请点开高级,随后开启网卡的混杂模式选择仅虚拟电脑。记住请一定要打开网卡的混杂模式,否则会出现攻击机和靶机无法通讯的问题。那么这里见得的说一下网卡的混杂模式:处于混杂模式的网卡能够接受一切通过它连接共享通讯媒介的数据帧,不管这个数据是否给它的一概接受。如果打开了混杂模式虽然两个网络模式不同但是网段相同,两块网卡桥接,这样接受的信息会转发出去而不是当作不同网络而丢弃。随后将安装镜像添加上去即可!

接下来我们安装honeywall,安装Honeywall非常简单开机按下回车之后都是自动安装,honeywall搭载的是centos系统集合了一些蜜罐程序。

安装完毕之后就是配置了,首先需要登陆到root账号,不过root账号肯定无法直接登陆。先登陆roo用户密码为honey随后使用su -命令进入root账号密码也为honey!登陆进去之后会弹出honeywall的菜单界面,我们要对honeywall进行初始化!

首先选择第四个选项初始化honeywall:

 

首先会弹出对话框,全部选择yes然后看到这里有安装选项,选择默认即可。第三个是详细询问的安装不推荐使用,因为初始化完毕以后还是可以修改的!

初始化完毕以后请再次进入honeywall configuration里面去选择第一个更改后端蜜罐机器的地址网段等相关信息(就是靶机了)。

首先我们更改后端靶机的地址(Honeypot IP Address),记住蜜罐主机的网段必须是相同的!

我们将192.168.1.15&16添加进去,如果有多台靶机记得之间有空格!

随后更改第五个选项,更改广播地址,就使用192.168.1.255。

随后更改第六个选项,写好靶机所在的网段(也就是蜜墙所在的网段)。

这样我们就把靶机的相关内容设置完毕了,接下来我们在该菜单界面中选择保存并且退回上一级菜单!

接下来我们设置蜜墙的管理接口,选择configuration菜单中的第二个选项。

接下来我们需要设置管理接口的IP地址、掩码、广播地址、DNS设置一下让蜜墙访问互联网(你觉得有必要的话)、还有管理接口所在的网段!这里我就不一一细说了看上去很简单的样子,将下图打勾的内容自行设置。

随后我们设置Sebek,这个东西其实就是安装在靶机中的监控程序,分为server端和agent端agent安装在靶机上并收集攻击者的流量和操作并实时反馈给server端(类似于logstash将数据传给elasticsearch)官方网站在:http://projects.honeynet.org/sebek/不过使用这款工具不是今天的主题,当然设置还是需要的为了后面的实验!

首先社会Sebek的接收地址…看来我只能用管理地址了,由于etho&1作为类似交换机的交换口所以是没有地址的!进去之后首先选yes随后配置地址:

然后选择接受端口和数据包处理选项,测试使用全部默认即可!

随后使用攻击机或者其他在NAT网络中的其他主机访问蜜墙的管理地址来访问web界面,web界面其实是提供攻击者进出流量、agent收集到的数据给予展示的平台。默认使用443端口安全的https协议。不过这些其实都可以更改!我也推荐更改不过现在实验环境就别给自己找事了。

登陆进去之后需要填写账号和密码,默认账号是roo密码是honey!

进去之后会让你修改密码,需要有字母大小写、数字、符号组成否则不予通过。全部设置完毕进入主菜单,菜单就是一个监控界面可以选择你想看的数据流量。

接下来我们使用攻击机去ping一下linux靶机并且在蜜墙中使用tcpdump抓包工具看看情况!

然后大家也可以按照这个方法让靶机去ping攻击机,不过监听的网络网卡应该在eth1比较合适!这样就算将整个拓扑架构就算搞定了。

结语:

其实蜜墙的架构还是比较容易理解的,将eth0&1桥接并且作为无地址的交换网口让报文从eth0流入从eth1流出。相当于从路由器交给密墙并且通过eth1流出交给交换机然后链接到蜜罐主机。在这之间记录数据并存储到mysql中,通过LAM”P”平台将数据结果进行展示。当然如果需要更多的数据需要给靶机安装一个sebek,随后将收集到的详细数据交给sebek的server端口。

看来是整套概念还是比较好理解的,其实搭建一张蜜网可以自己动手按照这个思路进行搭建。不过对于咱这种初学者来说还是先熟悉一下别人写的程序比较好。

Comments

Leave a Reply

Your email address will not be published. Name and email are required