虚拟蜜罐honeyd安装使用

32 篇文章 0 订阅
26 篇文章 0 订阅

来自:http://blog.163.com/guotao_163/blog/static/23682822010111001322409/

 

1honeyd 的技术背景

honeyd 是由 google 的软件工程师 Niels Provos 2003 年推出的一个 GPL 开源软件。它本身以 daemon 的方式,运行在 linux 操作系统上,可用来虚拟出大量的虚拟"主机",每台虚拟"主机"又可以被配置成安装了 Windows 或类 UNIXLinux 或是 AIX)等操作系统,当然 honeyd 不是提供真实的操作系统,只是提供一些操作系统的特征。虚拟"主机"上还可以运行各种各样的网络服务 , ssh, http,或是用户自己编写的特殊虚拟服务。根据 honeyd 的介绍文档所著,honeyd 被测试可以在一台物理机上模拟 65536 台虚拟"主机"及其服务。目前 honeyd 的版本为 1.5c。在 windows 平台上,Mike Davis 提供了一个基于 honeyd 0.5 的移植版本。

 

2honeyd 的安装以及虚拟网络的配置

 

2.1Honeyd 的安装

Honeyd 支持如下多种平台:基于 BSDBerkeley Software Distribution)的 UNIX 系统、GNU/Linux 系统以及 Solaris 系统。目前 Honeyd 的最新版本是 1.5cHoneyd软件依赖于Libevent事件处理APILibdnet数据包构造与发送库、Libpcap数据包捕获库、Libdnsres DNS反向解析函数库以及Arpd工具。

下面分别介绍一下各个库的作用
libevent
:是一个非同步事件通知(Asynchronous Event Notification)的函数库。通过使用 libevent,开发人员可以设定某些事件发生时所执行的函数,可以代替以往程序所使用的循环检查。该程序库的官方网站是http://www.monkey.org/~provos/libevent


Libdnet
:是一个提供了跨平台的网络相关 APIApplication Programming Interface)的函数库(主要是较底层的网络操作),包括 arp 缓存,路由表查询,IP 包及物理帧的传输等。官方网站是 http://libdnet.sourceforge.net


Libpcap
:是一个数据包捕获(Packet Sniffing)的函数库,大多数网络软件都以它为基础。官方网站是http://sourceforge.net/projects/libpcap

 

arpd:      在运行 honeyd 之前,需要保证 honeyd 的主机对配置的 honeypot ip 做出 arp 请求的应答。可以通过运行 arpd 软件来做出 arp 应答。arpd 将对指定的 IP 地址范围内未使用的 IP honeyd 主机的 MAC 地址做出 arp 应答。 下载地址:http://www.citi.umich.edu/u/provos/honeyd/arpd-0.2.tar.gz 

 

Honeyd 的安装过程,采用的操作系统平台为 RHEL 5.3Red Hat Enterprise Linux Server release 5.3x86 32 位版。Honeyd 在其他操作系统上的安装与 RHEL5.3 非常类似,在安装其他平台时也可按本文所介绍的进行安装。

在安装 Honeyd 之前,先安装依赖库。RHEL 5.3 的默认安装中已经包括 libevent,但是这个版本较旧,不能支持 Honeyd,需要手工安装新的版本。从官方网站下载 1.4.14 稳定版本,文件名为 libevent-1.4.14b-stable.tar.gz。(因为安装过程中需要编译 C 语言代码,所以需要事先在 RHEL 5.3 上安装好 C 语言编译器)

 tar –vzxf libevent-1.4.14b-stable.tar.gz

 cd libevent-1.4.14b-stable

 ./configure

 make

 make isntall

 

libevent 会被安装在 /usr/local/lib 目录下:
 [root@linux ~]# ls /usr/local/lib |grep libevent
libevent-1.4.so.2
libevent-1.4.so.2.2.0
libevent.a
libevent_core-1.4.so.2
libevent_core-1.4.so.2.2.0
libevent_core.a
libevent_core.la
libevent_core.so
libevent_extra-1.4.so.2
libevent_extra-1.4.so.2.2.0
libevent_extra.a
libevent_extra.la
libevent_extra.so

RHEL 5.3 的默认安装中没有包括 libdnet,需要手工安装。RHEL 5.3 安装光盘中并没有包括 libdnet RPM 格式安装包,我们需要自己下载源代码并且编译安装。下载地址:http://libdnet.sourceforge.net/,下载后的文件名为 libdnet-1.11.tar.gz

 tar -zxf libdnet-1.11.tar.gz

 cd libdnet-1.11

 ./configure

 make

 make install

ln -s /usr/local/lib/libnet.1 /lib/libnet.1

 

libdnet 会被安装在 /usr/local/lib 目录下:

[root@linux opt]# ls /usr/local/lib |grep libdnet
libdnet
libdnet.1
libdnet.1.0.1
libdnet.a
libdnet.la

RHEL 5.3 的默认安装中已经包括 libpcap。查询命令 rpm -qa | grep libpcap

[root@linux opt]# rpm -qa|grep libpcap
libpcap-0.9.4-14.el5
libpcap-devel-0.9.4-14.el5

Honeyd 编译过程中还会用到 libpcap-devel需要安装好。RHEL 5.3 的发行光盘中包括这个 RPM 包,直接安装即可。

 

Libdnsres库:(依赖于pcreRHEL5.3中自带pcre-6.6-2.el5_1.7
[root@linux opt]# rpm -qa|grep pcre
pcre-6.6-2.el5_1.7

tar xvzf libdnsres-0.1a.tar.gz

cd libdnsres-0.1a

./configure

make

make install

[root@linux opt]# ls /usr/local/lib |grep libdnsres
libdnsres.a
libdnsres.la
libdnsres.so
libdnsres.so.0
libdnsres.so.0.0.1

Arpd安装:
tar -zxf arpd-0.2.tar.gz
cd arpd
./configure
make
make install
注:手动修改arpd.c中的268/285/294,295/297/426,427行,将__FUNCTION__作为syslog函数的一个参数,在引号内字符串内容前加%s  

问题一:

如果在RHEL5.3系统下安装honeyd时,相关库包arpd-0.2,在编译时,编译通不过,报告如下错误:
cd '/usr/local/lib/arpd' && gmake -k 'arpd.o'
正在编译 arpd.c (gcc)
arpd.c: In function ‘arpd_send’:
arpd.c:269:
错误:expected ‘)’ before string constant
arpd.c: In function ‘arpd_lookup’:
arpd.c:286:
错误:expected ‘)’ before string constant
arpd.c:295:
错误:expected ‘)’ before string constant
arpd.c:298:
错误:expected ‘)’ before string constant
arpd.c: In function ‘arpd_recv_cb’:
arpd.c:427:
错误:expected ‘)’ before string constant
gmake: *** [arpd.o]
错误 1
***
退出状态:2 ***
(这是在KDevelog工具中编译的结果)

解决方法:
   
arpd.c文件首部加上#define __FUNCTION__ ""语句

原因分析:
syslog(LOG_DEBUG, __FUNCTION__ ": no entry for %s",addr_ntoa(addr));
函数中常量__FUNCTION__为预定义,该函数是操作系统中的库函数,你可以在/usr/include/sys/中找到syslog.h头文件中有它的定义,具体定义如下:
extern void syslog (int __pri, __const char *__fmt, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));

 

问题二: 

arpd包编译成功后,连接生成arpd二进制程序,在linux下运行时,出现如下错误:
[root@linux lib]# arpd 
./arpd/arpd: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

解决方法:
方法一:直接把libevent-1.4.so.2文件拷贝到系统指定的/usr/lib库文件目录中。或者做符合连接 

#ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
方法二:设置/etc/ld.so.conf文件,编辑该文件,在文件中加入libevent-1.4.so.2所在的目录,保存后退出。需要注意的是,每次改动ld.so.conf之后需要运行ldconfing来确认刷新。

原因分析:
arpd
运行时,需要libevent库的支持,所以在运行arpd前,要先编译好libevent包,并把产生的libevent-1.4.so.2文件拷贝到系统默认的库文件目录下,以便arpd运行时能够连接到。

 

现在开始安装 HoneydHoneyd 同样没有提供诸如 RPM 格式的安装包,需要下载源代码并且编译、安装。下载地址:http://www.honeyd.org/release.php,目前最新版本为 1.5c,下载后文件名为 honeyd-1.5c.tar.gz

 tar -zxf honeyd-1.5c.tar.gz

 cd honeyd-1.5c

 ./configure

 make

 make install

 

Honeyd 在默认情况下会被安装在 /usr/local/bin 目录下。

2.2 Honeyd的简单配置使用

Honeyd 的命令格式如下: 
       honeyd [-dP] [-l logfile] [-s servicelog] [-p fingerprints] [-0 p0f-file] [-x xprobe]
                    [-a assoc] [-f file] [-i interface] [-u uid] [-g gid]
                    [--webserver-address address] [--webserver-port port]
                    [--webserver-root path] [--rrdtool-path path]
                    [--disable-webserver] [--disable-update] [--verify-config]
                    [--fix-webserver-permissions] [-V|--version] [-h|--help] [--include-dir]
                    [--data-dir] [net ...]

各选项的含义如下: 
       -d
:非守护程序的形式,允许冗长的调试信息。

-P :在一些系统中,pcap 不能通过 select(2)来获得事件通知是不可能的,在这种情况下,honeyd 需要在轮训模式下工作,这个标志位是使论询位有效的。 
       -l logfile
:对日志包和日志文件的连接是被日志文件指定的。

-s servicelog:将honeyd记录的服务层日志写入到指定的服务日志文件中。

-x xprobe:读 xprobe 类型的指纹,这个文件决定了 honeyd 如何响应 ICMP 指纹工具。

-a assoc:读联系 nmap 风格指纹和 xprobe 指纹风格的文件。

-f file:读取名为 file 的配置文件。

-i interface:指定侦听的接口,可以指定多个接口。

[ V|--version:打印出版本信息同时退出。

-include-dir:用作插件开发,指定 honeyd 存贮它的头文件的位置。

[--webserver-address address] [--webserver-port port] [--webserver-root path] [--rrdtool-path path] [--fix-webserver-permissions]指定Honeyd软件内建Web服务的地址、端口和根目录,以及Web服务依赖的RRDTool的位置,--fix-webserver-permissions修正Web目录权限设置导致网页不可读取问题。

net:指定IP地址或者网络或者IP地址范围,如果没有指定,honeyd将监视它能看见的任何IP地址的流量。

 

Honeyd软件宿主主机上运行arpd绑定同一网段中某个空闲IP地址,然后运行Honeyd软件在此空闲IP地址上构建虚拟蜜罐。
[root@linux opt]#arpd 192.168.100.5

[root@linux opt]#mkdir /var/log/honeyd
[root@linux opt]#touch /var/log/honeyd/honeyd.log
[root@linux opt]#touch /var/log/honeyd/service.log
[root@linux opt]#chown nobody.nobody /var/log/honeyd/*.log
[root@linux opt]# ll /var/log/honeyd
总计 8
-rw-r--r-- 1 nobody nobody 2617 12-09 17:44 honeyd.log
-rw-r--r-- 1 nobody nobody  102 12-09 17:44 service.log


[root@linux honeyd-1.5c]# honeyd -d -l /var/log/honeyd/honeyd.log -s /var/log/honeyd/service.log --fix-webserver-permissions 192.168.100.100
Honeyd V1.5c Copyright (c) 2002-2007 Niels Provos
honeyd[20090]: started with -d -l /var/log/honeyd/honeyd.log -s /var/log/honeyd/service.log --fix-webserver-permissions 192.168.100.100
Warning: Impossible SI range in Class fingerprint "IBM OS/400 V4R2M0"
Warning: Impossible SI range in Class fingerprint "Microsoft Windows NT 4.0 SP3"
honeyd[20090]: listening promiscuously on eth0: (arp or ip proto 47 or (udp and src port 67 and dst port 68) or (ip and (host 192.168.100.100))) and not ether src 00:0c:29:51:b7:f3
honeyd[20090]: Demoting process privileges to uid 99, gid 99
honeyd[20090]: update_check: failed to resolve host.
honeyd[20090]: Sending ICMP Echo Reply: 192.168.100.100 -> 192.168.100.1
honeyd[20090]: Sending ICMP Echo Reply: 192.168.100.100 -> 192.168.100.1
honeyd[20090]: Sending ICMP Echo Reply: 192.168.100.100 -> 192.168.100.1
honeyd[20090]: Sending ICMP Echo Reply: 192.168.100.100 -> 192.168.100.1

注意: 

如果出现configure: error: need either libedit or libreadline; install one of them

[root@linux opt]# rpm -qa|grep readline
readline-5.1-1.1
readline-devel-5.1-1.1

解决方法:安装readline-devel软件包。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kali Linux 是一款专门用于渗透测试和安全审计的操作系统,它集成了许多常用的安全工具和软件。如果你想在 Kali Linux 上搭建蜜罐虚拟 WEB 服务,可以按照以下步骤进行: 1. 安装虚拟化软件,如 VirtualBox 或 VMware。 2. 创建一个虚拟机,并安装 Linux 操作系统,如 Ubuntu 或 Debian。 3. 在虚拟机中安装 WEB 服务器软件,如 Apache 或 Nginx。可以使用如下命令安装: ``` sudo apt-get update sudo apt-get install apache2 ``` 4. 部署一些常见的漏洞或弱点,如 SQL 注入、文件包含、文件上传等。可以在网上搜索一些漏洞测试平台的代码,并将其部署到 WEB 服务器中。 5. 安装并配置蜜罐软件,如 Honeyd、Kippo、Dionaea 等。可以使用如下命令安装 Honeyd: ``` sudo apt-get install honeyd ``` 安装后,需要配置 Honeyd 的配置文件,以模拟其他服务或设备,如下所示: ``` create default listen 192.168.1.100 http { banner "Apache/2.2.22 (Ubuntu) Server at 192.168.1.100 Port 80\n"; } ``` 上述配置将 Honeyd 模拟成一台运行 Apache 的服务器,并将其监听在 192.168.1.100 的 80 端口上。 6. 启动蜜罐软件,并等待攻击者的攻击。攻击者攻击蜜罐时,蜜罐会记录下攻击者的攻击行为,可供安全人员进行分析和研究。 需要注意的是,在搭建蜜罐虚拟 WEB 服务时,需要注意安全问题,如设置防火墙、加强访问控制等,以防止蜜罐被攻击者用于攻击其他网络设备。同时,需要定期检查和更新蜜罐软件和操作系统,以保证蜜罐的可靠性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值