1. Dionaea 低交互式蜜罐简介
Dionaea(捕蝇草) 低交互式蜜罐(http://dionaea.carnivore.it) 是Honeynet Project的开源项目,肇端于Google Summer of Code 2009,是Nepenthes(猪笼草)项目标后继。Honeynet Project 是成立于 1999 年的国际性非盈利研究组织,致力于进步因特网的安然性,在蜜罐手艺与互联网安然威胁研究范畴具有较大年夜的影响力。
Dionaea蜜罐的设计目标是诱捕歹意报复打击,获得歹意报复打击会话与歹意代码法度样本。它经由过程摹拟各类常见办事,捕获对办事的报复打击数据,记实报复打击源和方针 IP、端口、和谈类型等信息,和完全的收集会话过程,主动阐发此中可能包含的 shellcode 及此中的函数调用和下载文件,并获得歹意法度。
有别于高交互式蜜罐采取真实系统与办事诱捕歹意报复打击,Dionaea 被设计成低交互式蜜罐,它为报复打击者揭示的所有报复打击弱点和报复打击对象都不是真实的产品系统,而是对各类系统及其供给的办事的摹拟。如许设计的好处是安装和建设十分简单,蜜罐系统几近没有安然风险,不足的地方是不完美的摹拟会降落数据捕获的能力,并等闲被报复打击者辨认。
2. Dionaea 的整体布局和工作机制 Dionaea是运行于Linux上的一个利用法度,将法度运行于收集环境下,它开放Internet上常见办事的默许端口,当有外来连接时,摹拟正常办事赐与反馈,同时记实下出进收集数据流。收集数据流颠末检测模块检测后按类别进行措置,假定有 shellcode 则进行仿真履行;法度会主动下载 shellcode 中指定下载或后续报复打击号令指定下载的歹意文件。从捕获数据到下载歹意文件,全部流程的信息都被保留到数据库中,留待阐发或提交到第三方阐发机构。
Dionaea 整体布局和工作机制如图:
3. Dionaea 蜜罐安装过程 Dionaea 今朝版本是 0.1.0,采取源码安装。软件运行依托于以下库:libev,libglib,libssl,liblcfg,libemu,python,sqlite,readline,cython,lxml,libudns,libcurl,libpcap。
安装过程详见 http://dionaea.carnivore.it/#compiling,需要寄望的是安装 Python-3.2 时寄望按申明点窜 setup.py 以确保 zlib 库能准确安装。
安装时要寄望依托库成功安装,不然 Dionaea 可能不克不及正常工作。
安装具体过程:
OS:ubuntu 12.04 (32-bit)
# 安装依托
apt-get update
apt-get isntall aptitude
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
其余的依托,必需从源代码安装,我们将安装到路径/opt/dionaea,所以请确保该目次存在,并承诺读写权限。
mkdir /opt/dionaea
cd /opt/dionaea
安装其他依托
liblcfg
git clone git://git.carnivore.it/liblcfg.git liblcfg
cd liblcfg/code
autoreconf -vi
./configure --prefix=/opt/dionaea
make install
cd ..
cd ..
libemu
git clone git://git.carnivore.it/libemu.git libemu
cd libemu
autoreconf -vi
./configure --prefix=/opt/dionaea
make install
cd ..
libnl
apt-get install libnl-3-dev libnl-genl-3-dev libnl-nf-3-dev libnl-route-3-dev
libev
wget http://dist.schmorp.de/libev/Attic/libev-4.04.tar.gz
tar xfz libev-4.04.tar.gz
cd libev-4.04
./configure --prefix=/opt/dionaea
make install
cd ..
Python 3.2
wget http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz
tar xfz Python-3.2.2.tgz
cd Python-3.2.2/
./configure --enable-shared --prefix=/opt/dionaea --with-computed-gotos --enable-ipv6 LDFLAGS="-Wl,-rpath=/opt/dionaea/lib/ -L/usr/lib/i386-linux-gnu/"
make
make install
cd /opt/dionaea/bin
ln python3.2 /usr/bin/python3
cd ..
sqlite 3.3.7
wget http://www.sqlite.com.cn/Upfiles/source/sqlite-3.3.7.tar.gz
tar xzf sqlite-3.3.7.tar.gz
cd sqlite-3.3.7
mkdir /home/sqlite-3.3.7
./configure --prefix=/home/sqlite-3.3.7
make && make install && make doc
cd /home/sqlite-3.3.7/bin/
ln sqlite3 /usr/bin/sqlite3
Cython
wget http://cython.org/release/Cython-0.15.tar.gz
tar xfz Cython-0.15.tar.gz
cd Cython-0.15
/opt/dionaea/bin/python3 setup.py install
cd ..
libpcap
wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
tar xfz libpcap-1.1.1.tar.gz
cd libpcap-1.1.1
./configure --prefix=/opt/dionaea
make
make install
cd ..
编译安装dionaea
git clone git://git.carnivore.it/dionaea.git dionaea
cd dionaea
autoreconf -vi
./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/
make
make install
安装结束
4. Dionaea 利用编制
Dionaea 按照号令参数运行,可选择不合的运行环境、任务和遴选事务记实内容。建设文件则具体划定蜜罐运行后开启的模块,记实文件的保留位置和扩大功能的参数等信息。默许建设下 Dionaea 主动选择一个收集接口进行监听。
Dionaea 具体的号令格局以下:
dionaea [-c, --config=FILE] [-D, --daemonize] [-g, --group=GROUP]
[-G, --garbage=[collect|debug]] [-h, --help] [-H, --large-help]
[-l, --log-levels=WHAT] [-L, --log-domains=WHAT] [-u, --user=USER]
[-p, --pid-file=FILE] [-r, --chroot=DIR] [-V, --version] [-w, --workingdir=DIR]
选项的意义别离是:
-c:指定运行法度所利用的建设文件,默许下建设文件是/opt/dionaea/etc/dionaea.conf。
-D:后台运行。
-g:指定启动后切换到某个用户组,默许下保持当前组。
-G:汇集垃圾数据,用于调试内存泄漏。不克不及用于 valgrind 软件。
-h:帮忙信息。
-H:帮忙信息,包含默许值信息。
-l:选择事务记实级别,可以选择 all, debug, info, message, warning, critical, error 这些值,多选利用“,”做分隔,解除利用“-”。
-L:选择域,撑持通配符“*”和“?”,多选利用“,”,解除利用“-”。
-u:指定启动后切换到某个用户,默许下保持当前用户。
-p:记实 pid 到指定文件。
-r:指定启动后切换根目次到指定目次,默许下不切换。
-V:显示版本信息。
-w:设定过程工作目次,默许下为/opt/dionaea。
例子:
切换到 cd /opt/dionaea/bin
# ./dionaea -l all,-debug -L '*'
# ./dionaea -l all,-debug -L 'con*,py*'
# ./dionaea -u nobody -g nogroup -r /opt/dionaea/ -w /opt/dionaea -p /opt/dionaea/var/dionaea.pid
5. 安装 DionaeaFR
DionaeaFR(https://github.com/RootingPuntoEs/DionaeaFR)是用于前端web揭示Dionaea的数据。
安装具体过程:
ubuntu 12.04 默许已安装 python 2.7.3
切换到cd /opt/,下载DionaeaFR
git clone https://github.com/RootingPuntoEs/DionaeaFR.git
安装pip,django,nodejs
apt-get install python-pip
pip install Django
pip install pygeoip
pip install django-pagination
pip install django-tables2
pip install django-compressor
pip install django-htmlmin
pip install django-filter
django-tables2-***filter:
https://github.com/benjiec/django-tables2-***filter
python setup.py install
SubnetTree:
git clone git://git.bro-ids.org/pysubnettree.git
python setup.py install
nodejs:
http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
tar xzvf node-v0.8.16.tar.gz
cd node-v0.8.16
./configure
make
make install
npm install -g less
apt-get install python-netaddr
下载GeoIP 和 GeoLiteCity
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
解压GeoIP 和 GeoLiteCity
gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz
移动GeoIP 和 GeoLiteCity到 /opt/DionaeaFR/DionaeaFR/static
mv GeoIP.dat /opt/DionaeaFR/DionaeaFR/static
mv GeoLiteCity.dat /opt/DionaeaFR/DionaeaFR/static
点窜SQLite路径
cd /opt/DionaeaFR/DionaeaFR
vim settings.py
第17行,SQLite路径更改成
/opt/dionaea/var/dionaea/logsql.sqlite
假定你安装dionaea的目次不在/opt/,那就find下。
find / -name logsql.sqlite ,把查找到的路径替代到17行中。
运行
cd /opt/DionaeaFR
python manage.py collectstatic
python manage.py runserver 0.0.0.0:8000
浏览器拜候:http://你的IP:8000
6. 结束
低交互式蜜罐的遍及弱点,即对收集办事的摹拟与真实办事存在差距,可能没法捕获某些对环境敏感的报复打击,可以搭配其他专用办事蜜罐一路利用,来不竭进行完美。
Kippo(SSH蜜罐开源软件)
Glastopf(Web利用报复打击诱捕软件)