前言:
沙盒(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、換源
換的是清華源
2、安裝curl
我這裡已經安裝過了
輸入指令sudo apt-get install curl
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
然後安裝Python支援工具sudo apt-get install -y python-setuptools
現在我們將安裝jpeg和介面支援工具
sudo apt-get install -y libjpeg-dev zlib1g-dev swig
4、安裝mongodb
sudo apt-get install -y mongodb
cuckoo推薦的資料庫是PostgreSQL,所以執行
sudo apt-get install -y postgresql libpq-dev
這裡會爆紅,先不管
5、安裝VirtualBox
安裝virtualbox 6.1
sudo apt-get install virtualbox
6、下載並安裝cuckoo工作所需的所有外掛
(1)初始化
先cd Downloads/
切換到下載資料夾,然後安裝volatile
git clone https://github.com/volatilityfoundation/volatility.git
出現此問題
解決方法:重置代理
git config --global --unset https.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
按理來說是可以的,但是又出現新錯誤
在網上一番查詢後,無論是換源,淺層克隆,換ssl等方法均不行(真的試了很久..),可能是校園網太垃圾了吧。。沒辦法,去github下的原始碼。然後解壓下來再進行下面的步驟。
(2)構建volatile
cd volatility
sudo python setup.py build
安裝sudo python setup.py install
然後回到下載目錄
(3)安裝Distorm3
sudo -H pip install distorm3==3.4.4
(4)安裝Yara
sudo -H pip install yara-python==3.6.3
(5)安裝ssdeep
sudo apt-get install -y ssdeep
輸入ssdeep -V
來驗證它的安裝,目前版本應該是2.14.1版本
(6)安裝pydeep
sudo -H pip install pydeep
鍵入pip show pydeep來檢查它是否已安裝!
(7)安裝openpyxl
sudo -H pip install openpyxl
(8)安裝ujson
sudo -H pip install ujson
(9)安裝jupyter
sudo -H pip install jupyter
(10)安裝TCPDump以啟用資料包捕獲分析
sudo apt-get install tcpdump
接著鍵入
sudo apt-get install libcap2-bin
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
然後輸入
sudo aa-disable /usr/sbin/tcpdump
7、安裝cuckoo sandbox
鍵入pip install -U pip setuptools
報錯:
Python版本問題,切換到2.7即可
再次輸入,得到正確回顯
鍵入sudo -H pip install -U cuckoo
又報錯了。。
看著確實是2.7沒錯啊
求助gpt
從錯誤資訊可以看出,Cuckoo目前僅支援Python 2,因此無法在Python 3環境下安裝。你需要使用Python 2來安裝它。以下是一些步驟來解決這個問題:
-
檢查是否已安裝Python 2: 執行以下命令,檢查Python 2是否已經安裝在系統中:
python2 --version
-
安裝Python 2(如果未安裝): 根據你的作業系統,安裝Python 2。例如,在Ubuntu上,可以使用以下命令:
sudo apt-get update sudo apt-get install python2
-
安裝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
-
使用pip2安裝Cuckoo: 使用pip2來安裝Cuckoo,而不是pip3:
sudo -H pip2 install -U cuckoo
透過上述步驟,你應該能夠在Python 2環境下成功安裝Cuckoo。
gpt真神!
為cuckoo建立目錄
mkdir cuckoo
8、設定virtualbox環境
安裝網路工具sudo apt install -y net-tools
鍵入ifconfig以查詢虛擬機器的IP地址資訊
建立一個只支援主機的網路介面卡vboxmanage hostonlyif create
為虛擬介面設定IP地址vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
再次執行ifconfig,看到剛剛設定的介面和ip
要使這些更改在重新啟動後仍然有效,並在系統啟動期間自動設定。所以需要建立一個新的目錄
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
網路部分完成
9、Windows虛擬機器配置
(1)下載32位win7映象,去官網找即可。
然後在virtualbox按步驟建立一個虛擬機器,可以參考這篇在Virtual Box中安裝Windows7 64位虛擬機器系統_vb虛擬機器按裝window 7 64-CSDN部落格。其實32位的也差不多。
如果出現下面這種錯誤
在虛擬機器設定裡開啟虛擬化intel VT這個選項即可(注意只有先關機才能勾選)
如圖所示
(2)修改win虛擬機器的配置,以使虛擬機器故意易受攻擊。
直接win+r鍵開啟,輸入gpedit.msc開啟“編輯組策略”選項。
展開“計算機配置”>“Windows設定”>“安全設定”>“本地策略”>“安全選項”。向下滾動到使用者帳戶控制選項。
進行下列操作:
右鍵單擊“使用者帳戶控制:管理員審批模式下管理員的提升提示行為”,然後選擇“屬性”。使用下拉選單選擇“不提示,直接提升”,然後單擊“確定”。
右鍵單擊“使用者帳戶控制:檢測應用程式安裝並提示提升”,然後選擇屬性。選中“禁用”選項,然後單擊“確定”。
右鍵單擊“使用者帳戶控制:以管理員批准模式執行所有管理員”,然後選擇屬性。選中“禁用”選項,然後單擊“確定”。
然後禁用Windows更新的自動安裝。轉到“計算機配置”>“管理模板”>“Windows元件”>“Windows更新”,然後右鍵單擊“配置自動更新和編輯”。選擇Enabled,2-Notify for download and Notify for install(2-通知下載並通知安裝),然後單擊ok。
然後需要從網路中刪除Windows保護。轉到“計算機配置”>“管理模板”>“網路”>“網路連線”>“Windows防火牆”>“域配置檔案”>“Windows防火牆”,然後將“保護所有網路連線”更改為“禁用”。
然後需要禁用Windows Defender,因為不需要防病毒或惡意軟體保護。轉到“計算機配置”>“管理模板”>“Windows元件”>“Windows Defender Antivirus”來完成此操作,然後將“關閉Windows Defender Antivirus”設定為“已啟用”。
(3)設定共享資料夾
參考連結:https://blog.csdn.net/Znanxuan/article/details/127737315
這部分忘截圖了,最終結果如下
(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
安裝或更新pip。
$python -m pip install --upgrade pip$
同時搜尋和該python版本匹配的python pillow(PIL),pillow庫是用於cuckoo截圖。參考連結:https://pillow.readthedocs.io/en/latest/installation.html,其中與Python2.7匹配的pillow版本為2-6.2.2,pillow7或以上支援Python3.5或以上
(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
可以發現現在有cuckoo資料夾了
可以發現配置仍有問題
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,點選確定。
然後持久化這個設定
sudo apt-get install -y iptables-persistent
提示儲存配置時,選擇“是”
接著輸入以下指令:
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
來檢查規則。
輸入echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
sudo nano /etc/sysctl.conf
把#從net.ipv4.ip_forward=1項移除,然後Ctrl+X退出,Y儲存,enter寫入檔案。
執行sudo su -
,然後執行iptables-save > /etc/iptables/rules.v4
(8)配置Windows7虛擬機器的ip地址資訊
開啟win虛擬機器的網路介面卡並設定:
1、配置兩個網路卡,首先要關閉win7虛擬機器,然後開啟虛擬機器設定,選“網路”,網路卡1的連線方式為僅主機網路,介面名稱為vboxnet0;網路卡2的連線方式為NAT。NAT介面卡用於Internet訪問時;Cuckoo使用Host-Only介面卡與win虛擬機器內的代理進行通訊。
2、禁用DHCP。在Oracle VM VirtualBox管理器中點選“工具”,選中網路,點選vboxnet0,將會出現DHCP伺服器。取消“啟動伺服器”的選擇。
完成上述步驟後,可以拍攝win虛擬機器的快照,將其命名為snapshot1。
(9)修改Ubuntu網路配置。在“設定”-“網路”-“乙太網”-“IPv4”中設定。
(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
報錯了,連不上github
ping一下發現正常,但是卻進不去
解決方法:【雜】虛擬機器下ubuntu無法訪問github_ubuntu無法範文github-CSDN部落格
成功了
然後開啟Oracle VM VirtualBox管理器,啟動cuckoo1虛擬機器。登入win7虛擬機器後,顯示空白命令視窗,再最小化虛擬機器。
在Ubuntu虛擬機器中,終端視窗1中輸入cuckoo
,這樣就能啟動cuckoo,它將坐在等待分析任務。
意料之中,又報錯了
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
然後又報錯
查詢資料
CuckooCriticalError:請更新您的配置。無法關閉“cuckoo1”或找到處於正確狀態的計算機:虛擬機器“cuckoo1”不存在!請建立一個或多個 Cuckoo 分析虛擬機器,並正確填寫 Cuckoo 配置! ·問題 #2345 ·布穀鳥沙盒/布穀鳥 ·GitHub上
又告訴我應該在使用者態執行,結果再次執行成功了,,不知道為什麼。。
ps:後來知道了,是網路ip地址沒改,中間改了一次網路ip地址
在Ubuntu虛擬機器中,終端視窗2中輸入cuckoo web runserver 0.0.0.0:8000
透過127.0.0.1:8000
訪問cuckoo網路伺服器,或者透過瀏覽器訪問本地網路上的虛擬機器IP地址。最後呈現在面前的就是cuckoo sandbox,它們在cuckoo conf檔案中有更多的設定,可以將MISP和其他服務直接連線到它。
至此,cuckoo安裝完成。在使用cuckoo的時候,記得關注Dashboard裡面的硬碟/記憶體容量,該刪dmp等檔案的時候就要刪除!