cygwin搭建蜜罐实例

前言:最近很霉,三台服务器都坏了,不能玩Jail了,刚好最近又想编译些B socket的程序,装个cygwin吧,无意中发现其有daemon功能还不错,恰好可以用来做个蜜罐,虽然在功能上比不上Jail,不过还有些“异曲同工”之妙吧,相信可以满足一部分在winnt下又想玩Jail的朋友吧...本人水平有限,写得也不好,希望各位能指出其中的错处,谢谢:)......

一直以为cygwin只是用来在WIN下编译一些程序,打造个SHELL的虚拟运行环境而已。但最近发现其实它还能够完成一些蜜罐的功能。下面是我所写的一些实验笔记,相信是会有一定的错漏的,希望各位能替我指出:)。

实验目的:在单主机下做一个轻量的(占少量系统资源的)又能提供正常服务、再者在准备“牺牲”或已经“牺牲”的前提下不会影响本地HOST OS运作稳定性与分析能力的蜜罐系统。

实验环境:
硬件环境:CPU C900 - 128MB RAM - 40GB HARDDISK
软件环境:HOST OS WIN2000 PRO - GUEST OS CYGWIN_NT 5.0 i686

在本地机上安装cygwin。
cygwin安装程序: http:// down.315safe.com/cygwin_setup.rar

安装过程(下面只记录比较重要的步骤的截图,不重要的就...:P):

因为我们本身没有cygwin的release,所以只好选择“Install from Internet”了。

选择cygwin基本属性。

选择安装release的下载路径。

选择直接下载(PS:当然,如果你是用代理的话就要...)。

这里随便选个下载地址吧(纳闷,中国就是没有这东西的镜像网站)...

这一步是下载Packages列表。

出来了...

注意我们这次实验的重点,打开Category为Net的列表。找到我们要的东西了吧?什么apache、nfs、proftpd的...装上它们(最好把inetd和xinetd也装上,方便以后用它们来实验嘛...)。选择安装的步骤是:看看New的那一列,凡在那一列的值为Skip的都是没有被选定安装的,单击一下那个Skip就可以切换了;如果是Keep的话就是已经选定安装的了。切换时要注意版本号,尽量选择新一点的版本吧(PS:其实这点随你喜欢吧:P)。接下来按“下一步”就可以了...

后面的步骤比较简单,主要都是在漫长的在线安装过程中等待吧...因此我就不多说了...

配置过程。
首先我们需要启动cygwin默认的bash,是不是又可以看到那熟悉的SHELL界面了呢?:P...首先要确定你要做“蜜罐服务”,这里我们用Apache来满足一下渗透者和服务使用者的需求吧。

首先编辑httpd.conf。
$vi /etc/apache/httpd.conf

编辑其中的所需要的关键字(如:DocumentRoot等)。这些就不用我多做介绍了吧(PS:详细点的配置文档可以在 http://fanqiang.chinaunix.net/a6/b1/index.html 中找到)?

:wq保存设置(偶比较懒,只改了其中三-四项...:P);然后:
$cd /usr/sbin
$apachectl start
大功告成了...
$netstat -an|grep "80"
没错吧?

善后/安全性问题。

1)“蜜罐服务”崩溃问题:像上例中的httpd服务是跑在父进程bash(cygwin的主进程)下的,因此不必担心其因为出现服务异常崩溃或被故意攻击(溢出、拒绝服务攻击等因数)而影响到 HOSTOS的正常运作。就算对方针对cygwin下的httpd进行溢出最多也只能得到其父进程下的SHELL(就算是ROOTSHELL,也只能跑在cygwin本身的物理路径下,这点的确与JAIL非常相似),而不会对本地NT系统造成任何影响,这个就是制造一个基于单主机的蜜罐的前提条件了。

2)帐号信息泄露问题:CYGWIN下SHELL的确有很多依赖HOST OS(这里指的是我的那台NT系统)的地方,如NIC接口、帐号模块等等(这点可能是它的缺点吧,也可能因为这样它占用HOST OS的资源才那么的小)。听到这里你可能会担心共享的帐号模块导致帐号信息泄露问题。我粗略地查看了一个,BASH里面是没有/etc/shadow文件的,且/etc/passwd也不会带来多大的泄露,不过还是可以通过它找到HOST OS的帐号名列表,建议把那些没必要的帐号信息都删掉。至于passwd命令,我配合su测试了N次都是不能正常工作的...(PS:可能是我水平有限吧:P),大伙可以放心了吧?!

3)服务日志查询问题:蜜罐的事后日志查询功能是非常重要的,通过它我们才可以了解到骇客究竟想干什么,曾经干过些什么。如果你没有修改/etc/apache/httpd.conf中关于日志输出的关键字的话,它默认是在/var/log/apache/下的,分别是access_log和error_log,你只要用cat翻查一下(再或者加个管道符号与grep等等)就可以得到自己想知道的信息了...

4)其它注意事项:因为怎么说CYGWIN也只是一个虚拟的SHELL,所以它和正常的SHELL还是有点不同的,可能因此会给心细的骇客们一些不必要的提示吧。上面只是介绍了最常用的APACHE,其实你还可以使用其他的服务或者配合inetd与xinetd打造其他的“蜜罐服务”。还有一点是值得注意的,我已经说过任何在其SHELL下跑的daemon都是依赖父进程bash而存在的,因此一但你在HOST OS中关闭了bash进程的话,所有在cygwin下跑的服务都会被自动杀死的,所以如果你想保住你的“蜜罐”一直都ONLINE的话最好就不要关掉那个“可爱”的SHELL窗口。

Published At
Categories with 网络技术
comments powered by Disqus