Cuckoo SandBox V2.0.4安裝指南

Cuckoo SandBox V2.0.4踩坑筆記。目前網(wǎng)上大部分Cuckoo的安裝教程為2.0版本的Cuckoo SandBox煮嫌,該沙箱的上下版本不兼容铁材,除參考本教程外型雳,建議Google(不要百度),或者參考Cuckoo的官方文檔挤茄。https://cuckoo.sh/docs/

作者:Henry3II

0x00 前言

Cuckoo Sandbox是一個(gè)開(kāi)源的惡意文件自動(dòng)化分析系統(tǒng)如叼,采用python和c/c++開(kāi)發(fā),跨越windows穷劈、android笼恰、linux和darwin四種操作系統(tǒng)平臺(tái),支持二進(jìn)制的PE文件(exe歇终、dll社证、com)、PDF文檔评凝、office文檔追葡、URLs、HTML文件、各種腳本(PHP宜肉、VB疾渣、Python)、jar包崖飘、zip文件等等幾乎所有的文件格式榴捡。能分析惡意文件的靜態(tài)二進(jìn)制數(shù)據(jù)和動(dòng)態(tài)運(yùn)行后的進(jìn)程、網(wǎng)絡(luò)朱浴、文件等行為吊圾。對(duì)于惡意文件的初步分析定性具有很大幫助。(這是我復(fù)制的)

配置情況:

主機(jī)(host):

Ubuntu 16.04 LTS 
8Gb Ram
VirtualBox 
Cuckoo Sandbox 2.0.4

客戶機(jī)(guest):

Windows 7 Professional
2Gb Ram

注:在安裝之前最好為Cuckoo設(shè)置一個(gè)賬戶(比如翰蠢,cuckoo)项乒,在安裝Cuckoo時(shí)不要所有的都是用sudo來(lái)安裝,這樣后面會(huì)出現(xiàn)各種權(quán)限的錯(cuò)誤梁沧。

0x01 主機(jī)環(huán)境準(zhǔn)備

安裝需要的依賴(lài):

$ sudo apt-get install git mongodb libffi-dev build-essential python-django python python-dev python-pip python-pil python-sqlalchemy python-bson python-dpkt python-jinja2 python-magic python-pymongo python-gridfs python-libvirt python-bottle python-pefile python-chardet tcpdump -y

安裝Tcpdump并確認(rèn)安裝無(wú)誤:

$ 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

安裝Pydeep:

$ wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz
$ tar -zxf ssdeep-2.13.tar.gz
$ cd ssdeep-2.13
$ ./configure
$ make
$ sudo make install

#確認(rèn)安裝無(wú)誤
$ ssdeep -V
Then proceed by installing pydeep:

$ sudo pip install pydeep
Validate that the package is installed:

$ pip show pydeep
---
Name: pydeep
Version: 0.2
Location: /usr/local/lib/python2.7/dist-packages
Requires:

安裝Volatility:

#先安裝依賴(lài)
$ sudo pip install openpyxl
$ sudo pip install ujson
$ sudo pip install pycrypto
$ sudo pip install distorm3
$ sudo pip install pytz 

#然后安裝volatility
$ git clone https://github.com/volatilityfoundation/volatility.git
$ cd volatility
$ python setup.py build
$ python setup.py install

#確認(rèn)安裝無(wú)誤
$ python vol.py -h

安裝Cuckoo:

安裝Cuckoo有pip installgit clone兩種方法檀何,個(gè)人建議使用pip的方式安裝,因?yàn)椴煌姹镜腃uckoo的結(jié)構(gòu)變化都不小廷支,網(wǎng)上的教程為2.0版本的居多频鉴,在大部分教程中使用的cuckoo.pyweb.py等在新版本中均已不再使用恋拍。

$ git clone git://github.com/cuckoosandbox/cuckoo.git

0x02 客戶機(jī)環(huán)境準(zhǔn)備

安裝VirtualBox:

#使用apt的方法安裝是最簡(jiǎn)單的安裝方法垛孔!
$ sudo apt-get install virtualbox

在安裝VirtualBox的過(guò)程中很可能會(huì)出現(xiàn)要求你Disable Secure Boot的要求,我建議你最好進(jìn)去BIOS把安全啟動(dòng)模式關(guān)掉施敢,否則之后虛擬機(jī)的使用很可能無(wú)法創(chuàng)建Host-only網(wǎng)卡周荐。

創(chuàng)建一個(gè)虛擬機(jī),系統(tǒng)建議使用WIn7或者WinXP僵娃,首先在VirtualBox的全局設(shè)定的網(wǎng)絡(luò)設(shè)置中配置一個(gè)Host-only的網(wǎng)卡概作,這樣虛擬機(jī)僅可以跟主機(jī)通信,然后配置虛擬機(jī)的網(wǎng)絡(luò)為Host-only默怨。在虛擬機(jī)內(nèi)手動(dòng)設(shè)置IP讯榕、網(wǎng)關(guān)、子網(wǎng)掩碼先壕、DNS瘩扼。

IP: 192.168.56.101
Subnet mask:255.255.255.0
Default gateway: 192.168.56.1
Prefered DNS server: 114.114.114.114
Alternate DNS server: 8.8.8.8

至此客戶機(jī)還不能上網(wǎng),不要急垃僚,這個(gè)后面說(shuō)集绰。客戶機(jī)里面還要python2.7的運(yùn)行環(huán)境谆棺,記得將路徑添加到環(huán)境變量里面栽燕。
然后將之前安裝的cuckoo得到的.cuckoo(隱藏文件罕袋,在Home文件夾下按ctrl+h),文件夾中的agent/agent.py挪到虛擬機(jī)中(記得給你的虛擬機(jī)安裝增強(qiáng)功能碍岔,如果拖不進(jìn)去就直接去Github上面下載2.0.rc2的版本浴讯,里面有)。
我們需要這個(gè) agent.py 開(kāi)機(jī)啟動(dòng)蔼啦,并且不能有運(yùn)行窗口榆纽,這就需要另做一些處理:

agent.py 文件放到系統(tǒng)開(kāi)機(jī)啟動(dòng)目錄中,Win7 默認(rèn)的路徑是 C:\Users\[USER]\AppData\Roaming\MicroSoft\Windows\Start Menu\Programs\Startup\捏肢;
agent.py 后綴改成 agent.pyw奈籽,這樣程序啟動(dòng)就不會(huì)有 GUI 窗口了。

接著我們要配置客戶機(jī)能夠開(kāi)機(jī)自動(dòng)登錄鸵赫,這樣可以方便Cuckoo的控制衣屏,在開(kāi)始->附件中使用管理員權(quán)限打開(kāi)CMD窗口,依次執(zhí)行:

reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultUserName /d <USERNAME> /t REG_SZ /f
reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultPassword /d <PASSWORD> /t REG_SZ /f
reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v AutoAdminLogon /d 1 /t REG_SZ /f
reg add "hklm\system\CurrentControlSet\Control\TerminalServer" /v AllowRemoteRPC /d 0x01 /t REG_DWORD /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /d 0x01 /t REG_DWORD /f

記得修改前兩條命令里的 <USERNAME><PASSWORD> 為自己的賬戶和密碼辩棒。

同時(shí)狼忱,客戶機(jī)要關(guān)掉自動(dòng)更新和防火墻功能。

0x03 其他的網(wǎng)絡(luò)設(shè)置

如果都沒(méi)配錯(cuò)的話一睁,到這里Host和Guest兩個(gè)機(jī)器之間應(yīng)該是可以ping通的钻弄。但是此時(shí)Guest是無(wú)法訪問(wèn)互聯(lián)網(wǎng)的,所以要在Host中設(shè)置IP轉(zhuǎn)發(fā)卖局,利用虛擬網(wǎng)卡做代理轉(zhuǎn)發(fā)斧蜕。

#開(kāi)啟IP轉(zhuǎn)發(fā)
$ sudo -i
$ sysctl -w net.ipv4.ip_forward=1
$ echo 1 > /proc/sys/net/ipv4/ip_forward
#為使重啟之后仍然有效
$ gedit /etc/sysctl.conf
#去掉net.ipv4.ip_forward=1 前的注釋?zhuān)缓笤賵?zhí)行下面的

sysctl -p /etc/sysctl.conf

然后配置Iptables的規(guī)則:

#建議在配置Iptables規(guī)則之前要先Iptables -L看下有沒(méi)有現(xiàn)有的防火墻規(guī)則,比如我就莫名其妙多出一堆關(guān)于192.168.122.0/24的規(guī)則砚偶,這樣就全部sudo iptables -D ... 1刪除掉就好了
iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

#接著為保證重啟之后依然有效
sudo gedit /etc/network/interfaces
#在最后添加兩行
pre-up iptables-restore < /etc/iptables.rules 
post-down iptables-save > /etc/iptables.rules 

這樣一來(lái),Ubuntu Host 主機(jī)每次關(guān)機(jī)前都會(huì)把已有的 iptables 規(guī)則備份到 /etc/iptables.rules文件中洒闸、每次開(kāi)機(jī)是都會(huì)從 /etc/iptables.rules 讀取規(guī)則并啟用染坯。

配置好之后,Guest 虛擬機(jī)就可以通過(guò) vboxnet0 來(lái)訪問(wèn)互聯(lián)網(wǎng)了丘逸。

此時(shí)客戶機(jī)所有的準(zhǔn)備工作单鹿,包括軟件及網(wǎng)絡(luò)的配置都好了,給虛擬機(jī)建立一個(gè)快照深纲,用于每次跑完樣本之后仲锄,Cuckoo會(huì)把它還原到這個(gè)狀態(tài)。

0x04 Cuckoo 配置

Cuckoo配置文件的更改是非常重要的一步湃鹊,否則很可能你的所有安裝都無(wú)法正常啟動(dòng)儒喊。在 .cuckoo/conf/中修改配置文件:

cuckoo.conf

machinery = virtualbox
[resultserver]
ip = 192.168.56.1 #This is the IP address of the host
port = 2042 #leave default unless you have services running

auxiliary.conf

[sniffer]
# Enable or disable the use of an external sniffer (tcpdump) [yes/no].
enabled = yes

# Specify the path to your local installation of tcpdump. Make sure this
# path is correct.
# You can check this using the command: whereis tcpdump
tcpdump = /usr/sbin/tcpdump

# Specify the network interface name on which tcpdump should monitor the
# traffic. Make sure the interface is active.
# The ifconfig command will show you the interface name.
interface = vboxnet0

virtualbox.conf

machines = 你的虛擬機(jī)名字

[你的虛擬機(jī)名字]
label = 你的虛擬機(jī)名字
platform = windows
ip = 192.168.56.10 # IP address of the guest
snapshot = 你創(chuàng)建的快照名字

reporting.conf

[mongodb]
enabled = yes
#也許還有其他要改的,但是這個(gè)最重要币呵,其他是yes還是no更多的是看你的需要怀愧,或者之后在使用時(shí)再來(lái)配置文件里面打開(kāi)

至此,所有的配置都配置完了,此時(shí)先運(yùn)行Web服務(wù)
cuckoo web runserver
正常運(yùn)行的話打開(kāi)http://127.0.0.1:8000芯义,就可以看到cuckoo SandBox的Web頁(yè)面了哈垢。然后打開(kāi)Cuckoo的服務(wù),cuckoo 若最后一行顯示等待分析任務(wù)扛拨,則說(shuō)明你安裝沒(méi)問(wèn)題耘分,如果顯示說(shuō)沒(méi)有找到CWD位置,則你需要先運(yùn)行cuckoo -d绑警。

運(yùn)行一個(gè)樣本之后陶贼,可能會(huì)發(fā)現(xiàn)無(wú)法分析網(wǎng)絡(luò)流量的問(wèn)題,比如在命令行里面出現(xiàn)紅色的報(bào)錯(cuò):

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-NKd6fY/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Zzo2hp-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-NKd6fY/pillow/

則運(yùn)行如下:

$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
$ sudo apt-get install postgresql libpq-dev

0x05 總結(jié)

Cuckoo SandBox安裝過(guò)程中有很多坑待秃,最大的坑就是拜秧,它上下版本不兼容,國(guó)內(nèi)國(guó)外還大部分都是2.0的安裝教程章郁!2.0版本的沙箱現(xiàn)在都已經(jīng)不能用了(╯‵□′)╯︵┻━┻枉氮。各位在參考我的辦法的時(shí)候也要注意你使用的未來(lái)的可能Cuckoo版本升級(jí)帶來(lái)的所需的依賴(lài)的升級(jí),很有可能本教程中安裝的版本已經(jīng)不再試用暖庄。所以不要吝惜重裝系統(tǒng)聊替,我已經(jīng)記不清我重裝多少次了。祝君好運(yùn)培廓,一次成功~

0x06 參考資料

1.https://cuckoo.sh/docs/installation/index.html

2.https://reversing-malware.com/cuckoo-installation-and-setup/

3.http://securityscrapbook.com/2016/12/17/cuckoo-sandbox-installation-configuration-guide/?i=1

4.http://www.freebuf.com/sectool/108533.html

5.https://github.com/cuckoosandbox/cuckoo/issues/1392

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惹悄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肩钠,更是在濱河造成了極大的恐慌泣港,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件价匠,死亡現(xiàn)場(chǎng)離奇詭異当纱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)踩窖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)坡氯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人洋腮,你說(shuō)我怎么就攤上這事箫柳。” “怎么了啥供?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵悯恍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我滤灯,道長(zhǎng)坪稽,這世上最難降的妖魔是什么曼玩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮窒百,結(jié)果婚禮上黍判,老公的妹妹穿的比我還像新娘。我一直安慰自己篙梢,他們只是感情好顷帖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著渤滞,像睡著了一般贬墩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妄呕,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天陶舞,我揣著相機(jī)與錄音,去河邊找鬼绪励。 笑死肿孵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疏魏。 我是一名探鬼主播停做,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼大莫!你這毒婦竟也來(lái)了蛉腌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤只厘,失蹤者是張志新(化名)和其女友劉穎烙丛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體懈凹,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜀变,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了介评。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爬舰,死狀恐怖们陆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情情屹,我是刑警寧澤坪仇,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站垃你,受9級(jí)特大地震影響椅文,放射性物質(zhì)發(fā)生泄漏喂很。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一皆刺、第九天 我趴在偏房一處隱蔽的房頂上張望少辣。 院中可真熱鬧,春花似錦羡蛾、人聲如沸漓帅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忙干。三九已至,卻和暖如春浪藻,著一層夾襖步出監(jiān)牢的瞬間捐迫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工爱葵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留施戴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓钧惧,卻偏偏與公主長(zhǎng)得像暇韧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浓瞪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容