今天偶然看到清华大学CCERT在中国教育报发表的文章,原文地址:http://wenku.baidu.com/view/827a5417650e52ea55189841.html ,还要收费1元。于是就决定写一篇关于对蜜罐进行部署和使用的详细文章。(一篇文章我一般都需要几天时间来完成的,To be perfect 是我做任何事情都喜欢追求的。)
一、初步认识dionaea
dionaea,中文的意思即捕蝇草,是否形容蜜罐很形象?dionaea是nepenthes(猪笼草)的发展和后续,更加容易被部署和使用。何谓蜜罐?引诱攻击者发起攻击,并能记录攻击者的活动信息。蜜罐一般分为两种类型:高交互式蜜罐和低交互式蜜罐。
低交互式蜜罐只是模拟出了真正操作系统的一部分,例如模拟一个FTP服务。虽然低交互式蜜罐容易建立和维护,但模拟可能不足以吸引攻击者,还可能导致攻击者绕过系统发起攻击,从而使蜜罐在这种情况下失效。
高交互式蜜罐是一部装有真正操作系统,并可完全被攻破的系统。与攻击者进行交互的是一部包含了完整服务的真实系统。用于网络安全的高交互式蜜罐提供了真实操作系统的服务和应用程序,使其可以获得关于攻击者更可靠的信息。但是部署和维护起来十分困难,而且被攻破的系统可能会被用来攻击互联网上其他的系统,这必须承担很高的风险。所以我们主要来研究今天我们的主题低交互式蜜罐dionaea。
二、在ubuntu上完整安装dionaea
首先我们需要装一些程序和库的支持,这也是装dionaea之前必要的。先建立两个文件夹,是我们安装包路径和安装路径。
1
2
|
mkdir /pre/ //安装包寄存路径。
mkdir /opt/dionaea //安装路径。
|
接下来我们开始配置安装。
1、预安装
1
|
root@ruo:/# aptitude install libudns-dev libglib2.0-dev libssl-dev libcurl4-openssl-dev /libreadline-dev libsqlite3-dev python-dev /libtool automake autoconf build-essential /subversion git-core /flex bison /pkg-config
|
2、libev
1
2
3
4
5
|
root@ruo:/pre# wget http://dist.schmorp.de/libev/Attic/libev-4.04.tar.gz
root@ruo:/pre# tar xfz libev-4.04.tar.gz
root@ruo:/pre# cd libev-4.04
root@ruo:/pre/libev-4.04# ./configure –prefix=/opt/dionaea
root@ruo:/pre/libev-4.04# make install
|
3、libgcfg
1
2
3
4
5
|
root@ruo:/pre# git clone git://git.carnivore.it/liblcfg.git liblcfg
root@ruo:/pre# cd liblcfg/php/
root@ruo:/pre/liblcfg/php# autoreconf -vi
root@ruo:/pre/liblcfg/php# ./configure –prefix=/opt/dionaea
root@ruo:/pre/liblcfg/php# make install
|
4、libssl
1
2
3
4
5
|
root@ruo:/pre# wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
root@ruo:/pre# tar xfz openssl-1.0.1e.tar.gz
root@ruo:/pre# cd openssl-1.0.1e.tar.gz
root@ruo:/pre/openssl-1.0.1e# ./Configure shared –prefix=/opt/dionaea linux-x86_64
root@ruo:/pre/openssl-1.0.1e# make && make install
|
5、libemu
1
2
3
4
5
|
root@ruo:/pre# git clone git://git.carnivore.it/libemu.git libemu
root@ruo:/pre# cd libemu/
root@ruo:/pre/libemu# autoreconf -vi
root@ruo:/pre/libemu# ./configure –prefix=/opt/dionaea
root@ruo:/pre/libemu# make install
|
6、sqlite3.3.7
1
2
3
4
5
6
7
8
9
10
11
12
13
|
root@ruo:/pre# wget http://ruo.me:9192/dionaea/sqlite-3.3.7.tar.gz
root@ruo:/pre# tar xzf sqlite-3.3.7.tar.gz
root@ruo:/pre# mkdir /home/sqlite-ix86-linux
root@ruo:/pre# cd sqlite-3.3.7
root@ruo:/pre/sqlite-3.3.7# ./configure –prefix=/home/sqlite-ix86-linux
root@ruo:/pre/sqlite-3.3.7# make && make install && make doc
root@ruo:/pre/sqlite-3.3.7# cd /home/sqlite-ix86-linux/bin/
root@ruo:/home/sqlite-ix86-linux/bin# ./sqlite3 ruo.db
SQLite version 3.3.7
Enter “.help” for instructions
sqlite>
sqlite> .quit
root@ruo:/home/sqlite-ix86-linux/bin#
|
7、Python3.2
1
2
3
4
5
6
7
|
root@ruo:/pre# apt-get install axel
root@ruo:/pre# axel -n 40 http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz -o /pre/python.tgz
root@ruo:/pre# tar xfz python.tgz
root@ruo:/pre# cd Python-3.2.2/
root@ruo:/pre/Python-3.2.2# ./configure –enable-shared –prefix=/opt/dionaea –with-computed-gotos –enable-ipv6 LDFLAGS=”-Wl,-rpath=/opt/dionaea/lib/ -L/usr/lib/x86_64-linux-gnu/”
root@ruo:/pre/Python-3.2.2# make && make install
root@ruo:/opt/dionaea/bin# ln python3.2 /usr/bin/python3
|
8、cython
1
2
3
4
|
root@ruo:/pre# axel -n 40 http://cython.org/release/Cython-0.15.tar.gz -o cython.tar.gz
root@ruo:/pre# tar xfz cython.tar.gz
root@ruo:/pre# Cython-0.15/
root@ruo:/pre/Cython-0.15# python3 setup.py install
|
9、libpcap
1
2
3
4
5
|
root@ruo:/pre# axel -n 40 http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz -o libpcap.tar.gz
root@ruo:/pre# tar xfz libpcap.tar.gz
root@ruo:/pre# cd libpcap-1.1.1/
root@ruo:/pre/libpcap-1.1.1# ./configure –prefix=/opt/dionaea
root@ruo:/pre/libpcap-1.1.1# make && make install
|
10、libnl
1
2
3
4
5
6
|
root@ruo:/pre/libnl# git clone git://git.infradead.org/users/tgr/libnl.git
root@ruo:/pre# cd libnl
root@ruo:/pre/libnl# autoreconf -vi
root@ruo:/pre/libnl# export LDFLAGS=-Wl,-rpath,/opt/dionaea/lib
root@ruo:/pre/libnl# ./configure –prefix=/opt/dionaea
root@ruo:/pre/libnl# make && make install
|
好了,我们的准备工作到此结束,接下来开始配置安装dionaea。
安装dionaea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
root@ruo:/pre# git clone git://git.carnivore.it/dionaea.git dionaea
root@ruo:/pre# cd dionaea/
root@ruo:/pre/dionaea# autoreconf -vi
root@ruo:/pre/dionaea# ./configure –with-lcfg-include=/opt/dionaea/include/ /
–with-lcfg-lib=/opt/dionaea/lib/ /
–with-python=/opt/dionaea/bin/python3.2 /
–with-cython-dir=/opt/dionaea/bin /
–with-udns-include=/opt/dionaea/include/ /
–with-udns-lib=/opt/dionaea/lib/ /
–with-emu-include=/opt/dionaea/include/ /
–with-emu-lib=/opt/dionaea/lib/ /
–with-gc-include=/usr/include/gc /
–with-ev-include=/opt/dionaea/include /
–with-ev-lib=/opt/dionaea/lib /
–with-nl-include=/opt/dionaea/include /
–with-nl-lib=/opt/dionaea/lib/ /
–with-curl-config=/usr/bin/ /
–with-pcap-include=/opt/dionaea/include /
–with-pcap-lib=/opt/dionaea/lib/
root@ruo:/pre/dionaea# make && make install
|
三、配置dionaea
dionaea默认的配置会记录所有的活动,比如调试、消息、警告、错误、信息等,我们只是自己部署测试,如果按照默认的话有时候记录的日志文件会非常巨大,所以先来修改下默认日志配置。
配置文件路径:/opt/dionaea/etc/dionaea/dionaea.comf
找到levels = “all”,加上-debug,改成levels = “all,debug”,选择调试模式。
找到levels = “warning,error”,去掉warning,改成levels = “error”,不记录警告。
对于模块的讲解,将在(三)中实例分析,这里不多赘述。
因为dionaea默认是将记录的二进制文件上传到sendbox中进行分析,但是为了高效方便,我们还是自己配置Http处理程序来接受,我们用到wwwhoney,一个基于python的Http蜜罐接收的小型服务器,下面我们来安装wwwhoney。
1
2
3
|
root@ruo:/pre# wget http://ruo.me/tools/wwwhoney.tgz
root@ruo:/pre# tgz zxvf wwwhoney.tgz
root@ruo:/pre# chmod 777 wwwhoney -R
|
解压完毕设置好权限后我们需要修改目录下的cgiserver.py,这也是启动程序,但是我们需要修改下里面的配置。
找到cgi_directories = [“/cgi-bin/”] ,修改成wwwhoney目录下的cgi-bin目录,比如我的wwwhoney目录是在/pre.wwwhoney/,所以我就修改为cgi_directories = [“/pre.wwwhoney/cgi-bin/”],端口默认9000,可以改也可以不改。
然后启动。
1
2
|
root@ruo:/pre/wwwhoney# python cgiserver.py &
[1] 2226
|
返回了pid,说明启动成功,接下来我们打开firefox访问[url]http://127.0.0.1:9000/[/url]
终端返回数据。
1
2
3
4
5
6
|
root@ruo:/pre/wwwhoney# localhost – - [25/Jul/2013 10:59:13] “GET / HTTP/1.1″ 200 -
localhost - - [25/Jul/2013 10:59:17] “GET /favicon.ico HTTP/1.1″ 404 -
localhost - - [25/Jul/2013 10:59:22] “GET /binaries/ HTTP/1.1″ 200 -
localhost - - [25/Jul/2013 10:59:25] “GET /cgi-bin/ HTTP/1.1″ 200 -
localhost - - [25/Jul/2013 10:59:29] “GET /README HTTP/1.1″ 200 -
localhost - - [25/Jul/2013 10:59:32] “GET /submit.html HTTP/1.1″ 200 -
|
然后我们启动dionaea。
1
|
root@ruo:/opt/dionaea/bin# ./dionaea -u nobody -g nogroup -p /opt/dionaea/var/dionaea.pid -D
|
返回结果,成功运行鸟。
1
|
Dionaea Version 0.1.0 Compiled on Linux/x86 at Jul 23 2013 13:51:54 with gcc 4.4.3 Started on ruo running Linux/i686 release 2.6.32-21-generic [25072013 10:32:57] dionaea dionaea.c:245: User nobody has uid 65534 [25072013 10:32:57] dionaea dionaea.c:264: Group nogroup has gid 65534
|
(一)就此结束。在(二)里面,将介绍如何在dionaea.conf中进行适当的注释和添加,来确保wwwhoney进行正确的Http接收,并且会另述一种非完整的简洁安装方法,适合无基础的朋友,因为(一)中讲解的是完整安装。并且在(三)里面将会详细叙述实例分析的有效手段和多复合冗杂记录的高效途径以及配置图例进行GUI界面的查看。
[via@nandi]作者:Nandi
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号