序言介紹:為了應(yīng)對(duì)層出不窮的反虛擬機(jī)技術(shù),本文實(shí)現(xiàn)一種真機(jī)搭建cuckoo的方式,結(jié)合國(guó)家網(wǎng)路中心的clonezila來(lái)實(shí)現(xiàn)分析機(jī)器的還原。
1.硬件準(zhǔn)備
*ubuntu16.04服務(wù)器一臺(tái)(可在虛擬機(jī)中實(shí)現(xiàn))
*win7或者winxp一臺(tái)
*交換機(jī)一臺(tái)
2.服務(wù)器搭建
?????我選擇的目前最新的ubuntu16.04,內(nèi)置python2.7比較方便,當(dāng)然也可以選擇其他版本的系統(tǒng),或者centos應(yīng)該也可以,不過(guò)最好用ubuntu,因?yàn)橘Y料較多,cuckoo官方資料也是用cuckoo搭建的。
1.安裝python2.7
?????這是cuckoo所需要的,如果你的系統(tǒng)內(nèi)置了python2.7那就不用安裝了,安裝步驟網(wǎng)上教程一大堆,不再贅述。查看python版本 python -V,一般內(nèi)置pip安裝工具,沒(méi)有的話另外安裝一下。
2.安裝依賴庫(kù)
?????1.安裝相關(guān)的依賴庫(kù)
sudo apt-get install python python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg-dev
然后去cuckoog官網(wǎng)或者github下載cuckoo最新版本,然后解壓打開cuckoo文件夾,有個(gè)requiremens.txt的文件夾,這需要全部下載,可以用python的pip進(jìn)行安裝,其中其中的 pefile 需要從 Google Code 上下載,由于大陸網(wǎng)絡(luò)限制,需要自備梯子,登上梯子后執(zhí)行以下批量安裝命令:
pip install -r requirements.txt
或者先把pefile安裝源碼下載,手動(dòng)安裝,然后把它從requirements.txt里刪除,然后用pip命令安裝,個(gè)人建議用第二種方法。
?????2.Host 機(jī)需要可以嗅探網(wǎng)絡(luò)數(shù)據(jù)包,需要安裝 tcpdump ,如果本機(jī)沒(méi)有,則執(zhí)行以下命令安裝 tcpdump:
**apt-get install tcpdump**
如果系統(tǒng)沒(méi)啟用 root 賬戶,由于 tcpdump 的執(zhí)行需要 root 權(quán)限,則需要以下配置:
**$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump**
如果系統(tǒng)里沒(méi)有setcap命令,則需要安裝 libpcap包:
**$ sudo apt-get install libcap2-bin**
如果需要啟用內(nèi)存鏡像分析,需要安裝 volatility:
**apt-get install volatility**
3.cuckoo配置文件的修改
?????主要修改的文件有:cuckoo.conf,physical.conf,auliary.conf.重點(diǎn)修改前兩個(gè)。
?????1.修改cuckoo.conf
version_check = on 這個(gè)其實(shí)可以關(guān)掉,不然一直檢查,如果你版本稍微低了一下就報(bào)錯(cuò)。
machinery = physical 這個(gè)地方改成physical
ip = 192.168.56.1 根據(jù)你的實(shí)際情況填寫
vm_state = 60 根據(jù)你的電腦實(shí)際還原時(shí)間填寫
?????2.修改physical.conf
user = username
password = password 根據(jù)你的分析機(jī)填寫
interface = eth0根據(jù)你的網(wǎng)卡填寫
ip = 192.168.56.101根據(jù)你的分析機(jī)填寫
4.安裝drbl
?????1. 設(shè)置靜態(tài)ip地址,直接在桌面設(shè)置及可以了。
?????2.安裝drbl金鑰
wget -q http://drbl.nchc.org.tw/GPG-KEY-DRBL -O- | sudo apt-key add -
?????3.添加drbl源(根據(jù)自己的系統(tǒng)版本修改一下)
vi /etc/apt/sources.list
deb http://free.nchc.org.tw/ubuntu xenial main restricted universe multiverse
deb http://free.nchc.org.tw/drbl-core drbl stable
?????3.安裝drbl
sudo apt-get update
sudo apt-get install drbl
?????4.設(shè)置drblserver
sudo drblsrv -i
提示!當(dāng)有yes/no選項(xiàng)的時(shí)候,預(yù)設(shè)的值是大寫的字母。例如 (y/N), 預(yù)設(shè)值是 "N", 當(dāng)你按 "Enter"的時(shí)候,程式使用的值就是 "N"。如果你不確認(rèn)選用那個(gè)好的時(shí)候,直接按"Enter"鍵是一個(gè)保險(xiǎn)的方式.感覺(jué)不保險(xiǎn)的話,去搜一下,很多介紹的,在這不贅述。
?????5.設(shè)置環(huán)境
sudo drblpush -i
提示!當(dāng)有yes/no選項(xiàng)的時(shí)候,預(yù)設(shè)的值是大寫的字母。例如 (y/N), 預(yù)設(shè)值是 "N", 當(dāng)你按 "Enter"的時(shí)候,程式使用的值就是 "N"。如果你不確認(rèn)選用那個(gè)好的時(shí)候,直接按"Enter"鍵是一個(gè)保險(xiǎn)的方式.感覺(jué)不保險(xiǎn)的話,去搜一下,很多介紹的,一般都差不多。注意有一點(diǎn),搜集網(wǎng)卡的時(shí)候盡量選擇實(shí)時(shí)收集,然后收集完,注意查看是否有文件在相應(yīng)目錄,還有注意系統(tǒng)讀取網(wǎng)卡文件的名字的命名方式,比如我的網(wǎng)卡為ens33,所以網(wǎng)卡文件為macadr-ens33.txt,但是系統(tǒng)讀取文件的時(shí)候可能會(huì)去查找以macadr-eth開頭的文件,所以遇到這種情況的話,去手動(dòng)創(chuàng)建一個(gè)這樣的文件就可以了。還有就是配置的時(shí)候盡量切到/etc/drbl目錄下進(jìn)行操作。
?????6.現(xiàn)在基本上drbl就設(shè)置好了。
5。網(wǎng)路設(shè)置
?????由于我在虛擬機(jī)上搭建的服務(wù)器,所以我選擇橋接模式,橋接到物理機(jī)有線網(wǎng)卡上,然后外接到交換機(jī),然后分析機(jī)器也接到交換機(jī),構(gòu)成一個(gè)物理的局域網(wǎng)環(huán)境。
3.分析機(jī)設(shè)置
1.首先安裝python2.7,去python官網(wǎng)下載就好了。
2.關(guān)閉防火墻,自動(dòng)更新,uac。
3.設(shè)置python運(yùn)行權(quán)限為管理員。
4.設(shè)置固定ip.(注意此時(shí)的ip不要和clonezila給他分配的ip一致,否則在還原的時(shí)候,網(wǎng)絡(luò)捕捉模塊會(huì)抓取太多還原時(shí)候的無(wú)用包,從而導(dǎo)致分析報(bào)告異常龐大。)
**到此整個(gè)環(huán)境搭建就已經(jīng)差不多了。注意需要熟悉drbl的使用方法才能使用此環(huán)境。此外還需要把drbl還原分析機(jī)的指令加入到cuckoo的源代碼里去。文件具體為:scheduler庫(kù)文件,添加到讓分析機(jī)關(guān)機(jī)指令的前面位置。