Honeyd的安装和配置

Honeyd软件依赖于下面几个库及arpd工具:

(1)Libevent:是一个非同步事件通知的函数库。

通过使用 libevent,开发者能够设定某些事件发生时所运行的函数,能够取代以往程序所使用的循环检查;

(2)Libdnet:是一个提供了跨平台的网络相关 API的函数库,包含 arp 缓存,路由表查询。IP 包及物理帧的传输等。

(3)Libpcap:是一个数据包捕获(Packet Sniffing)的函数库,大多数网络软件都以它为基础;

(4)Arpd工具:arpd执行在与honeyd同样的系统上。是honeyd众多协作工具中最重要的一个。Arpd工作时监视局域网内的流量。并通过查看honeyd系统的ARP表推断其他系统的活动与否。

当一次企图对局域网内系统的连接发生时,Arpd通过查找ARP表得知目的IP地址不存在后,就会尝试对受害者的IP地址进行ARP广播,假设honeyd得到了响应,说明目标系统确实存在,于是把目标系统的IP地址与MAC地址的相应写入honeyd的ARP表,并对这次连接尝试不动作,由于这可能是合法流量。假设Arpd没有从目标接收到Arp响应,那么它就觉得目标系统并不存在。假设这是一次攻击行为,于是就尝试充当受害者的IP地址并对攻击者作出回应。由此可见,arpd将对指定的IP地址范围内未使用的IP
用honeyd主机的MAC地址做出arp应答。这样对指定的IP地址范围内未使用的IP的连接訪问都被重定向至honeyd主机。因此这种设计在局域网中特别能最大化的诱骗蠕虫病毒的攻击。转移攻击流。为下一步检測和捕获蠕虫病毒奠定了基础。

启动honeyd前有时必须先启动arpd

启动arpd有2种

A.arpd IP

B. %arpd IP(%表示arpd的路径)由于系统本身有个arpd,有时须要指定自己安装的那个arpd的路径。

在对以上几个库进行编译安装之前。因编译安装须要,必须确保gcc已经安装,可通过指令“gcc -v”查看gcc是否已安装,若没有安装能够输入指令:sudo apt-get install g++ gcc进行安装。

注:在装gcc之前须要装build-essential,其作用是提供软件包列表信息。

此次试验我们是在Ubuntu环境下进行,网上下载的所有库的安装包及工具放在honeyd文件夹(存放在主文件文件夹下)中。

libevent的安装:

用tar -zxvf libevent-1.4.14b-stable.tar.gz解压缩

用cd libevent-1.4.14b-stable进入文件夹

用./configure检測目标特征

用make进行编译

用高权限的 make install进行安装

注:最后一步一定要用管理员权限运行,即在指令前加“sudo”,不然会提示权限不够。

余下几个库的安装基本类似,出现的一些小问题都有说明:

libdnet的安装:

tar -zxvf libdnet-1.11.tgz

cd libdnet-1.11/

./configure

make

sudo make install

libpcap的安装:

tar -zxvf libpcap-1.3.0.tar.gz

cd libpcap-1.3.0

./configure

*提示错误:缺少flex

apt-get install flex(安装flex)

./configure

make

*提示错误:未能找到yacc

apt-get install bison(安装yacc)

make

sudo make install

honeyd的安装:

tar -zxvf honeyd-1.5c.tar.gz

cd honeyd-1.5c

./configure

*提示错误:需安装libedit 或libreadline

apt-get install libedit-dev(安装libedit)

./configure

*提示错误:需安装zlib库

cd

unzip zlib-1.2.8.zip (安装zlib)

cd zlib-1.2.8

./configure

make

make install

cd honeyd-1.5c

./configure

*提示错误:无法获取libc

cp /lib/i386-linux-gnu//libc.so.6 /usr/lib/(获取libc)

./configure

*提示错误:pcap_parse没有定义

cd libpcap-1.3.0(又一次编译libpcap-1.3.0)

make clean (必做)

./configure

make

make install

cd -   (回到honeyd-1.5c)

make

sudo make install

工具arpd的安装:

tar arpd-0.2.tar.gz

cd arpd-0.2/

./configure

编译报错。上网查询得到以下的解决方法:

在arpd/arpd.c文件里加入 #define __FUNCTION__ ""

make

sudo make install

虚拟出2台主机

在局域网中选择一个未被使用的IP地址。启动arpd(此处选择的是192.168.1.2和192.168.1.3,便于后面虚拟Windows主机和Linux主机),用192.168.1.150主机的MAC地址作为这两个虚拟主机的MAC地址响应。

启动honeyd时出现报错“libdnet.1: can't open sharedobjectfile”,在网上查询的都解决方法例如以下:

网上介绍若共享库文件安装到了“/usr/local/lib”或其它“非/lib或/usr/lib”文件夹下,那在运行Idconfig命令之前还要把新共享库文件夹载入到共享库配置文件/etc/ld.c.conf中。例如以下所看到的:

#cat /etc/ld.c.conf

include /etc/ld.c.conf/*.conf

#echo “/usr/local/lib”>>/etc/ld.c.conf

#Idconfig

可是在我们进行如上的改动后任然出现上述的问题,后来在网上查阅后又进行了例如以下改动:

export一个全局变量LD_LABRARY_PATH,然后执行时就会到这个文件夹下寻找共享库。(LD_LABRARY_PATH的作用是告诉loader在那些文件夹中能够找到共享库,能够设置多个搜索文件夹。在文件夹之间用逗号分隔开)

exportLD_LABRARY_PATH=/usr/local/lib:$ LD_LABRARY_PATH    

网络拓扑结构:有三台主机和一个网关,一台Windows主机用于訪问虚拟服务,IP为192.168.1.115。还有一台Windows主机用于提供FTP服务。IP为192.168.1.104。一台Ubuntu主机用于配置蜜罐,IP为192.168.1.150,网关为192.168.1.1。

honeyd安装成功后,利用其虚拟出一台windows主机web server。配置文件取名为:honeyd.conf,文件内容例如以下:

create windows

set windows personality "MicrosoftWindows NT 4.0 SP3"

set windows default tcp action reset

set windows default udp action reset

add windows tcp port 80 "shhoneyd/honeyd-1.5c/scripts/web.sh"

bind 192.168.1.2 windows

上面的配置文件创建了一个叫做windows的模板,绑定了一个honeypot的IP到这个模板上。

上面的这个windows模板告诉honeyd,当一个client试图NMap探測honeypot的指纹时,把它自己伪装成Microsoft Windows NT 4.0 SP3的系统。用honeyd自带的web脚本虚拟web服务。

最初我们是在虚拟机上执行,可做到这一步是。同网段的主机无法訪问到虚拟出来的web服务。我们在网上找了各种解决的方法,检查了配置文件honeyd.conf以及虚拟server的脚本文件web.sh。发现并没有异样,检查了好几个小时。后来考虑可能是在虚拟机上执行的原因,就又一次在ubuntu的系统下把之前的重做了一遍,然后在ubuntu终端输入例如以下命令。若有主机对192.168.1.2进行訪问,那192.168.1.2将对其做出对应:

honeyd -d -fhoneyd.conf 192.168.1.2

这个命令-d代表在终端显示监听蜜罐的情况,-f代表採用honeyd.conf作为配置文件,192.168.1.2代表对IP地址为192.168.1.2的蜜罐进行监听。

当用192.168.1.115主机訪问192.168.1.2。页面显示结果例如以下:

能够看到。成功运行了honeyd自带的web脚本。这是一个简单的web页面,用于測试蜜罐的搭建是否成功。

ubuntu主机响应訪问时终端的显演示样例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWNjZXB0aGpw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

192.168.1.115的主机成功与蜜罐192.168.1.2建立连接。并运行web脚本。

同理,測试IP地址为192.168.1.3蜜罐的过程类似。

完毕实验内容的配置文件内容例如以下图所看到的:

通过上图配置文件虚拟出两台主机:一台Windows主机。IP为192.168.1.2。开放80。20。21,22port。80port和22port运行虚拟服务脚本,因为FTP服务比較难模拟,所以21port设置FTP服务代理为192.168.1.104的主机,20port待用;一台Linux主机,IP为192.168.1.3,开放port和虚拟服务与Windows主机同样。

把訪问虚拟服务的client的按键记录保存在文件里

事先编写好web服务和按键记录的脚本放在web.sh文件里,后文会有对脚本代码的分析。

利用192.168.1.115訪问虚拟web服务,输入username和password例如以下所看到的:

192.168.1.150控制端得到的结果例如以下:

由结果可知192.168.1.115主机与蜜罐已连接成功且成功运行脚本web.sh文件。

点击登陆,控制主机通过python的os库调用OS类的system方法,在终端用tshark -d “ip dst192.168.1.2” -w catchlog将抓到的数据包保存在“catchlog”文件里,当中有包括username和password的数据包:

虚拟web服务脚本例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWNjZXB0aGpw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这是一个shell脚本。主要是用于写入图中紫色的html代码,html代码由两部分组成。<body>至</body>创建一个web界面,包括username和password两个表单;上面为javascript部分,当点击登陆button的事件发生时,它会将用户username和password两个表单中的内容提交给192.168.1.2的备用开放port20。

honeyd蜜罐配置和web监听脚本的更多相关文章

  1. 部署grafana+telegraf+influxdb 及 配置 jmeter后端监听

    搞性能测试,可以搭建Grafana+Telegraf+InfluxDB 监控平台,监控服务器资源使用率.jmeter性能测试结果等. telegraf: 是一个用 Go 编写的代理程序,可收集系统和服 ...

  2. Oracle一个实例配置多个监听

    要想给一个Oracle实例配置多个监听,首先要定义多个监听器,因为是多个监听,势必会有一些监听端口不是1521. 现在服务端的listener.ora文件中定义如下监听器: LISTENER = (D ...

  3. 黄聪:windows下使用xampp3.2.2配置多个监听端口和不同的网站目录

    windows下使用xampp3.2.2配置多个监听端口和不同的网站目录 一:配置Apache文件httpd.conf 打开Apache的配置文件httpd.conf,可以通过点击xampp的Apac ...

  4. 【PHP】xampp配置多个监听端口和不同的网站目录(转)

    转自:https://blog.csdn.net/cc1314_/article/details/75646344 windows下使用xampp配置多个监听端口和不同的网站目录 一:配置Apache ...

  5. springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署

    知识点梳理 课堂讲义 02-SpringBoot自动配置-@Conditional使用 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载 ...

  6. Apache配置多个监听端口

    以前做PC上的,都是配置一个端口,整一大堆的虚拟目录: 在 \conf\extra下找到httpd-vhosts.conf这个配置文件,想下面这样配置就行,监听80端口,访问相应的ServerName ...

  7. Apache配置多个监听端口和不同的网站目录的简单方法(转)

    转自http://www.waaqi.com/archives/707.html 由于开发的多项目,每个项目又要独立,要用根目录地址. 所以这时候我们需要配置多个不同目录的Apache,如果是外部网可 ...

  8. Apache无法正常启动(配置多个监听端口)

    Apache监测多个端口配置: 1.conf->extra->httpd-vhosts.conf  检查配置项是否写错 2.http.conf listen端口是否监听正确 3.环境变量中 ...

  9. xampp配置多个监听端口和不同的网站目录

    1.配置Apache文件httpd.conf 打开xampp安装目录下的Apache->conf文件夹下的httpd.conf,用记事本打开 首先在Listen 80端口下添加其他监听端口: L ...

随机推荐

  1. spring核心及常用技术

    一.核心内容 1.依赖注入(控制反转) 1)什么是依赖注入 spring将实例的创建交给spring容器(BeanFactory或ApplicationContext)管理,当实例创建后通过设值或构造 ...

  2. 【8.20校内测试】【DP】【二分+贪心】

    一开始想的贪心,可是发现贪心的问题太多了啊!只能保证当前最优,全局完全无法考虑. 所以正解是dp.预处理出前缀和,枚举每个区间,在每个点记录$now[i]$表示以$i$这个塔结尾的塔组目前的高度.$d ...

  3. spoj 375 query on a tree LCT

    这道题是树链剖分的裸题,正在学LCT,用LCT写了,发现LCT代码比树链剖分还短点(但我的LCT跑极限数据用的时间大概是kuangbin大神的树链剖分的1.6倍,所以在spoj上是850ms卡过的). ...

  4. 【ArcGIS笔记】数据处理

    1.ARCGIS在导入Excel坐标点的时候出现"没有注册类"的情况怎么办? 确保你本机上装有office,并且版本要能够识别XLSX格式.2007以上. 2.导入excel时re ...

  5. python开发_tempfile

    python中的tempfile模块,是为创建临时文件(夹)所提供的 如果你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么tempfile模块来创建临时文件(夹)是个不错的选择 其 ...

  6. leetcode 587. Erect the Fence 凸包的计算

    leetcode.587.Erect the Fence 凸包问题.好像是我在leetcode做的第一个凸包问题吧. 第一次做,涉及到的东西还是蛮多的.有一个东西很重要,就是已知一个点和一个矢量,求这 ...

  7. Shell基础学习(四) echo命令

    1.显示普通的字符串 echo "boring" 2.显示转义字符 echo "\"It is a test!\""; 3.read 命令从 ...

  8. 典型案例收集-使用OpenVPN连通多个机房内网(转)(静态路由)

    说明: 1.这篇文章主要是使用静态路由表实现的多个机房通过VPN连接后的子网机房互通. 2.OpenVPN使用的是桥接模式(server-bridge和dev tap),这个是关键点,只有这样设置才可 ...

  9. IOS定位核心与地图

    IOS定位核心与地图                 Core Location以及Map框架包通常能给我们的应用程序添加定位和地图相关的服务.Core Location框架包通常是使用硬件设备来进行 ...

  10. Windows下配置Git服务器和客户端

    http://www.cnblogs.com/lwme/archive/2012/12/25/configuring-git-server-and-client-on-windows.html] 选择 ...