蜜罐网络(开源汇总)MHN
0x00 前言
? ? ? ? 這篇文章中,主要討論蜜罐和蜜罐網(wǎng)絡(luò),以及如何使用它們保護(hù)真實(shí)的系統(tǒng),我們稱(chēng)之為這個(gè)系統(tǒng)為MHN(Modern Honey Network,現(xiàn)代蜜網(wǎng)),它可以快速部署、使用,也能夠快速的從節(jié)點(diǎn)收集數(shù)據(jù)。
0x01 什么是蜜罐
? ? ? ? 蜜罐是存在漏洞的,暴露在外網(wǎng)或者內(nèi)網(wǎng)的一個(gè)虛假的機(jī)器,具有以下這些特征:
? ? ? ? 1.其中重要的一點(diǎn)機(jī)器是虛假的,攻擊者需要花費(fèi)時(shí)間攻破。在這段時(shí)間內(nèi),系統(tǒng)管理員能夠鎖定攻擊者同時(shí)保護(hù)真正的機(jī)器。
? ? ? ? 2.能夠?qū)W習(xí)攻擊者針對(duì)該服務(wù)的攻擊技巧和利用代碼。
? ? ? ? 3.一些蜜罐能夠捕獲惡意軟件,利用代碼等等,能夠捕獲攻擊者的0day,同時(shí)可以幫助逆向工程師通過(guò)分析捕獲的惡意軟件來(lái)提高自身系統(tǒng)的安全性
? ? ? ? 4.在內(nèi)網(wǎng)中部署的蜜罐可以幫助你發(fā)現(xiàn)內(nèi)網(wǎng)中其他機(jī)器可能存在的漏洞。
蜜罐是把雙刃劍,如果不能正確的使用,有可能遭受更多的攻擊,模擬服務(wù)的軟件存在問(wèn)題,也會(huì)產(chǎn)生新的漏洞。
蜜罐分為幾下幾類(lèi):
? ? ? ? 1.低交互式:低交互式模擬常規(guī)的服務(wù),服務(wù)存在漏洞,但是模擬的這些漏洞無(wú)法被利用,開(kāi)發(fā)和維護(hù)這種類(lèi)型的蜜罐比較容易。
? ? ? ? 2.高交互式:高交互式使用的是真實(shí)的服務(wù),有助于發(fā)現(xiàn)服務(wù)存在的新漏洞,同時(shí)能夠記錄所有的攻擊,但是,部署困難、維護(hù)成本高,一旦服務(wù)上存在的漏洞被利用,容易引發(fā)新的安全問(wèn)題。
? ? ? ? 3.粘性蜜罐(Tarpits):這種類(lèi)型的蜜罐,使用新的IP來(lái)生成新的虛擬機(jī),模擬存在服務(wù)的漏洞,來(lái)做誘餌。因此攻擊者會(huì)花費(fèi)長(zhǎng)時(shí)間來(lái)攻擊,就有足夠的時(shí)間來(lái)處理攻擊,同時(shí)鎖定攻擊者。
? ? ? ? 還有其他類(lèi)型的蜜罐,比如專(zhuān)門(mén)捕獲惡意軟件的,數(shù)據(jù)庫(kù)漏洞利用程序和垃圾郵件等等。當(dāng)部署兩個(gè)或者兩個(gè)以上蜜罐時(shí)可以稱(chēng)之為蜜網(wǎng)。
0x02 現(xiàn)代密網(wǎng)(MHN)
? ? ? ? MHN是一個(gè)開(kāi)源軟件,它簡(jiǎn)化了蜜罐的部署,同時(shí)便于收集和統(tǒng)計(jì)蜜罐的數(shù)據(jù)。用? ?ThreatStream(http://threatstream.github.io/mhn/)來(lái)部署,MHN使用開(kāi)源蜜罐來(lái)收集數(shù)據(jù),整理后保存在Mongodb中,收集到的信息也可以通過(guò)web接口來(lái)展示或者通過(guò)開(kāi)發(fā)的API訪問(wèn)。
? ? ? ? MHN能夠提供多種開(kāi)源的蜜罐,可以通過(guò)web接口來(lái)添加他們。一個(gè)蜜罐的部署過(guò)程很簡(jiǎn)單,只需要粘貼,復(fù)制一些命令就可以完成部署,部署完成后,可以通過(guò)開(kāi)源的協(xié)議hpfeeds來(lái)收集的信息。
? ? ? ? MHN支持以下蜜罐:
1.Sort:https://www.snort.org/
2.Suricata:http://suricata-ids.org/
+3.Dionaea:http://dionaea.carnivore.it/,它是一個(gè)低交互式的蜜罐,能夠模擬MSSQL, SIP, HTTP, FTP, TFTP等服務(wù) drops中有一篇介紹:http://drops.wooyun.org/papers/4584
*4.Conpot:http://conpot.org/
*5.Kippo:https://github.com/desaster/kippo,它是一個(gè)中等交互的蜜罐,能夠下載任意文件。 drops中有一篇介紹:http://drops.wooyun.org/papers/4578
6.Amun:http://amunhoney.sourceforge.net/,它是一個(gè)低交互式蜜罐,但是已經(jīng)從2012年之后不在維護(hù)了。
*7.Glastopf:http://glastopf.org/
*8.Wordpot:https://github.com/gbrindisi/wordpot
+9.ShockPot:https://github.com/threatstream/shockpot,模擬的CVE-2014-6271,即破殼漏洞
*10.p0f:https://github.com/p0f/p0f
0x03 MHN的硬件要求
MHN服務(wù)器:
4 GB Ram Dual Core Processor 40 Gb Drive蜜罐:
512 Mb – 1 Gb Dual Core CPU 20 Gb Drive? ? ? ? 具體部署時(shí)取決以蜜罐所在的位置,在防火墻后面或者在直接暴露在互聯(lián)網(wǎng)上,被攻擊次數(shù)不同,消耗的資源肯定也不同。如果只是測(cè)試著玩256M的內(nèi)存就足夠了。
0x04 MHN的安裝
? ? ? ? 因?yàn)門(mén)hreatStream有部署腳本,所以安裝MHN很簡(jiǎn)單,我們?cè)谥话惭b了OpenSSH的Ubuntu 14.04 LTS (64 bits)上進(jìn)行測(cè)試,安裝步驟如下:
#!bash sudo apt-get update && sudo apt-get upgrade sudo apt-get install git cd /opt sudo git clone https://github.com/threatstream/mhn cd /opt/mhn/scripts新版本中已經(jīng)做了修改,安裝前可以做一下檢查
#!bash sudo vim install_mnemosyne.sh找到修改CHANNELS,添加shockpot.events 修改成下面的樣子
#!bash CHANNELS=’amun.events,conpot.events,thug.events,beeswarm.hive,dionaea.capture,dionaea.connections,thug.files,beeswarn.feeder,cuckoo.analysis,kippo.sessions,glastopf.events,glastopf.files,mwbinary.dionaea.sensorunique,snort.alerts,wordpot.events,p0f.events,suricata.events,shockpot.events’sudo ./install_hpfeeds.sh sudo ./install_mnemosyne.sh sudo ./install_honeymap.sh安裝完成后執(zhí)行sudo supervisorctl status看到四個(gè)服務(wù)起來(lái)了
機(jī)器位于公網(wǎng),就可以跳過(guò)這一步,如果只是放在內(nèi)網(wǎng)里面,則需要配置mnemosyne的配置文件
#!bash sudo vim /opt/mnemosyne/mnemosyne.cfg ignore_rfc1918 = False允許節(jié)點(diǎn)使用私有地址和服務(wù)器進(jìn)行通信
重啟服務(wù)
#!bash sudo supervisorctl restart mnemosyne運(yùn)行最后一個(gè)腳本,對(duì)MHN進(jìn)行配置
#!bash sudo ./install_mhnserver.sh===========================================================MHN Configuration===========================================================Do you wish to run in Debug mode?: y/n nSuperuser email: [email protected] Superuser password: Superuser password: (again): Server base url [“http://1.2.3.4″]: http://192.168.5.3Honeymap url [http://1.2.3.4:3000]: http://192.168.5.3:3000Mail server address [“l(fā)ocalhost”]: Mail server port [25]: Use TLS for email?: y/n yUse SSL for email?: y/n yMail server username [“”]: Mail server password [“”]: Mail default sender [“”]: Path for log file [“mhn.log”]:? ? ? ? 這個(gè)過(guò)程需要比較長(zhǎng)的時(shí)間,需要初始化數(shù)據(jù)庫(kù),同時(shí)還要插入Snort/Suricata規(guī)則,腳本運(yùn)行結(jié)束后,直接訪問(wèn)配置中定義的base url,登錄后就可以配置
0x06 MHN服務(wù)器安裝
? ? ? ? 一旦安裝了基礎(chǔ)的服務(wù),就能夠部署蜜罐節(jié)點(diǎn)了,通過(guò)web來(lái)展示相關(guān)數(shù)據(jù)等等,可以根據(jù)具體的境況做一些簡(jiǎn)單的調(diào)整。
? ? ? ? 例如要非匿名的將收集到得攻擊數(shù)據(jù)回傳到ThreatStream,要做以下操作
#!bash cd /opt/mhn/scripts sudo ./disable_collector.sh執(zhí)行enable_collector.sh可以開(kāi)啟
如果想修改smtp服務(wù)的配置,可以編輯config.py,
絕對(duì)路徑
#!bash /opt/mhn/server/config.py cd /opt/mhn/server sudo vim config.py sudo supervisorctl restart mhn-uwsgi? ? ? ? 盡量不要使用超級(jí)管理員來(lái)配置,可以從web頁(yè)面中添加其他的用戶,但是所有用戶都是超級(jí)用戶,沒(méi)有任何區(qū)別,當(dāng)你刪除用戶的時(shí)候,實(shí)際上并沒(méi)有吧該用戶刪除,只是在數(shù)據(jù)庫(kù)中標(biāo)記為”not active”,同時(shí)該用戶不能再次被使用,除非更改數(shù)據(jù)庫(kù)。
? ? ? ? 也可以從終端去直接更改用戶的密碼
#!bash sudo su cd /opt/mhn/ source env/bin/activate cd server python manual_password_reset.py deactivate exit0x07 排錯(cuò)
? ? ? ? 如果發(fā)現(xiàn)服務(wù)不正常,你可以使用一些命令和排查一些日志來(lái)來(lái)判斷問(wèn)題出在哪里,第一個(gè)命令就是supervisorctl,可以看到那些進(jìn)程出問(wèn)題了,那些在正常的運(yùn)行。
#!bash supervisorctlv status#列出所有進(jìn)程的狀態(tài) supervisorctl restart [process|all] #重啟單個(gè)或者全部進(jìn)程 supervisorctl start [process|all] #開(kāi)始單個(gè)進(jìn)程或者全部進(jìn)程 supervisorctl stop [process|all] #停止單個(gè)進(jìn)程或者全部進(jìn)程? ? ? ? 如果你發(fā)現(xiàn)一個(gè)進(jìn)程的狀態(tài)為ERROR或者FATAL,就需在 /etc/supervisor/conf.d/找到對(duì)應(yīng)進(jìn)程的配置文件,查看日志進(jìn)行分析 https://github.com/threatstream/mhn/wiki/MHN-Troubleshooting-Guide,尋求幫助 遇到的問(wèn)題:
? ? ? ? 1.honeymap在安裝的時(shí)候報(bào)錯(cuò)
#!bash hg clone http://code.google.com/p/go.net/ mv go.net/ /opt/honeymap/server/src/code.google.com/p/ go build supervisorctl restart honeymap0x08 MHN的web接口
MHN的web接口是很簡(jiǎn)潔明了的,第一次訪問(wèn)web截面時(shí),需要輸入賬戶名和密碼,登錄成功后會(huì)看見(jiàn)一個(gè)總結(jié)性的頁(yè)面:
1.在最近24小時(shí)內(nèi)有多少攻擊著攻擊
2.攻擊次數(shù)排在前五的IP
3.被攻擊端口排在前五的端口
4.top 5的攻擊簽名
還有一些菜單選項(xiàng)可以進(jìn)行配置或者獲取更多的攻擊細(xì)節(jié)
Map:查看攻擊者的IP在全球的分布
Deploy:添加,編輯和使用蜜罐的部署腳本
Attacks:所有攻擊者的列表
Payloads:所有攻擊的payload,其實(shí)只有三種蜜罐可以收集payload(snort,dionaea.glastofp)
Rules:所有的snort和suricata規(guī)則
Seneors:有安裝蜜罐節(jié)點(diǎn)操作的相關(guān)記錄
Settings:MHN服務(wù)的設(shè)置
攻擊來(lái)源全球的分布圖,運(yùn)行在3000端口,是不需要驗(yàn)證就能看到的,可以做ACL開(kāi)控制訪問(wèn)。
0x09 蜜罐節(jié)點(diǎn)
? ? ? ? 這一節(jié)中,主要討論蜜罐,如何安裝,多么容易操作,以及會(huì)出現(xiàn)的問(wèn)題,是否需要在進(jìn)行特殊的配置等等。也會(huì)進(jìn)行一些測(cè)試,看攻擊者如何攻擊,蜜罐對(duì)攻擊行為的記錄。最后會(huì)討論MHN如何收集信息,以及web所展現(xiàn)的數(shù)據(jù)。
9.1 安裝蜜罐節(jié)點(diǎn)
? ? ? ? 安裝蜜罐節(jié)點(diǎn)很容易,所有的節(jié)點(diǎn)都基于同樣的平臺(tái),MHN上對(duì)每個(gè)蜜罐都有對(duì)應(yīng)的安裝腳本,所以安裝起來(lái)是非常容易的,只需要一個(gè)服務(wù)器去安裝。
? ? ? ? 我們?cè)赨buntu 14.04 LTS 上進(jìn)行測(cè)試。建議通過(guò)ssh去訪問(wèn),如果不可以,請(qǐng)安裝ssh,修改對(duì)應(yīng)的22端口,同時(shí)加防火墻保護(hù)
? ? ? ? 安裝ssh
#!bash sudo apt-get update && sudo apt-get upgrade && sudo apt-get install openssh-server修改端口為2222
#!bash vim /etc/ssh/sshd_configPort 2222重啟服務(wù)
#!bash sudo service ssh restart定義的安裝腳本在MHN服務(wù)器的web界面中,在”Deploy”這個(gè)選項(xiàng)下有所有蜜罐的安裝腳本。
http://192.168.5.11/ui/manage-deploy/?script_id=11安裝完成后可以通過(guò)以下命令來(lái)檢查
#!bash sudo netstat –tunlp #產(chǎn)看當(dāng)前的網(wǎng)絡(luò)連接情況 supervisorctl status #查看運(yùn)行狀態(tài)9.2 Wordpot
首先,安裝一個(gè)wordpress蜜罐在Ubuntu 14.04 LTS上,安裝完成后 sudo netstat –tunlp查看80端口是否打開(kāi), sudo supervisorctl status可以查看服務(wù)的運(yùn)行狀態(tài)。 訪問(wèn)后該ip,看到下圖
如果想更改wp的插件和相關(guān)設(shè)置,
#!bash vim /opt/wordpot/wordpot.conf使用nmap掃描該80端口
#!bash nmap -A -Pn -p80 192.168.10.21? ? ? ? 通過(guò)nmap識(shí)別80看到的是wordpress 2.8,運(yùn)行的http版本是0.96,識(shí)別出來(lái)的python 2.7.6的版本。這種端口掃描不會(huì)被記錄,回傳到MHN服務(wù)。
? ? ? ? 使用wpscan進(jìn)行掃描
#!bash wpscan –url http://ip/9.3 p0f被動(dòng)指紋識(shí)別系統(tǒng)
p0f是一個(gè)被動(dòng)的系統(tǒng)指紋識(shí)別工具,借助它可以快速識(shí)別操作系統(tǒng)的類(lèi)型和其他的信息,它在MHN中部署也是很容易的,p0f有可以根據(jù)已有的指紋,能夠快速的匹配,雖然不是一個(gè)精確計(jì)算,但是識(shí)別度很高。
? ? ? ? 通過(guò)netstat命令的輸出可以看到?jīng)]有p0f沒(méi)有去新建新的進(jìn)程來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽(tīng)。
? ? ? ? 如果所要保護(hù)的ssh端口處于防火墻后或者前端有一個(gè)IPS/IDS,獲取這些數(shù)據(jù)的時(shí)候就比較麻煩。
? ? ? ? 如果我們?cè)诎惭b了wordpot的機(jī)器上安裝p0f,一個(gè)訪問(wèn)wordpot的80端口的請(qǐng)求不會(huì)觸發(fā)wordpot的報(bào)警,但是p0f會(huì)觸發(fā),MHN只是能夠顯示攻擊者攻擊的端口,但是不能顯示關(guān)于操作系統(tǒng)類(lèi)型,uptime和其他的信息。p0f的日志是純文本的,分析和收集數(shù)據(jù)不是太容易,還好p0f存在API,還有一些其他的工具,可以幫助我們快速分析。
如果需要正在進(jìn)行攻擊的系統(tǒng)系統(tǒng)的信息,可以從/var/log/p0f.out中提取,可以使用python、bash、sed、grep等來(lái)幫助你快速的獲取想要的信息。 想要獲取相關(guān)ip的系統(tǒng)信息,可以使用以下這個(gè)命令
#!bash grep -n “\[ 192.168.10.151.*\(syn\)\|os\s*=” /var/log/p0f.out如果想要獲得更多關(guān)于p0f的信息,訪問(wèn) http://www.sans.org/security-resources/idfaq/p0f.php,查看相關(guān)接口信息https://github.com/p0f/p0f/blob/master/docs/README,還有很重要的一點(diǎn),p0f把攻擊的信息保存在MHN服務(wù)的mongodb中,其他的一些信息,如操作系統(tǒng)類(lèi)型等信息沒(méi)有展現(xiàn)出來(lái),有可能下一個(gè)版本會(huì)對(duì)這些信息進(jìn)行展示。
9.4 kippo蜜罐
? ? ? ? kippo是一個(gè)中等交互式的ssh蜜罐,安裝它很容易,但是要注意以下
? ? ? ? 1.ssh服務(wù)默認(rèn)監(jiān)聽(tīng)的是22端口,/etc/ssh/sshd_config為默認(rèn)配置文件,要想正常運(yùn)行,需要修改監(jiān)聽(tīng)端口到2222。
? ? ? ? 2.安裝完成后需要重啟服務(wù)。
? ? ? ? 3.supervisor可以使kippo程序運(yùn)行,但是不能夠停止它,這需要修改部署腳本
? ? ? ? 進(jìn)入web的deploy界面,選擇kippo,在部署腳本后添加下面這些東西
#!bash command=/opt/kippo/start.sh #modify this command for the line belowcommand=su kippo -c “authbind –deep twistd -n -y /opt/kippo/kippo.tac -l /opt/kippo/log/kippo.log –pidfile /opt/kippo/kippo.pid”stopsignal=QUIT #Modify this line for the line belowstopasgroup=true? ? ? ? 編輯完成后點(diǎn)擊update保存,安裝完成后就可以看到kippo監(jiān)聽(tīng)在22端口,ssh服務(wù)在2222端口,下次ssh登錄的服務(wù)器的時(shí)候需要指定ssh -p 2222 ip,否則登錄的為kippo。
? ? ? ? 以下是一些關(guān)于kippo的介紹,包括如何配置以及工作原理:
1.默認(rèn)的ssh登錄賬戶名密碼為root/12345,也可以進(jìn)行配置,配置的路徑在 /opt/kippo/data/userdb.txt,同時(shí)當(dāng)攻擊者登陸后,使用useradd和passwd添加賬戶和密碼的時(shí)候也會(huì)保存在這個(gè)文件里面.2.當(dāng)攻擊者下載文件時(shí),下載的文件會(huì)被保存在/opt/kippo/dl3.可以設(shè)置蜜罐中命令執(zhí)行后的返回值,也可以添加命令.例如來(lái)修改ifconfig命令的輸出,可以編輯/opt/kippo/txtcmds/sbin/ifconfig這個(gè)文本文件。4.有一個(gè)特點(diǎn)就是,當(dāng)攻擊者輸入exit想退出的時(shí)候,其實(shí)沒(méi)有退出,只是顯示退出,給攻擊者一個(gè)假象,以為回到的他的本機(jī),他接下來(lái)的操作還是會(huì)被記錄到日志中。5.你可以更改/opt/kippo/honeyfs,里面保存模擬的系統(tǒng)的文件等內(nèi)容,使蜜罐更像真實(shí)環(huán)境。6.log存儲(chǔ)在/opt/kippo/log/kippo.log,你也可以修改配置,把log存儲(chǔ)到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)的表結(jié)構(gòu)在 /opt/kippo/doc/sql目錄中。7.每一次登錄成功后的操作都會(huì)把日志單獨(dú)再存儲(chǔ)一份,存儲(chǔ)的路徑在/opt/kippo/log/tty,可以通過(guò)在/opt/kippo/utils中的playlog.py腳本,來(lái)重現(xiàn)這個(gè)操作過(guò)程。? ? ? ? 安裝和配置kippo后,如果有人嘗試登錄,會(huì)被記錄登錄所使用的用戶名和密碼。
? ? ? ? 我們用nmap來(lái)掃描,看到以下信息
? ? ? ? 根據(jù)nmap的輸出,我們看到22端口已經(jīng)被識(shí)別為ssh服務(wù),其中輸出的ssh版本能夠在kippo.cfg中被修改,這種簡(jiǎn)單的掃描是不會(huì)在MHN服務(wù)上產(chǎn)生記錄的 如果我們使用hydra(https://www.thc.org/thc-hydra/),去進(jìn)行暴力破擊(hydra -l root -P darkc0de.lst ssh://192.168.10.21),hydra在連接的時(shí)候 會(huì)出現(xiàn)一些問(wèn)題,但是我們使用 medusa(http://foofus.net/goons/jmk/medusa/medusa.html)時(shí),暴力破解的命令如下
#!bash medusa -u root -P darkc0de.lst -M ssh -h 192.168.10.21? ? ? ? 每進(jìn)行一次嘗試登錄,都會(huì)產(chǎn)生一條掃描記錄,如果想更了解kippo,可以參考http://edgis-security.org/honeypot/kippo/
9.5 Suricata網(wǎng)絡(luò)入侵檢測(cè)和阻止引擎
? ? ? ? Suricata的部署腳本沒(méi)有問(wèn)題,直接執(zhí)行就好了,部署完成后需要重啟服務(wù)。Suricata是一個(gè)IDS,監(jiān)聽(tīng)的接口為eth0,規(guī)則是通過(guò)crontab中的/etc/cron.daily/update_suricata_rules.sh腳本,每天都從MHN服務(wù)更新的(可以開(kāi)啟或者關(guān)閉規(guī)則)
? ? ? ? 正如supervisor顯示的,只有一個(gè)進(jìn)程,沒(méi)有生成其他的服務(wù),因?yàn)樗皇且粋€(gè)IDS,如果我們使用nmap進(jìn)行掃描,只看到一個(gè)ssh服務(wù),這側(cè)掃描會(huì)被記錄,同時(shí)在MHN中顯示
Sensor Log:
MHN Server:
Suricata只會(huì)把攻擊報(bào)告給MHN服務(wù),但是攻擊細(xì)節(jié)存儲(chǔ)在Suricata的日志中,不會(huì)被顯示
1./var/log/suricata.log:日志記錄了Suricata進(jìn)程相關(guān)的信息,如啟動(dòng)報(bào)錯(cuò),錯(cuò)誤的規(guī)則等等,這份日志由supervisor產(chǎn)生 2./var/log/suricata/:設(shè)計(jì)到suricata操作的輸入日志,報(bào)警日志,http請(qǐng)求日志,dns請(qǐng)求日志等等 3./var/log/suricata/http.log:http請(qǐng)求,不是報(bào)警 4./var/log/suricata/fast.log:一行存儲(chǔ)一個(gè)報(bào)警 5./var/log/suricata/eve.json:格式為json,包含報(bào)警和相關(guān)的事件 6./var/log/suricata/unified2.alert:報(bào)警文件為Barnyard2格式 (http://www.forensicswiki.org/wiki/Barnyard2)Suricata的配置文件
1./opt/suricata/etc/suricata/classification.config :報(bào)警的優(yōu)先級(jí) 2./opt/suricata/etc/suricata/reference.config :使用的漏洞數(shù)據(jù)庫(kù) 3./opt/suricata/etc/suricata/suricata.yaml :suricata的配置文件 4./opt/suricata/etc/suricata/reference.config :通過(guò)配置來(lái)減少報(bào)警的數(shù)量,例如不想記錄所有ICMP請(qǐng)求的來(lái)源為一樣的IPIDS/IPS配置是很復(fù)雜的,這里只是簡(jiǎn)單的說(shuō)明,需要詳細(xì)了解suricata的,訪問(wèn)這里http://suricata-ids.org/docs/
9.6 snort
? ? ? ? snort是像Suricata一樣的IDS/IPS,和Suricata使用類(lèi)似的規(guī)則,同時(shí)工作方式也很像,同樣部署腳本沒(méi)有問(wèn)題,通過(guò)crontab.daily來(lái)更新規(guī)則庫(kù),不會(huì)其他用來(lái)監(jiān)聽(tīng)連接的服務(wù)
? ? ? ? 它的配置文件和Suricata使用的suricata.yaml很像,它的配置文件為snort.conf,日志存儲(chǔ)在/var/log/snort/alert目錄下.
? ? ? ? 想更加了解snort,訪問(wèn)https://www.snort.org/
9.7 Amun
Amun蜜罐已經(jīng)好久沒(méi)有更新了,這里不做過(guò)多的討論。
9.8 Shockpot
? ? ? ? Shockpot是一個(gè)web蜜罐,用來(lái)模擬破殼漏洞,CVE-2014-6271 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271,破殼漏洞是一個(gè)影響很廣泛的漏洞,影響Mac OsX,Linux和Unix,這個(gè)漏洞產(chǎn)生在GNU Bash(shell)上,允許遠(yuǎn)程命令執(zhí)行,雖然已經(jīng)出現(xiàn)了補(bǔ)丁,但不是所有的機(jī)器都有更新。使用這個(gè)蜜罐,可以用來(lái)捕獲這個(gè)漏洞的利用代碼,
? ? ? ? 關(guān)于這個(gè)漏洞的詳情https://shellshocker.net/
? ? ? ? 部署腳本有一些問(wèn)題,進(jìn)入Deploy頁(yè)面,選擇Shockpot對(duì)期做一點(diǎn)修改,在"#Config for supervisor. "和"EOF"中加入一下代碼
[fetch_public_ip]enabled = falseurls = [“http://api.ipify.org",” http://bot.whatismyipaddress.com/”]如果服務(wù)器有公網(wǎng)IP,就加入上面這一段.
安裝完成后重啟服務(wù)
看到以下運(yùn)行的進(jìn)程,有一個(gè)新的服務(wù)在80上監(jiān)聽(tīng)
如果通過(guò)瀏覽器去訪問(wèn)http://ip ,會(huì)看到”It Works!”這個(gè)默認(rèn)的Apache頁(yè)面
telnet ip 80 GET / HTTP/1.0返回以下頭部
?
顯示這是一個(gè)Debian服務(wù)器,使用了PHP和OpenSSL
nmap -A -p80 192.168.10.21上面的這些操作MHN是不會(huì)記錄的,下面我們來(lái)攻擊蜜罐
#!bash curl -H “User-Agent: () { :; }; /bin/ping -c 1 TARGET_HOST_IP” http://SHOCKPOT_IP我看看到日志里輸出/var/log/shockpot/shockpot.log report
MHN中的記錄
更多關(guān)于破殼的利用https://blog.cloudflare.com/inside-shellshock/
9.9 Conpot
? ? ? ? Conpot是一個(gè)工業(yè)控制系統(tǒng)和Scada蜜罐,針對(duì)這些類(lèi)型的攻擊是在近幾年快速增長(zhǎng),是因?yàn)榘踩诠I(yè)系統(tǒng)中要求較低,才造成了現(xiàn)在這種場(chǎng)面,安全專(zhuān)家們也在想辦法保護(hù)這些脆弱的系統(tǒng)。
? ? ? ? 安裝簡(jiǎn)單,安裝完成后需要重啟服務(wù),使用supervisorctl status 可以看到一個(gè)進(jìn)程,但是使用netsta 可以看到好幾個(gè)監(jiān)聽(tīng)的端口。
? ? ? ? Conpot使用了一些模塊,能夠提供以下服務(wù)
MODBUS TCP —> tcp/502 HTTP —> tcp/80 SNMP —> udp/161 S7COMM —> tcp/102使用nmap掃描
nmap -A -p1-1000 192.168.10.21 #!bash nmap -sU -p161–script snmp-sysdescr 192.168.10.21產(chǎn)生的記錄
9.10 Glastopf
? ? ? ? Glastopf是最好的web蜜罐,它模擬了很多漏洞,特別是遠(yuǎn)程文件包含漏洞,可以捕獲到攻擊只插入的文件.部署依舊很簡(jiǎn)單,安裝完成后重啟服務(wù),你會(huì)看到一個(gè)進(jìn)程
? ? ? ? netstat 會(huì)有以下輸出
模擬的http,mongodb只在本地監(jiān)聽(tīng).
#!bash nmap -A -p80 192.168.10.21你能看到模擬的是apache,我們使用web漏洞掃瞄器像niko(https://cirt.net/Nikto2) nikto -h 192.168.10.21
? ? ? ? nikto報(bào)告了5536個(gè)項(xiàng)目,顯然蜜罐對(duì)攻擊者很有吸引力,我們到MHN的web界面上看到所有的攻擊報(bào)告,但是如果我們點(diǎn)擊Payload,選擇glastopf.events,我們可以看到很多記錄,在“Regex term”中輸入”rfi”會(huì)看到下面這些
? ? ? ? 對(duì)于這些被下載的文件,我們能夠看到它們的md5值,這些文件都保存在/opt/glastopf/data
Glastopf是很好配置的,/opt/glastopf/glastopf.cfg配置文件,日志/opt/glastopf/log/glastopf.log.
? ? ? ? 官網(wǎng)
? ? ? ? https://www.honeynet.org/sites/default/files/files/KYT-Glastopf-Final_v1.pdf
9.11 dionaea
? ? ? ? dionaea將有漏洞的服務(wù)暴露出來(lái),允許攻擊者發(fā)送保存任何文件,安裝簡(jiǎn)單
? ? ? ? 看到下面
暴露的服務(wù)
服務(wù)列表
#!bash tcp/5060 —> SIP Protocol tcp/5061 —> SIP Protocol over TLS tcp/135 —> Remote procedure Call RPC tcp/3306 —> MySQL Database tcp/42 —> WINS Protocol tcp/21 —> FTP Protocol tcp/1433 —> MSSQL tcp/445 —> SMB over TCP udp/5060 —> SIP Protocol udp/69 —> TFTPnmap -sS -sV -p1-65535 192.168.10.21? ? ? ? 在掃描結(jié)果中,我們看到ftp和smb服務(wù)的指紋是"Dionaea Honeypot",這種掃描產(chǎn)生的記錄都被記錄了,掃描UDP
#!bash nmap -sU -sV -p69,5060 192.168.10.21? ? ? ? 我們沒(méi)有修改banner,會(huì)被nmap識(shí)別,如果需要修改,編輯 /usr/lib/dionaea/python/dionaea這個(gè)python文件,需要更加了解他,訪問(wèn)http://www.securityartwork.es/2014/06/05/avoiding-dionaea-service-identification/?lang=en,配置文件在 /etc/dionaea/dionaea.conf,日志保存在/var/dionaea/log/dionaea.log
? ? ? ? 使用nessus進(jìn)行掃描,發(fā)現(xiàn)了53個(gè)問(wèn)題,45個(gè)info,3個(gè)緊急
? ? ? ? 我們看到有MS04-007漏洞,這個(gè)漏洞能夠執(zhí)行任意代碼,通過(guò)向主機(jī)發(fā)送ASN.1編碼后的數(shù)據(jù)包,Metasploit中使用的模塊是 “MS04-007 Microsoft ASN.1 Library Bitstring Heap Overflow”,使用Metasploit發(fā)起攻擊,會(huì)返回“The SMB server did not reply to our request”,這種攻擊會(huì)報(bào)告給mhn,攻擊的細(xì)節(jié)保存在/var/dionaea/bistreams/.
0x10 總結(jié)
? ? ? ? 我們已經(jīng)大概了解了mhn的總體概況,怎么安裝和怎么去部署蜜罐節(jié)點(diǎn),還有這些蜜罐大概的一些情況。如果你清楚你想做的,部署蜜網(wǎng)是很有用的.可以獲取攻擊者更準(zhǔn)確的信息,然后來(lái)做防御。
? ? ? ? 在部署蜜罐節(jié)點(diǎn)是,盡可能的根據(jù)具體情況來(lái)組合部署,這樣可以是攻擊者花費(fèi)更多的時(shí)間,從中獲取更多的信息,爭(zhēng)取到更多的響應(yīng)時(shí)間。
? ? ? ? 例如snort,Glastopf,Dionaea和kippo,在具體部署之前先要好好測(cè)試,避免在真實(shí)環(huán)境中出現(xiàn)意想不到的問(wèn)題。
? ? ? ? 個(gè)人的看法: 曾經(jīng)做過(guò)類(lèi)似的一個(gè)東西,不過(guò)相比這個(gè)來(lái)說(shuō)就有些粗糙了,MHN中支持的開(kāi)源蜜罐種類(lèi)很多,基本已經(jīng)涵蓋了現(xiàn)有所有的開(kāi)源蜜罐,可以根據(jù)具體的業(yè)務(wù)場(chǎng)景來(lái)組合。也可以根據(jù)具體的場(chǎng)景來(lái)做二次開(kāi)發(fā),因?yàn)榛貍鞯臄?shù)據(jù)有些簡(jiǎn)單了。如果是放置在內(nèi)網(wǎng)中,報(bào)警功能就很有必要性,內(nèi)網(wǎng)中得蜜罐只是為了能夠延緩攻擊的進(jìn)度,以及及時(shí)發(fā)現(xiàn)入侵,從而切斷入口。
?
總結(jié)
以上是生活随笔為你收集整理的蜜罐网络(开源汇总)MHN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: echo “1“ > /proc/sys
- 下一篇: python vars() 函数用法及实