可以为你的虚拟蜜罐系统创建一个或多个配置文件。配置文件是一个纯文本文件,可以用任何文本编辑器来进行编辑。配置文件可以放在任何目录下,只要在命令行参数里进行说明。

在配置文件中,你设置的每个蜜罐系统配置都是一个模板. 你可以用一个模板来模拟一个单独的系统,也可以用多个Honeyd实例来模拟多台机器。所以配置文件定义了多个模板。

每个虚拟蜜罐都是由一系列的命令集合组成,这些命令参数集由一个模板名来标识。你还必须定义一个缺省的模板,哪些没有在其它模板里定义的数据包将由缺省模板来处理。尽管配置文件的内容可以按任何顺序排列,但在Honeyd.config文件中按下面推荐的顺序来排列更合乎逻辑:

  1. 缺省模板

  2. 模板1

  3. 模板2

  4. 模板3

现在看看创建模板的命令,看它们是如何组合在一起构成Honeyd.config文件的。在本节的结尾,我将给出模拟不同版本Windows操作系统的模板的例子。

配置Honeyd模板
每个模板都必须按顺序定义下面的参数。

· OS 特征 (模拟的IP堆栈)

· 绑定虚拟蜜罐的IP地址或地址段

· ICMP响应

· TCP端口响应

· UDP端口响应

· 系统变量

创建一个Honeyd 模板来模拟一个仿真的Windows操作系统并不是一件非常容易的事。但是Honeyd能灵活地进行定制。如果用下面的结构来产生模板相对就容易的多了:

Create <模板名>
ANNOTATE “” [NO] FINSCAN FRAGMENT
SET <模板名> PERSONALITY “”
BIND <IP address(es)> <模板名>
SET DEFAULT <模板名> TCP ACTION
SET DEFAULT <模板名> UDP ACTION
SET DEFAULT <模板名> ICMP ACTION
ADD <模板名> TCP PORT
SET <模板名> UPTIME
SET <模板名> DropRATE IN <%>
SET <模板名> UID [GID ]

注意
不要忘记加上缺省的模板来处理未定义的IP地址。

我们将对每一个项目都如上处理,然后把它们放在一起构成示例模板。

创建一个模板
首先,用Create命令创建每个模板。一个Honeyd实例可能包括一个或多个由Honeyd配置文件定义的模板。句法如下:

Create <模板名>

备注
Honeyd关键字并不是大小写敏感的,本书中用大写只是为了阅读的方便。

模板名是大小写敏感的,只要符合下面的规则,可以用任何字符:

· 不能用数字作首字符。

· 不能用空格或扩展的ASCII字符作首字符。

· 不能用保留字来命名。

缺省模板是一个特例,它定义了所有其它模板中没有定义的行为,句法如下:

Create DEFAULT <模板名>
许多Honeyd管理员仅仅输入Create DEFAULT,这将创建一个名为default 的缺省模板(事实上,缺省模板可以以任何名字来命名)。

增加个性化指令
正如你在第五章所看到的,所谓个性化(personality )是在Honeyd模板中模拟的操作系统IP堆栈仿真。个性化名称记录在Nmap.prints文件里。在最新版本的Nmap.prints文件里里有17种Windows版本可供模拟。如,Windows Server2003被命名为Windows .NET server。 这是因为微软在Windows Server 2003正式发布前一直是如此命名的。我们可以预期Nmap.prints文件会不断升级新版本。你自己加入新的个性化条目也是很简单的(看Nmap文档http://www.insecure.org/nmap/nmap_documentation.html)。

下面是一些常用的Windows版本:

· Windows 98

· Windows 2000 SP2

· Windows 2000/XP/ME

· Windows XP Pro

· Microsoft Windows.NET Enterprise Server (build 3615 beta)

申明一个特征项
将一个特征项运用到一个特定的模板之前,必须先申明它。申明一个定制的项决定了这个项目将到执行的特定动作。申明句法如下:

ANNOTATE “” [NO] FINSCAN

ANNOTATE “” FRAGMENT
FINSCAN 关键字告诉Honeyd,是否允许对模板的FIN端口扫描。如果是NO FINSCAN,则不响应对端口的FIN扫描。

早期的端口扫描是看特定的端口是否响应TCP SYN包。当一个TCP端口开放时,它会响应SYN包,作为三步握手的第二步,它将返回一个ACK-SYN包。如果TCP端口不存在,大多数的TCP/IP堆栈将返回一个RST包。按顺序对端口进行SYN扫描很容易就得到端口情况,并能避开防火墙或IDS报警系统。黑客会一开始就发送一个FIN包来代替SYN包,一个带FIN标志的包本意是告诉服务端关闭这个TCP联接,但是因为黑客一开始并没有建立这个联接,一个开放的TCP端口会发一个错误信息,而一个关闭的TCP端口则直接丢弃这个包而不做响应。早期的防火墙和IDS系统并不检查FIN扫描包,所以黑客的端口扫描并不触发系统的报警。

FRAGMENT关键字告诉Honeyd如何重组TCP/IP包的碎片。 Drop关键字指示丢弃所有的碎片包。OLD和NEW关键字指示如何处理重复的碎片包。黑客常常人为给TCP/IP包分包,然后在目标主机上重组,一个碎片包可能包括了另外一个包上的数据,这样可以避开过滤设备(如防火墙)到达主机,在主机上重组后执行恶意代码。当碎片包有重复冲突时,Honeyd默认是用较老的包覆盖较新的包。

注意
因为Honeyd Win32端口上的一个Bug,一个无规则的碎片包会引起Honeyd死锁。

幸运的是, ANNOTATE 关键字可以被用来不具体指定如何处理碎片包和FIN端口扫描。这是一个例子:

ANNOTATE “Windows 2000 SP2″
个性化项列表名称包括在一个双引号包括的范围里,它是大小写敏感的,并且必须与Nmap.prints文件里的名称匹配。所有的ANNOTATE命令都被列在Honeyd配置文件的开头(参见随后的例子,表6-4),这样能很容易看到定义的所有的个性化项。

将一个个性化项关联到模板
SET命令可让一个OS特征项关联到模板:

SET <模板名> PERSONALITY “<特征项名称>”
下面的句法设置了一个Windows 2000特征项:

SET Windows 2000 PERSONALITY “Windows 2000 SP2″
绑定一个或多个IP到模板的句法如下:

BIND <IP地址(段)> <模板名>
例如, 可将10.0.0.1绑定到Windows 2000模板:

BIND 10.0.0.1 Windows 2000
如果一个IP没有被绑定到蜜罐的某个模板上,则将由缺省模板来响应提求。

增加端口说明
随后,需要创建并增加一个端口和服务到模板上。参考第三章中的建议,你应该让你的蜜罐模拟出一个典型的Windows系统提供的端口服务。Honeyd能定义ICMP, TCP,和UDP各个端口的开放、阻止或重启(关闭)状态。

定义缺省的端口状态
首先定义缺省的端口状态。句法如下:

SET DEFAULT <模板名> <协议类型> ACTION <活动状态>
对TCP和UDP刺探行为的缺省响应的重启,对ICMP协议则为开放。所以一个典型的Windows机器将有下面的缺省端口响应:

SET DEFAULT <模板名> ICMP ACTION OPEN
SET DEFAULT <模板名> TCP ACTION RESET
SET DEFAULT <模板名> UDP ACTION RESET

备注
WinXP SP2自带的防火墙(原ICF)是默认打开的。它将阻止一切未授权的进出流量。

不要忘记为缺省模板创建缺省活动。例如,如果缺省模板叫default,示例如下:

SET DEFAULT default ICMP ACTION OPEN
SET DEFAULT default TCP ACTION RESET
SET DEFAULT default UDP ACTION RESET
增加端口
加完缺省端口后,就得增加特定行为的端口了,如下示例:

ADD <模板名> <协议类型> PORT <端口号> <活动状态>
例如, 如果你要模拟一个Windows Server 2003 服务器,你可以开放和关闭下面的端口:

ADD <模板名> UDP PORT 135 BLOCK
ADD <模板名> UDP PORT 137 BLOCK
ADD <模板名> UDP PORT 138 BLOCK
ADD <模板名> UDP PORT 389 BLOCK
ADD <模板名> UDP PORT 445 BLOCK
ADD <模板名> UDP PORT 500 OPEN
ADD <模板名> UDP PORT 4500 OPEN
ADD <模板名> TCP PORT 25 OPEN
ADD <模板名> TCP PORT 80 OPEN
ADD <模板名> TCP PORT 88 OPEN
ADD <模板名> TCP PORT 110 OPEN
ADD <模板名> TCP PORT 119 OPEN
ADD <模板名> TCP PORT 135 BLOCK
ADD <模板名> TCP PORT 137 BLOCK
ADD <模板名> TCP PORT 139 BLOCK
ADD <模板名> TCP PORT 143 OPEN
ADD <模板名> TCP PORT 443 OPEN
ADD <模板名> TCP PORT 445 BLOCK
ADD <模板名> TCP PORT 593 OPEN
ADD <模板名> TCP PORT 3389 OPEN

提示
阻止特定的端口,特别是135、137-139,会使你的蜜罐看起来更真实。当黑客预期一个Exchange服务器在防火墙后面时,阻止一个端口而不是关闭它更合理一些。我总是让足够的端口开放,来引诱黑客。

定义开放和关闭的端口是模板中主要的内容。你必须仔细考虑哪些端口定义哪些状态。例如,尽管我建议你阻止135、137-139端口,但如果你对捕获RPC类恶意行为有兴趣,你当然得打开135端口。同理,可以考虑随机开放几个在1023到2000之间的TCP和UDP端口,因为真实Windows系统常常有一些RPC的侦听在这个范围内建立。最主要是的,你的蜜罐配置是为了你的目的服务的。第八章中你能看到其它基于Windows的蜜罐软件,并不是所有的软件都有相同的可扩展性。

增加服务脚本
为了让你的蜜罐更真实,你可以为不同的端口增加不同的响应函数。而不是简单地打开、关闭和重启端口。举例来说,一个带Exchange服务的IIS服务器,能接受对公共邮件端口的Telnet申请(端口25, 110, 119, 和143),也能接受浏览器对80和443端口的访问。在第七章,你将看到如何建立一个服务脚本。现在我们只考虑如何配置它,句法如下:

ADD <模板名> <协议类型> PORT <端口号> “<要调用的脚本引擎> <脚本文件>”
例如:

ADD <模板名> TCP PORT 25 “sh c:Honeydscriptssmtp.sh”
ADD <模板名> TCP PORT 80 “cscript.exe c:Honeydscriptsiis6.cs”
ADD <模板名> TCP PORT 110 “sh c:Honeydscriptspop.sh”
ADD <模板名> TCP PORT 119 “perl.exe c:Honeydscriptsnntp.pl”
ADD <模板名> TCP PORT 143 “wscript.exe c:Honeydscriptsimap.vbs”
ADD <模板名> TCP PORT 443 “sh c:Honeydscriptsssl.sh”
增加代理
有时,当你需要将入侵者的刺探从交互性比较低的蜜罐转移到交互性比较高的真实系统时,你可以用代理。例如,你可以需要让黑客得到真正的FTP服务或DNS服务。这两个服务用脚本都很难实现,如果你有一个服务器能为黑客安全地提供这两个服务,为什么不用它呢?这会让你的蜜罐看起来更真实。代理的句法如下:

ADD <模板名> <协议类型> PORT <端口号> PROXY <真实服务器IP和端口号>
例如:

ADD <模板名> TCP PORT 21 PROXY 66.45.57.103:21
ADD <模板名> TCP PORT 53 PROXY 10.0.0.2:53
设置系统变量
Honeyd允许你设置更多的系统变量让你的模板看起来更真实:

· UPTIME: 系统重启时间隔的秒数:

SET <模板名> UPTIME <秒数>
· DropRATE: 如果使用, DropRATE IN 将按一定比率丢包,用来模拟一个繁忙的网络:

SET <模板名> DropRATE IN <%>
· UID 和 GID: 虚拟机的统一标识符:

SET <模板名> UID <数字> [GID <数字>]
例如:

SET <模板名> UPTIME 2248020
SET <模板名> DropRATE IN 0.005
SET <模板名> UID 20208 GID 13876

honeyd模拟一个网络

网络拓扑如图:
这个拓扑的配置文件

route entry 172.31.0.100 network 172.31.0.0/16
route 172.31.0.100 link 172.31.0.0/24route 172.31.0.100 add net 172.31.1.0/24  172.31.1.100
route 172.31.1.100 link 172.31.1.0/24create windows
set windows personality "Microsoft Windows NT 4.0 SP3"
set windows default tcp action reset
set windows tcp port  80 open
set windows tcp port  25 open
set windows tcp port  21 opencreate router
set router personality "Cisco 7206 running IOS 11.1(24)"
set router default tcp action reset
add router tcp port 23 "Script/router-telnet.pl"bind 172.31.0.100 router
bind 172.31.1.100 routerbind 172.31.0.20 windows
bind 172.31.0.30 windows
bind 172.31.1.15 windows
bind 173.31.1.16 windows

honeyd模板配置文件的建立相关推荐

  1. phpcms入门模板配置文件修改

    首先,下载安装,这里看官方的指导就行了,没必要介绍了,安装完毕后: 找到phpcms根目录下的phpcms/templete进入 =>将defualt文件夹复制一份在该目录,改名(一个随意的名字 ...

  2. WEB程序打包详解:(连接SQL2005数据库,修改配置文件,建立虚拟目录)

    做了一个web的打包程序,和大家分享一下. 第一步:新建--文件--项目,弹出对话框 如图,选择安装和部署--安装项目 这里要解释一下了,一般来说,制作web安装程序选择web安装项目,而我没有选择w ...

  3. 3--cad模板文件的建立方法

    转载于:https://www.cnblogs.com/dylanfire/archive/2012/11/20/2778390.html

  4. HDHCMS模板建立与栏目绑定的方法

    HDHCMS为了更好的配合前端人员建站,开发了一套独特栏目设置与管理的功能,网站栏目的设置区分频道.栏目两级,内容一级,另外在栏目下还可以新建继承栏目模型的子栏目一级,总的来说就是三级栏目与一级内容页 ...

  5. DHCP常用配置文件解析

    2019独角兽企业重金招聘Python工程师标准>>> 本文对DHCP安装过程中常见的几个文件做详细解析.具体解析如下: /etc/dhcpd.conf 这个是DHCP服务器的主配置 ...

  6. 使用.Net Core CLI命令dotnet new创建自定义模板

    文章起源来自一篇博客:使用 .NET CORE 创建 项目模板,模板项目,Template - DeepThought - 博客园 之前使用Abp的时候就很认同Abp创建模板项目的方式.想不到.Net ...

  7. 13、app.json - 小程序端配置文件 - 微擎小程序模块应用开发

    app.json 配置文件,建立几个对应的功能页面 {"pages": ["sx_haodian/pages/index/index","sx_hao ...

  8. 征婚网站php免费源码,php交友网站系统正式版php征婚网站模板

    后台管理文件夹:http://jyadmin.wrzc.net/,管理员帐号:admin,密码:admin 运行本程序,需要你的主机或者虚拟主机配置有php+mysql+zend optimizer的 ...

  9. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

最新文章

  1. atlas单机模式代码_用代码玩太无聊,这样玩海盗游戏《ATLAS》单机模式才是正确玩法...
  2. 定义根目录, window格式 转化为linux格式
  3. spring 涉及到注解说明
  4. 【PP生产订单】收货Goods Receipt
  5. oracle 布尔盲注,Oracle基于延时的盲注总结
  6. java 集成 kafka 0.8.2.1 适配jdk1.6
  7. openwrt 编译时提示缺少libstdc++,libpthread.so.0文件
  8. 负载均衡会话保持技术、原理、产品(以F5为例)
  9. 沉默十个月 前锤子科技副总裁发声:坚持为粉丝做手机
  10. 维密天使糖糖传授自拍秘籍,最满意自拍来自OPPO R11s
  11. define和typedef区别
  12. python 怎么把 写好的代码 放到服务器执行_给 Python 初学者解答了无数遍的 Python 环境相关问题...
  13. [HTML+CSS]电商网站模板
  14. Little_Women6.txt
  15. 微信支付中xml和map互转
  16. 实验:JS判断浏览器中英文版本
  17. android拍照并剪辑
  18. 微信改版,“内容+服务”成为王道?
  19. 【Git】如何修改本地仓库的用户名和邮箱
  20. 本地登录切断远程连接的简单方法

热门文章

  1. 音视频SDK开发包涉及的技术要求
  2. 上级对下级用通知合适吗_通知书之上级对下级的通知
  3. NXP EMDA学习(2):串口eDMA接收和发送流程详解
  4. 【Seq2Seq】Attention is All You Need
  5. 2022年小美赛思路合集/2022年认证杯思路
  6. LADP 启用SSL开启636端口,实现第三方集成
  7. 使用auto.js实现自动化每日打卡
  8. office三件套与mathtype的安装和导入word
  9. 警惕AI换脸技术:近期诈骗事件揭示的惊人真相
  10. 通过Python的fitz库提取pdf中的图片