Ubuntu 20.04安裝cuckoo sandbox

drc01or發表於2024-07-15

前言:

沙盒(Sanbox)是一種將未知、不可信的軟體隔離執行的安全機制。惡意軟體分析沙盒一般用來將不可信軟體放在隔離環境中自動地動態執行,然後提取其執行過程中的程序行為、網路行為、檔案行為等動態行為,安全研究員可以根據這些行為分析結果對惡意軟體進行更深入地分析。
課程有一份用cuckoo sandbox監控惡意程式的任務,趁這個機會記錄一下我自己的安裝過程。(報了許多錯,是真的費勁啊= =)
本文參考連結:
Ubuntu20.04系統Cuckoo sandbox所需環境搭建及安裝(超詳細圖文)_cuckoosandbox-CSDN部落格
在Virtual Box中安裝Windows7 64位虛擬機器系統_vb虛擬機器按裝window 7 64-CSDN部落格
https://blog.csdn.net/Znanxuan/article/details/127737315
https://pillow.readthedocs.io/en/latest/installation.html
https://blog.csdn.net/c_programj/article/details/117587971
【雜】虛擬機器下ubuntu無法訪問github_ubuntu無法範文github-CSDN部落格
CuckooCriticalError:請更新您的配置。無法關閉“cuckoo1”或找到處於正確狀態的計算機:虛擬機器“cuckoo1”不存在!請建立一個或多個 Cuckoo 分析虛擬機器,並正確填寫 Cuckoo 配置! ·問題 #2345 ·布穀鳥沙盒/布穀鳥 ·GitHub上

1、換源

換的是清華源
39aa27598302d36b14acd807acb1ebf2

2、安裝curl

我這裡已經安裝過了
輸入指令sudo apt-get install curl
7da3a97f51f4cdd6a3517597b255f6e1

3、配置Python環境

安裝pyhton2.7與pip
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -O
sudo apt get install python
sudo python get-pip.py
sudo apt-get install -y python-dev libffi-dev libssl-dev libfuzzy-dev libtool flex autoconf libjansson-dev git
1a18d08dd7f6828fffba6ac8d842f2bf
然後安裝Python支援工具sudo apt-get install -y python-setuptools
f8dd31ff373076d7f70c93d91bb89aa2
現在我們將安裝jpeg和介面支援工具
sudo apt-get install -y libjpeg-dev zlib1g-dev swig
52d9298936c1979dce45b8b6546639fa

4、安裝mongodb

sudo apt-get install -y mongodb
4902d844877d09f58a80697bd8c0b467
cuckoo推薦的資料庫是PostgreSQL,所以執行

sudo apt-get install -y postgresql libpq-dev
e1caf1e9cda0d5a65cef5bfa7cf4a518
這裡會爆紅,先不管
e30e663e7a273f4d99526c49740c0479

5、安裝VirtualBox

安裝virtualbox 6.1
sudo apt-get install virtualbox
d636a39e702b5fecd8dadb47a55c63bf

6、下載並安裝cuckoo工作所需的所有外掛

(1)初始化

cd Downloads/切換到下載資料夾,然後安裝volatile
git clone https://github.com/volatilityfoundation/volatility.git
出現此問題
96f454b3b37a87fffce82d8ab5bf5b18
解決方法:重置代理
git config --global --unset https.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
按理來說是可以的,但是又出現新錯誤
a8500c29b171bf168ecaea79227af9b8
在網上一番查詢後,無論是換源,淺層克隆,換ssl等方法均不行(真的試了很久..),可能是校園網太垃圾了吧。。沒辦法,去github下的原始碼。然後解壓下來再進行下面的步驟。

(2)構建volatile

cd volatility
sudo python setup.py build
b0d348cc03ac863fd278d5e34271d901
安裝sudo python setup.py install
然後回到下載目錄

(3)安裝Distorm3

sudo -H pip install distorm3==3.4.4
43605fc09625c44b568e9c348fea1dab

(4)安裝Yara

sudo -H pip install yara-python==3.6.3
e42154d08c6192a30385c5533d254a46

(5)安裝ssdeep

sudo apt-get install -y ssdeep
8684756c70adbb26ddea90f295938833
輸入ssdeep -V來驗證它的安裝,目前版本應該是2.14.1版本
4db817a930d5aa7dad333a4e808e0889

(6)安裝pydeep

sudo -H pip install pydeep
a5a290008caaf8053c93513c73b28a71
鍵入pip show pydeep來檢查它是否已安裝!e50da1af82240cf5faefd8b8c26868a3

(7)安裝openpyxl

sudo -H pip install openpyxl
f8c1cb92acc6f10c9f8669277445e820

(8)安裝ujson

sudo -H pip install ujson
b8f3c0f56cad21453346e625f70d0a0a

(9)安裝jupyter

sudo -H pip install jupyter
cecc276e3fe5b4ec938d9c6ded7f4f84

(10)安裝TCPDump以啟用資料包捕獲分析

sudo apt-get install tcpdump
cf9597405e18d2234b7fd8755c915c61
接著鍵入
sudo apt-get install libcap2-bin
a723879f431f4ed188a877a11a2e0b60
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
然後getcap /usr/sbin/tcpdump

(11)需要安裝和禁用apparmor

因為它透過保護應用程式來保護Ubuntu作業系統,我們希望TCP Dump能夠正確執行
sudo apt-get install -y apparmor-utils
1de10961092bc584d704353e6d2f4671
然後輸入
sudo aa-disable /usr/sbin/tcpdump

7、安裝cuckoo sandbox

鍵入pip install -U pip setuptools
報錯:de47ec9c9676550164e339d7b277215a
Python版本問題,切換到2.7即可
0dbda0833e5bdf91e6c0591e9aea645c
再次輸入,得到正確回顯
51a8585116e58f32718c51482b639f2a
鍵入sudo -H pip install -U cuckoo
又報錯了。。
ffc27a680c7a612f47d783ab3ee31523

看著確實是2.7沒錯啊
a148a6e5fb11de0ad721b9e615b57240
求助gpt
從錯誤資訊可以看出,Cuckoo目前僅支援Python 2,因此無法在Python 3環境下安裝。你需要使用Python 2來安裝它。以下是一些步驟來解決這個問題:

  1. 檢查是否已安裝Python 2: 執行以下命令,檢查Python 2是否已經安裝在系統中:
    python2 --version

  2. 安裝Python 2(如果未安裝): 根據你的作業系統,安裝Python 2。例如,在Ubuntu上,可以使用以下命令:

    sudo apt-get update sudo apt-get install python2

  3. 安裝pip2: 確保你有適用於Python 2的pip版本。可以透過以下命令安裝:

    sudo apt-get install python-pip

    或者,如果你已經有Python 2,可以使用get-pip.py指令碼來安裝pip2:

    curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py sudo python2 get-pip.py

  4. 使用pip2安裝Cuckoo: 使用pip2來安裝Cuckoo,而不是pip3:

    sudo -H pip2 install -U cuckoo

透過上述步驟,你應該能夠在Python 2環境下成功安裝Cuckoo。
gpt真神!
7e8d8dfc2d67a3009fe62f49d4da48e8
4351206614eab0c5ead5943aa3b73cf7

為cuckoo建立目錄
mkdir cuckoo

8、設定virtualbox環境

安裝網路工具sudo apt install -y net-tools
c3c006141d3f7e8d696c259ef61240d2
鍵入ifconfig以查詢虛擬機器的IP地址資訊
01b5331be99e28578a76730dda9dd0dc
建立一個只支援主機的網路介面卡vboxmanage hostonlyif create
8771de2618f5391559f69ed32039529b
為虛擬介面設定IP地址vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
再次執行ifconfig,看到剛剛設定的介面和ip
b1ce7950400b251bac543520dd274933
要使這些更改在重新啟動後仍然有效,並在系統啟動期間自動設定。所以需要建立一個新的目錄
sudo mkdir /opt/systemd/
然後
sudo nano /opt/systemd/vboxhostonly
並將以下程式碼複製到檔案中:
!/bin/bash hostonlyif create vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
然後Ctrl+X退出,Y儲存,enter寫入檔案。
需要使檔案可執行
cd /opt/systemd/
sudo chmod a+x vboxhostonly
需要建立一個服務
sudo touch /etc/systemd/system/vboxhostonlynic.service
編輯檔案
sudo nano /etc/systemd/system/vboxhostonlynic.service
輸入
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target
然後Ctrl+X退出,Y儲存,enter寫入檔案。
安裝服務並確保它在引導時載入
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
c563684cd899d01181a8042bbca7dd6e
網路部分完成

9、Windows虛擬機器配置

(1)下載32位win7映象,去官網找即可。

然後在virtualbox按步驟建立一個虛擬機器,可以參考這篇在Virtual Box中安裝Windows7 64位虛擬機器系統_vb虛擬機器按裝window 7 64-CSDN部落格。其實32位的也差不多。
如果出現下面這種錯誤
fbe8c9f4974ceabe62d85c2c5c9d9725
在虛擬機器設定裡開啟虛擬化intel VT這個選項即可(注意只有先關機才能勾選)
348ad4375d9cef97112ceed3189293b4
如圖所示
ba74d5f9590a500ebb61776468dced02

(2)修改win虛擬機器的配置,以使虛擬機器故意易受攻擊。

直接win+r鍵開啟,輸入gpedit.msc開啟“編輯組策略”選項。
fe4f7669a34ebf5dff0f433f2ae40d83
展開“計算機配置”>“Windows設定”>“安全設定”>“本地策略”>“安全選項”。向下滾動到使用者帳戶控制選項。
75a572b4b2196d5fdbf9285fb0dc9e68

進行下列操作:
右鍵單擊“使用者帳戶控制:管理員審批模式下管理員的提升提示行為”,然後選擇“屬性”。使用下拉選單選擇“不提示,直接提升”,然後單擊“確定”。
b57524e30fb60780d2e825779a0bc242

右鍵單擊“使用者帳戶控制:檢測應用程式安裝並提示提升”,然後選擇屬性。選中“禁用”選項,然後單擊“確定”。
447ac73f114b012107f43c9df61bfffa

右鍵單擊“使用者帳戶控制:以管理員批准模式執行所有管理員”,然後選擇屬性。選中“禁用”選項,然後單擊“確定”。

然後禁用Windows更新的自動安裝。轉到“計算機配置”>“管理模板”>“Windows元件”>“Windows更新”,然後右鍵單擊“配置自動更新和編輯”。選擇Enabled,2-Notify for download and Notify for install(2-通知下載並通知安裝),然後單擊ok。
a7eaf6d30f9a07e64f765a2540da6a3d

然後需要從網路中刪除Windows保護。轉到“計算機配置”>“管理模板”>“網路”>“網路連線”>“Windows防火牆”>“域配置檔案”>“Windows防火牆”,然後將“保護所有網路連線”更改為“禁用”。
e5898439ad6b722aff91d44df631ee07

然後需要禁用Windows Defender,因為不需要防病毒或惡意軟體保護。轉到“計算機配置”>“管理模板”>“Windows元件”>“Windows Defender Antivirus”來完成此操作,然後將“關閉Windows Defender Antivirus”設定為“已啟用”。
673468f1f1cbc0947ffadf0f6d8837be

(3)設定共享資料夾

參考連結:https://blog.csdn.net/Znanxuan/article/details/127737315
這部分忘截圖了,最終結果如下
ff7e58db8d5e939ee268504ef746d67c(4)Python配置

注意:最好和Ubuntu虛擬機器上面的python2版本一致,在Ubuntu使用python –V查到python的版本為2.7.18。
進入https://www.python.org/downloads/release/python-2718/中下載python-2.7.18.msi。透過共享資料夾傳到win7裡,直接點選msi安裝即可。
安裝完成後配置環境變數,在“Path”變數新增:;C:\Python27
901577e382e9fa11f6e98177b8a78872
安裝或更新pip。
$python -m pip install --upgrade pip$
b7fdd1633d969fbe39daa724c9178c69
同時搜尋和該python版本匹配的python pillow(PIL),pillow庫是用於cuckoo截圖。參考連結:https://pillow.readthedocs.io/en/latest/installation.html,其中與Python2.7匹配的pillow版本為2-6.2.2,pillow7或以上支援Python3.5或以上
dc242a40295007ecd9b666137287240e

(5)安裝Adobe Reader、Flash、Java和以及可能需要的任何其他應用程式。

有需求的自行安裝

(6)從Ubuntu虛擬機器上傳agent.py檔案到win虛擬機器。

agent.py在Ubuntu虛擬機器的~/.cuckoo/agent目錄中找到。但有可能在/home/[username]上面沒有找到.cuckoo資料夾,解決辦法:https://blog.csdn.net/c_programj/article/details/117587971
輸入cd /usr/local/bin,發現裡面有cuckoo.py可執行檔案
輸入python cuckoo
da4cd5a736c1f6c7a127214d7afd3420
可以發現現在有cuckoo資料夾了
5870832713bbf5d640a11010ee0d6a69
可以發現配置仍有問題
d9ee1745371863739f58cc3689a1d192
agent.py在Ubuntu虛擬機器的~/.cuckoo/agent目錄中找到。透過共享資料夾複製到win虛擬機器。
複製agent.py到win虛擬機器的目錄:bash C:\Users\[username]\AppData\Roaming \Microsoft\Windows\Start Menu\Programs\Startup,由此保證在啟動虛擬機器的時候就可以啟動agent.py,可將.py字尾名改為.pyw(該步驟能使agent執行時沒有GUI視窗)。
在win7虛擬機器上,需要顯示隱藏的檔案和資料夾才能看到AppData資料夾,透過進入“檔案資源管理器”->“組織”->“資料夾選項”來完成操作。也可以直接輸入路徑。
成功安裝所有必需的軟體後,重新啟動win7虛擬機器並登入,此時應該出現一個空白的命令視窗。若出現網路彈出視窗,則單擊“允許”。重啟後最小化win虛擬機器。

(7)設定win網路來建立沙盒環境

在Oracle VM VirtualBox管理器中,單擊win虛擬機器的設定。選擇網路,然後更改附加到:僅主機介面卡,並在名稱中選擇vboxnet0,點選確定。
c2637cba583af61b426841b37fcc6c9d
然後持久化這個設定
sudo apt-get install -y iptables-persistent
提示儲存配置時,選擇“是”
d892adcafeedd482d30dc1997bbf3708
接著輸入以下指令:
sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
透過sudo iptables -L來檢查規則。
e0f65fc49f1fe3e45799514db858f769
輸入echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
sudo nano /etc/sysctl.conf
9456a20ffce51db805aafa004f536c67
把#從net.ipv4.ip_forward=1項移除,然後Ctrl+X退出,Y儲存,enter寫入檔案。
6dfa01fe7a220a45eb02efcafa519857
141261202bdb89e9a9e1670c3381a65a
執行sudo su -,然後執行iptables-save > /etc/iptables/rules.v4

(8)配置Windows7虛擬機器的ip地址資訊

開啟win虛擬機器的網路介面卡並設定:
1、配置兩個網路卡,首先要關閉win7虛擬機器,然後開啟虛擬機器設定,選“網路”,網路卡1的連線方式為僅主機網路,介面名稱為vboxnet0;網路卡2的連線方式為NAT。NAT介面卡用於Internet訪問時;Cuckoo使用Host-Only介面卡與win虛擬機器內的代理進行通訊。
837f71bdcd4932461a19ec44536a9028

2、禁用DHCP。在Oracle VM VirtualBox管理器中點選“工具”,選中網路,點選vboxnet0,將會出現DHCP伺服器。取消“啟動伺服器”的選擇。
364f7b36f096e399a85ace9d7502b924
完成上述步驟後,可以拍攝win虛擬機器的快照,將其命名為snapshot1。
4961faa15dd3f6f41b11aa7e015f8243

(9)修改Ubuntu網路配置。在“設定”-“網路”-“乙太網”-“IPv4”中設定。

97a704fd11cdec1a407bb6106ab6642f

(10)在Ubuntu上完成cuckoo服務的配置。

所有cuckoo配置檔案都位於~/.cuckoo/conf或您的主目錄cd .cuckoo/目錄中。
1、切換到config目錄。
cd ~/.cuckoo/conf
2、sudo nano cuckoo.conf
確保設定了以下內容:
version_check = no
machine=virtualbox
memory_dump=yes
[resultserver]
ip=192.168.56.1
port=2042
然後Ctrl+X退出,Y儲存,enter寫入檔案。
3、sudo nano auxiliary.conf
確保設定了以下內容:
[sniffer]
enabled=yes
tcpdump = /usr/sbin/tcpdump
4、sudo nano virtualbox.conf
確保設定了以下內容
[virtualbox]
machines=cuckoo1
[cuckoo1]
label=cuckoo1
platform=windows
ip=192.168.56.101
snapshot=snapshot1
interface=vboxnet0 5、sudo nano processing.conf確保設定了以下內容[memory] enabled=yes 6、sudo nano memory.conf 確保設定了以下內容: [basic] guest_profile=WinXPSP2x86 然後Ctrl+X退出,Y儲存,enter寫入檔案。一般不需要修改。如果需要另一個作業系統,那麼透過執行vol.py --info | grep profiles -A48,以獲得受支援配置檔案的完整列表。 7、sudo nano reporting.conf確保設定了以下內容:[singlefile](需要確保啟用report.html) enabled=yes [mongodb] enabled=yes`
8、關閉win7虛擬機器,然後重新啟動Ubuntu虛擬機器。以同一使用者身份重新登入(不要以cuckoo使用者身份登入)。

10、使用cuckoo

首先需要更新cuckoo的簽名,在終端輸入cuckoo community
a09d814721a063fb4f8c144bcd521b77
報錯了,連不上github
ping一下發現正常,但是卻進不去
解決方法:【雜】虛擬機器下ubuntu無法訪問github_ubuntu無法範文github-CSDN部落格
成功了
dc33a3c848108c5310c9214bf256b60b

然後開啟Oracle VM VirtualBox管理器,啟動cuckoo1虛擬機器。登入win7虛擬機器後,顯示空白命令視窗,再最小化虛擬機器。
在Ubuntu虛擬機器中,終端視窗1中輸入cuckoo,這樣就能啟動cuckoo,它將坐在等待分析任務。
意料之中,又報錯了
b0accfe370546911d1f80bece9d469c4
CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo1' down or find the machine in its proper state: The virtual machine 'cuckoo1' doesn't exist! Please create one or more Cuckoo analysis VMs and properly fill out the Cuckoo configuration!
上網查詢說是許可權問題,要切到root
然後又報錯
dab09fdcc94fc5b1ba4d85531efe6fdf
查詢資料
CuckooCriticalError:請更新您的配置。無法關閉“cuckoo1”或找到處於正確狀態的計算機:虛擬機器“cuckoo1”不存在!請建立一個或多個 Cuckoo 分析虛擬機器,並正確填寫 Cuckoo 配置! ·問題 #2345 ·布穀鳥沙盒/布穀鳥 ·GitHub上
06e6c14bdcb0c0a30d3c5d8f6f445798
又告訴我應該在使用者態執行,結果再次執行成功了,,不知道為什麼。。
ps:後來知道了,是網路ip地址沒改,中間改了一次網路ip地址
b6c5ef1394f66da286f6bc2a51ce7ccd

在Ubuntu虛擬機器中,終端視窗2中輸入cuckoo web runserver 0.0.0.0:8000
7b3486bd962b573afe4101060fa5b941

透過127.0.0.1:8000訪問cuckoo網路伺服器,或者透過瀏覽器訪問本地網路上的虛擬機器IP地址。最後呈現在面前的就是cuckoo sandbox,它們在cuckoo conf檔案中有更多的設定,可以將MISP和其他服務直接連線到它。
a7641fed57e4fac92cff93b92a27dc5e
ec08eca839acaa01d4f84ba1b932e700
至此,cuckoo安裝完成。在使用cuckoo的時候,記得關注Dashboard裡面的硬碟/記憶體容量,該刪dmp等檔案的時候就要刪除!

相關文章