honeyd蜜罐配置和web監聽腳本


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主機響應訪問時終端的顯演示樣例如以下:


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服務腳本例如以下:


這是一個shell腳本。主要是用於寫入圖中紫色的html代碼,html代碼由兩部分組成。<body>至</body>創建一個web界面,包括username和password兩個表單;上面為javascript部分,當點擊登陸button的事件發生時,它會將用戶username和password兩個表單中的內容提交給192.168.1.2的備用開放port20。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM