linux实现蜜罐系统honeyd

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

Honeyd 是一款非常优秀的开源虚拟蜜罐软件,由 Google 公司软件工程师 Niels Provos

于 2003 年开始研发,2005 年发布v1.0 正式版,目前已发布了 v1.5b。

Honeyd能让一台主机在一个模拟的局域网环境中配有多个地址(曾测试过的最多可以

达到65536个),外界的主机可以对虚拟的蜜罐主机进行ping、traceroute等网络操作,虚拟

主机上任何类型的服务都可以依照一个简单的配置文件进行模拟,也可以为真实主机的服务

提供代理。

Honeyd可以通过提供威胁检测与评估机制来提高计算机系统的安全性,也可以通过将

真实系统隐藏在虚拟系统中来阻止外来的攻击者。因为Honeyd只能进行网络级的模拟,不

能提供真实的交互环境,能获取的有价值的攻击者的信息比较有限,所以Honeyd所模拟的

蜜罐系统常常是作为真实应用的网络中转移攻击者目标的设施,或者是与其他高交互的蜜罐

系统一起部署,组成功能强大但花费又相对较少的网络攻击信息收集系统


实验环境

centos-5.5


实验软件

gcc  gcc-c++ pcre


libevent-1.3c.tar.gz

libdnet-1.11.tar.gz

libdnsres-0.1a.tar.gz

arpd-0.2.tar.gz

libpcap-1.1.1.tar.gz

honeyd-1.5c.tar.gz


软件安装

tar zxvf libevent-1.4.14b-stable.tar.gz

cd libevent-1.4.14b-stable

./configure

make

make install


tar zxvf libdnet-1.11.tar.gz

cd libdnet-1.11

./configure

make

make install

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


tar zxvf libpcap-1.1.1.tar.gz

cd libpcap-1.1.1

./configure

make

make install


tar zxvf libdnsres-0.1a.tar.gz

cd libdnsres-0.1a

./configure

make

make install


tar zxvf arpd-0.2.tar.gz

cd arpd

vim arpd.c


添加 35#define __FUNCTION__ ""


./configure

make

make install


tar zxvf honeyd-1.5c.tar.gz

cd honeyd-1.5c

./configure

make

make install

如果在安装过程中没有报错,证明安装正确。如果敲击honeyd

Honeyd V1.5c Copyright (c) 2002-2007 Niels Provos

honeyd[776]: started with

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[776]: listening promiscuously on eth0: (arp or ip proto 47 or (udp and src port 67 and dst port 68) or (ip )) and not ether src 00:0c:29:2f:29:e3

Honeyd starting as background process  证明honeyd安装成功


验证

服务端 centos5.5+honeyd  192.168.0.102

客户端  windowsxp        192.168.0.103

实现目的:客户端(windows xp,开启不断ping操作,测试服务端蜜罐效果)

arpd 192.168.0.103    绑定攻击源ip

arpd: error while loading shared libraries: libpcap.so.1: cannot open shared object file:No such file or directory

解决办法

cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

echo "/usr/local/lib" >> /etc/ld.so.conf

ldconfig

arp  192.168.0.103       绑定成功

Address                  HWtype  HWaddress           Flags Mask            Iface

192.168.0.103            ether   00:0C:29:E1:7C:52   C                     eth0

mkdir /var/log/honeyd

touch /var/log/honeyd/honeyd.log                     存放日志文件

touch /var/log/honeyd/service.log                    存放系统日志文件

chown -R nobody:nobody /var/log/honeyd/*.log         更改权限

ll /var/log/honeyd/                                  查看权限

total 0

-rw-r--r-- 1 nobody nobody 0 Aug  6 09:37 honeyd.log

-rw-r--r-- 1 nobody nobody 0 Aug  6 09:38 service.log


使用说明

-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  指定侦听的接口,可以指定多个接口。
--version     打印出版本信息同时退出。
-include-dir  用作插件开发,指定 honeyd 存贮它的头文件的位置

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

[--webserver-address address]

[--webserver-port port]

[--webserver-root path]

[--rrdtool-path path]

[--fix-webserver-permissions]

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

honeyd -d -l /var/log/honeyd/honeyd.log -s /var/log/honeyd/service.log --fix-webserver-permissions 192.168.0.103          192.168.0.103为攻击者的ip

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[816]: 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.0.103))) and not ether src 00:0c:29:2f:29:e3

honeyd[816]: Demoting process privileges to uid 99, gid 99

honeyd[816]: Connection to closed port: udp (192.168.0.103:138 - 192.168.0.255:138)

honeyd[816]: Connection to closed port: udp (192.168.0.103:138 - 192.168.0.255:138)



less /var/log/honeyd/honeyd.log

2013-08-06-09:45:33.4609 honeyd log started ------

2013-08-06-09:46:42.9764 udp(17) - 192.168.0.103 138 192.168.0.255 138: 233

2013-08-06-09:47:42.5534 udp(17) - 192.168.0.103 138 192.168.0.255 138: 229

less /var/log/honeyd/service.log

2013-08-06-09:45:33.4611 honeyd log started ------

通过蜜罐系统可以有效的查询,攻击者的ip、以及日志记录,我只是做实验所以至演示了ping




本文转自 mailfile 51CTO博客,原文链接:http://blog.51cto.com/mailfile/1329286,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
86 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
79 2
|
8天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
124 78
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
46 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
132 48
|
8天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
60 13
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
36 3
|
9天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
28 0
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
64 4
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
38 1