<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/11367

            Author:kernux Topsec α-lab

            0x00 cuckoo概述


            Cuckoo是一款開源的自動化惡意軟件分析系統,目前主要用于分析windows平臺下的惡意軟件,但其框架同時支持Linux和Mac OS。cuckoo能夠自動化獲取如下信息:

            1. 能夠跟蹤惡意軟件進程及其產生的所有進程的win32 API調用記錄;
            2. 能夠檢測惡意軟件的文件創建、刪除和下載;
            3. 能夠獲取惡意軟件進程的內存鏡像;
            4. 能夠獲取系統全部內存鏡像,方便其他工具進行進一步分析;
            5. 能夠以pacp格式抓取網絡數據;
            6. 能夠抓取惡意軟件運行時的截圖。

            Cuckoo支持分析多種文件格式,包括windows可執行文件,DLL文件,PDF文檔,Office文檔,惡意URL,HTML文件,PHP文件,CPL文件,VBS,ZIP壓縮文件,jar文件,python程序等。這些完全依賴于他的分析模塊。

            下圖是cuckoo的架構圖,非常清晰。Cuckoo依賴于下面的虛擬機進行實際的分析,然后通過虛擬網絡將分析結果傳輸給cuckoo host。所以cuckoo的運行至少需要一個虛擬化環境。目前cuckoo能夠支持vmware,virtualbox,kvm,qemu,xen,avd等主流虛擬化平臺。

            p1

            Cuckoo的架構是高度模塊化的,只要我們添加不同的分析模塊,cuckoo就能夠完成不同系統平臺下的分析工作。

            0x01 環境搭建


            測試環境是host:kali 2.0 x64,guest:windows xp sp3 en。

            2.1 安裝

            獲取cuckoo,我們從github上獲取最新的cuckoo:

            #!bash
            Git clone https://github.com/cuckoobox/cuckoo.git
            

            安裝cuckoo依賴的python庫:

            #!bash
            $ sudo apt-get install python python-pip
            $ sudo apt-get install mongodb
            $ sudo pip install -r requirements.txt
            

            此處安裝可能會出現問題,是系統所安裝的python庫與pip安裝的庫版本不一致導致的,因為系統所安裝的python庫往往比較舊,而pip安裝的庫比較新,且pip安裝的其他庫依賴較新的庫,所以導致問題。解決方法是將系統的python庫卸載,不過系統的某些python庫存在依賴,需要用dpkg --purge --force-all 包名來強制卸載,然后再用pip來安裝即可解決。

            #!bash
            $ sudo apt-get install tcpdump
            $ sudo apt-get install libcap2-bin
            

            如果想進行內存鏡像分析,需要安裝volatility。

            #!bash
            $ sudo apt-get install volatility
            

            啟用截圖功能,需要Python Image庫

            #!bash
            $ sudo pip install PIL
            

            這里我們采用virtualbox虛擬化平臺,所以需要下載并安裝virtualbox。

            2.2 配置

            軟件安裝好后,需要先創建一個虛擬機,可以利用virtualbox圖形界面進行操作。Cuckoo在運行的時候,需要在host上監聽一個地址,用于獲取報告信息,而這個地址虛擬機必須能夠訪問的到。這里采用的網絡配置是將虛擬機網卡調整為host-only模式,相當于虛擬機與host之間連接了一根網線。此時,host的網卡列表中會有一個類似vboxnet0的網卡,這就是host與虛擬機之間通信的網卡。虛擬機內部的ip地址可以自己設置,只要跟vboxnet0的地址在一個網段即可。默認情況下vboxnet0是192.168.56.1。虛擬機可以是192.168.56.101。

            為了讓虛擬機能夠正常的訪問外網,host還需要進行數據轉發,參考官方的命令:

            #!bash
            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
            sysctl -w net.ipv4.ip_forward=1
            

            其中第一條命令中的eth0是你host的上網用的真實網卡地址,vboxnet0則是虛擬網卡。

            最后一條是開啟內核數據轉發。

            裝好虛擬機系統后,為達到最好的兼容效果,需要將windows虛擬機的防火墻,自動更新關閉,然后需要安裝python2.7環境。并將cuckoo根目錄下agent/agent.py復制到虛擬機中。agent.py負責虛擬機到主機的數據傳輸,可以將其添加到startup文件夾下,開機自動啟動,如果不想出現黑窗口,可以修改文件名agent.pyagent.pyw。運行agent.pyw后,此時的虛擬機環境基本搭建完成了,當然,如果需要分析office或者pdf等,那么還需要安裝這些軟件。現在可以創建一個純凈的系統快照了,以備后用。

            虛擬機配置完成之后,就是配置cuckoo了。Cuckoo的配置文件在conf目錄下,該目錄下有很多配置文件,其中:

            最后我們在配置一下cuckoo的web界面。需要開啟reporting.conf中的mongodb。然后開啟mongodb服務:systemctl enable mongodbsystemctl start mongodb。現在可以啟動web服務web/manage.py runserver。服務運行于127.0.0.1:8000。

            2.3 運行

            Python cuckoo.py 運行cuckoo分析系統。如下圖:

            p2

            啟動后cuckoo開始等待分析任務。添加分析任務使用根目錄下的utils/submit.py。具體用法可以看幫助,這里主要介紹利用web界面來添加任務及查看報告。

            在瀏覽器中打開127.0.0.1:8000

            p3

            點擊submit添加任務,同時還有一些高級選項,如果需要內存分析,請選中Full Memory Dump。提交后,cuckoo就會開始自動分析,期間virtualbox會啟動并運行程序。最終分析結果:

            p4

            最上面就是cuckoo分析的類型,包括靜態分析,行為分析,網絡分析等。

            0x02 結束語


            本文主要介紹了cuckoo的基本特性和安裝,配置方法。利用cuckoo能夠快速的分析惡意程序的部分行為,提高對惡意程序分析的效率。后續文章會繼續分析cuckoo的程序結構及模塊開發。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线