1. Dionaea 低交互式蜜罐簡介
Dionaea(捕蠅草) 低交互式蜜罐(http://dionaea.carnivore.it) 是Honeynet Project的開源項(xiàng)目,肇端于Google Summer of Code 2009,是Nepenthes(豬籠草)項(xiàng)目標(biāo)后繼。Honeynet Project 是成立于 1999 年的國際性非盈利研究組織,致力于進(jìn)步因特網(wǎng)的安然性,在蜜罐手藝與互聯(lián)網(wǎng)安然威脅研究范疇具有較大年夜的影響力。
Dionaea蜜罐的設(shè)計(jì)目標(biāo)是誘捕歹意報(bào)復(fù)打擊,獲得歹意報(bào)復(fù)打擊會話與歹意代碼法度樣本。它經(jīng)由過程摹擬各類常見辦事,捕獲對辦事的報(bào)復(fù)打擊數(shù)據(jù),記實(shí)報(bào)復(fù)打擊源和方針 IP、端口、和談?lì)愋偷刃畔ⅲ屯耆氖占瘯掃^程,主動(dòng)闡發(fā)此中可能包含的 shellcode 及此中的函數(shù)調(diào)用和下載文件,并獲得歹意法度。
有別于高交互式蜜罐采取真實(shí)系統(tǒng)與辦事誘捕歹意報(bào)復(fù)打擊,Dionaea 被設(shè)計(jì)成低交互式蜜罐,它為報(bào)復(fù)打擊者揭示的所有報(bào)復(fù)打擊弱點(diǎn)和報(bào)復(fù)打擊對象都不是真實(shí)的產(chǎn)品系統(tǒng),而是對各類系統(tǒng)及其供給的辦事的摹擬。如許設(shè)計(jì)的好處是安裝和建設(shè)十分簡單,蜜罐系統(tǒng)幾近沒有安然風(fēng)險(xiǎn),不足的地方是不完美的摹擬會降落數(shù)據(jù)捕獲的能力,并等閑被報(bào)復(fù)打擊者辨認(rèn)。
2. Dionaea 的整體布局和工作機(jī)制 Dionaea是運(yùn)行于Linux上的一個(gè)利用法度,將法度運(yùn)行于收集環(huán)境下,它開放Internet上常見辦事的默許端口,當(dāng)有外來連接時(shí),摹擬正常辦事賜與反饋,同時(shí)記實(shí)下出進(jìn)收集數(shù)據(jù)流。收集數(shù)據(jù)流顛末檢測模塊檢測后按類別進(jìn)行措置,假定有 shellcode 則進(jìn)行仿真履行;法度會主動(dòng)下載 shellcode 中指定下載或后續(xù)報(bào)復(fù)打擊號令指定下載的歹意文件。從捕獲數(shù)據(jù)到下載歹意文件,全部流程的信息都被保留到數(shù)據(jù)庫中,留待闡發(fā)或提交到第三方闡發(fā)機(jī)構(gòu)。
Dionaea 整體布局和工作機(jī)制如圖:

3. Dionaea 蜜罐安裝過程 Dionaea 今朝版本是 0.1.0,采取源碼安裝。軟件運(yùn)行依托于以下庫:libev,libglib,libssl,liblcfg,libemu,python,sqlite,readline,cython,lxml,libudns,libcurl,libpcap。
安裝過程詳見 http://dionaea.carnivore.it/#compiling,需要寄望的是安裝 Python-3.2 時(shí)寄望按申明點(diǎn)竄 setup.py 以確保 zlib 庫能準(zhǔn)確安裝。
安裝時(shí)要寄望依托庫成功安裝,不然 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,所以請確保該目次存在,并承諾讀寫權(quán)限。
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
安裝結(jié)束
4. Dionaea 利用編制
Dionaea 按照號令參數(shù)運(yùn)行,可選擇不合的運(yùn)行環(huán)境、任務(wù)和遴選事務(wù)記實(shí)內(nèi)容。建設(shè)文件則具體劃定蜜罐運(yùn)行后開啟的模塊,記實(shí)文件的保留位置和擴(kuò)大功能的參數(shù)等信息。默許建設(shè)下 Dionaea 主動(dòng)選擇一個(gè)收集接口進(jìn)行監(jiān)聽。
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]
選項(xiàng)的意義別離是:
-c:指定運(yùn)行法度所利用的建設(shè)文件,默許下建設(shè)文件是/opt/dionaea/etc/dionaea.conf。
-D:后臺運(yùn)行。
-g:指定啟動(dòng)后切換到某個(gè)用戶組,默許下保持當(dāng)前組。
-G:匯集垃圾數(shù)據(jù),用于調(diào)試內(nèi)存泄漏。不克不及用于 valgrind 軟件。
-h:幫忙信息。
-H:幫忙信息,包含默許值信息。
-l:選擇事務(wù)記實(shí)級別,可以選擇 all, debug, info, message, warning, critical, error 這些值,多選利用“,”做分隔,解除利用“-”。
-L:選擇域,撐持通配符“*”和“?”,多選利用“,”,解除利用“-”。
-u:指定啟動(dòng)后切換到某個(gè)用戶,默許下保持當(dāng)前用戶。
-p:記實(shí) pid 到指定文件。
-r:指定啟動(dòng)后切換根目次到指定目次,默許下不切換。
-V:顯示版本信息。
-w:設(shè)定過程工作目次,默許下為/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的數(shù)據(jù)。
安裝具體過程:
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
移動(dòng)GeoIP 和 GeoLiteCity到 /opt/DionaeaFR/DionaeaFR/static
mv GeoIP.dat /opt/DionaeaFR/DionaeaFR/static
mv GeoLiteCity.dat /opt/DionaeaFR/DionaeaFR/static
點(diǎn)竄SQLite路徑
cd /opt/DionaeaFR/DionaeaFR
vim settings.py
第17行,SQLite路徑更改成
/opt/dionaea/var/dionaea/logsql.sqlite
假定你安裝dionaea的目次不在/opt/,那就find下。
find / -name logsql.sqlite ,把查找到的路徑替代到17行中。
運(yùn)行
cd /opt/DionaeaFR
python manage.py collectstatic
python manage.py runserver 0.0.0.0:8000
瀏覽器拜候:http://你的IP:8000


6. 結(jié)束
低交互式蜜罐的遍及弱點(diǎn),即對收集辦事的摹擬與真實(shí)辦事存在差距,可能沒法捕獲某些對環(huán)境敏感的報(bào)復(fù)打擊,可以搭配其他專用辦事蜜罐一路利用,來不竭進(jìn)行完美。
Kippo(SSH蜜罐開源軟件)
Glastopf(Web利用報(bào)復(fù)打擊誘捕軟件)