cuckoo簡介:Cuckoo基于虛拟機技術,使用中央控制系統和子產品設計,結合python的自動化特征,已經是頗為自動化的惡意軟體行為研究環境。獨到的蜜罐網絡研發的技巧,讓Cuckoo可以輕而易舉的進行URL分析、網絡通訊分析、程式分析、pdf分析。個人推薦使用debian或ubuntu主機安裝virtualbox當作Cuckoo Host,WinXP做guest。
運作環境:Ubuntu 14.04 LTS Desktop(64Bit),VirtualBox,Windows Xp SP3
參考資料: cuckoo.pdf(特别重要,官網可以下載下傳www.cuckoosandbox.org),http://arisri.tistory.com/m/post/127,http://github.com/cuckoobox/cuckoo,
1,配置主機:
首先下載下傳一些需要的軟體和庫:
安裝python及依賴庫
$ sudo apt-get install python
$ sudo apt-get install python-sqlalchemy python-bson
$sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-gridfs
安裝tcpdump及配置運作權限為root
$ sudo apt-get install tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
可以用下面的操作驗證結果:
$ getcap /usr/sbin/tcpdump
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
如果沒有安裝setcap,可以先下載下傳setcap
$ sudo apt-get install libcap2-bin
或者手動修改:
$ sudo chmod +s /usr/sbin/tcpdump
安裝volatility
$ sudo apt-get install volatility
安裝git
$ sudo apt-get install git
2,建立使用者
必須保證運作Cuckoo的使用者和建立并運作虛拟機的使用者是同一個,否則Cuckoo不會識别虛拟機,也無法登入。你可以将目前使用者運作Cuckoo或者為Cuckoo建立一個使用者。
建立新使用者:
$ sudo adduser cuckoo
如果是使用Virtualbox來運作虛拟機,那麼確定運作Cuckoo的使用者屬于vboxusers組(或者你用于運作VirtualBox的組)
$ sudo usermod -G vboxusers cuckoo
3,下載下傳Cuckoo
$ git clone git://github.com/cuckoobox/cuckoo.git
4、配置Cuckoo
Cuckoo依賴6個配置檔案:
cuckoo.conf:配置通用操作和分析選項
auxiliary.conf:使能和配置輔助子產品
<machinery>.conf:定義本機虛拟化軟體的選項,檔案的名字與cuckoo.conf中定義的機器子產品的名字相同
memory.conf:Volatility配置
processing.conf:使能和配置處理子產品
reporting.conf:使能和關閉報告格式
通常隻需要編輯cuckoo.conf 、auxiliary.conf和<machinery>.conf這三個檔案。
cuckoo.conf
檔案中大部分是注釋和解釋,重點關注下面的選項:
machinery in [cuckoo]:這定義了你想要使用的Cuckoo與虛拟機互動的機器子產品,預設值是virtualbox,名字要與子產品名完全相同
ip和port in [resultserver]:這是Cuckoo的分析機器的本地IP和端口。本機使用Ubuntu,可以使用ifconfig檢視
auxiliary.conf
這個檔案跟随預設配置即可
<machinery>.conf
machines in [virtualbox]:這個選項指定了使用virtualbox建立的虛拟機的名字
label in [cuckoo1]:定義了VirtualBox配置指定的目前機器的标簽名
ip in [cuckoo1]:定義目前虛拟機的IP位址
5,配置客戶機:
安裝VirtualBox:
$ sudo apt-get install virtualbox
安裝虛拟機:
安裝xp虛拟機,省略。。。。。
安裝需要的軟體:
安裝python。運作cuckoo需要python
根據你要分析的檔案,安裝相應的軟體,注意, 關閉所有附加軟體的自動更新和檢查更新選項。
配置虛拟機網絡:使用NAT即可
關閉作業系統的防火牆和自動更新選項。
安裝Agent:
在cuckoo的agent/目錄下有agent.py檔案,将其複制到虛拟機作業系統的開始檔案夾中,使其可以開機運作
儲存虛拟機:
在儲存之前確定配置之後的虛拟機已經重新開機過并且目前正在運作,Cuckoo的agent在運作且xp已經完全啟動。
生成快照:
$ VBoxManage snapshot "<Name of VM>" take "<Name of snapshot>" --pause
快照完成後,關閉虛拟機并存儲
$ VBoxManage controlvm "<Name of VM>" poweroff
$ VBoxManage snapshot "<Name of VM>" restorecurrent
此時cuckoo的所有基本配置就已經完成了。
6,Cuckoo的使用:
啟動cuckoo:
$ ./cuckoo.py
注意cuckoo.py不一定用sudo運作,一定要使用之前設定的使用者運作cuckoo
然後另開一個指令行視窗
送出分析的檔案到主機:
$ python /home/kevin/cuckoo-master/utils/submit.py --url http://www.baidu.com
然後在storage/analyses的相應ID目錄下會有生成報告。
輸出中報錯及解決方案:
TcpDump is not accessible from this user, network capture aborted
在github上托管的代碼中可以找到這個部分的代碼,從注釋中可以看出這個問題是cuckoo未解決的問題。臨時解決方案是從github上下載下傳最新的Cuckoo版本。
VBoxManage exited with error restoring the machine’s snapshot
注意操作順序,先儲存虛拟機,然後運作cuckoo,最後送出分析任務。否則會出現上述問題。
CuckooCriticalError: Unable to bind ResultServer on 192.168.1.89:2042 [Errno 99] Cannot assign requested address
這說明是ResultServer的IP跟host的IP不一緻。
cuckoo1:the guest initialization hit the critical timeout, analysis aborted.
這個問題正在解決。。。。