설치하면서 작성하는 글. 밑에 3개 글 서로 돌려봐가면서 했다.

    http://docs.cuckoosandbox.org/en/latest/installation/host/installation/

    http://lureout.tistory.com/213

    http://cpuu.postype.com/post/325368/

    나중에 필요할 때 또옥같이 따라할 거임


    ----- 2018 추가

    0. 버전이 많이 달라져서 이 글대로 하면 잘 안된대여~ 다른 거 보셍요

    -----


    1. 버추얼박스에 우분투 설치

    윈도우 쓰는 중인데 노트북에 남은 공간이 별로 없어서 파티션을 나누는 대신 가상머신 안에 설치하기로 했다.

    그리고 파티션 나눠서 했다가 윈도도 지워버릴까봐 무섭

    글 다쓰고 추가로 적는 건데 12 정도로 할 걸 그랬다



    2. 우분투 세팅

    게스트 확장 시디도 넣고

    업데이트도 하고 재시작했다.



    3. 준비과정

    pip하고 그밖에 필요한 것들

    sudo apt install python python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg-dev

    몽고DB도 설치

    sudo apt install mongodb

    pip도 업데이트. 굳이 할 필욘 없지만..

    sudo pip install -U pip setuptools

    그리고 글에선 git 쓸 일이 좀 있으니까 git도 설치

    sudo apt install git



    4. ssdeep, pydeep 설치

    ssdeep를 설치하기 위해 필요한 의존성 머시기라고 한다. 복붙해서 쓰자.

    sudo apt install build-essential libffi-dev python python-dev python-pip automake autoconf libtool

    그리고 pip으로 ssdeep 설치

    sudo BUILD_LIB=1 pip install ssdeep


    pydeep도 잘 설치

    sudo apt install libfuzzy-dev
    sudo pip install pydeep



    5. tcpdump 설치

    순서대로 잘 입력해보자. 근데 입력하니까 libcap2-bin이랑 tcpdump 이미 설치돼있었음.

    sudo apt install libcap2-bin
    sudo apt install tcpdump
    sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump


    아래 명령어를 입력해서 스크린샷처럼 출력되면 잘 된거

    getcap /usr/sbin/tcpdump



    6. yara, yara-python 설치

    yara는 github에서 받음. https://github.com/VirusTotal/yara/releases에서 받음

    sudo apt install automake libtool make gcc
    wget https://github.com/VirusTotal/yara/archive/v3.5.0.tar.gz
    tar -zxf v3.5.0.tar.gz
    cd yara-3.5.0
    

    그리고 설치

    ./bootstrap.sh
    ./configure
    make
    sudo make install
    cd ~


    이제 yara-python 설치하면 되는데, 이건 pip으로 설치. 편해서 참 좋다.

    sudo pip install yara-python



    7. volatility, distorm 설치

    메모리 분석까지 하고 싶을 때 설치하는 선택사항.

    pip에서 검색해보니까 버전이 낮아서 github에서 받아서 설치.

    git clone https://github.com/volatilityfoundation/volatility.git
    cd volatility
    python setup.py build
    sudo python setup.py install
    cd ~


    distorm은 볼라틸리티의 apihooks 플러그인에서 쓰는 패키지라고 http://www.hakawati.co.kr/272를 쓰신 분이 말해주셨다. 이것도 설치

    git clone https://github.com/gdabah/distorm.git
    cd distorm
    python setup.py build
    sudo python setup.py install
    cd ~



    8. cuckoobox 다운로드, 필요한 패키지 설치

    cuckoobox를 받고 필요한 패키지를 정리해놓은 requirements.txt도 한꺼번에 설치하자. 넘 편한것

    git clone https://github.com/cuckoosandbox/cuckoo.git
    cd cuckoo
    sudo pip install -r requirements.txt
    cd ~

    운 안좋은 사람은 모듈 하나쯤 삑사리나면서 설치 안될듯



    9. 버추얼박스 설치

    https://www.virtualbox.org/wiki/Linux_Downloads에서 버전에 맞는 deb 다운로드. 이 글에선 16.04 amd64

    이것도 같이 받음. 우분투 소프트웨어로 실행하면 잘 설치해준다.

    받은 김에 확장팩도 설치



    10. 버추얼박스에 xp 설치

    쿠쿠박스 문서에서는 xp 서비스팩3을 권장한다. 윈도우7도 되긴 된다는 듯.

    이 글에서는 https://az412801.vo.msecnd.net/vhd/VMBuild_20141027/VirtualBox/IE8/Windows/IE8.XP.For.Windows.VirtualBox.zip를 받아서 사용했다.

    wget https://az412801.vo.msecnd.net/vhd/VMBuild_20141027/VirtualBox/IE8/Windows/IE8.XP.For.Windows.VirtualBox.zip
    unzip IE8.XP.For.Windows.VirtualBox.zip

    압축을 풀면 나오는 IE8-WinXP.ova는

    잘 import하면


    11. 버추얼박스 설정

    호스트 전용 어댑터로 해놓으면 앞으로 설정할 때 좀 편하다.

    버추얼박스의 환경설정에서 호스트 전용 어댑터를 하나 추가한다. 왠만하면 vboxnet0으로 설정을 진행하는 게 좋다.


    DHCP 서버는 자동으로 설정돼있을 텐데, 만약 안돼있다면 이렇게 192.168.56 라인으로 잘 맞춰놓는다.


    그리고 xp 설정에서 방금 추가한 호스트 전용 어댑터를 설정해준다.


    그리고 머신 이름은 cuckoo1로 바꿔놓는다. 그래야 앞으로 설정할 때 편함.


    공유폴더 설정도 해주면 이따가 편함.



    12. xp 설정

    공유폴더로 xp에 옮겨줄 파일은 4개가 있다.

    python, PIL, agent.py, ProcessExplorer

    PIL 최신 버전은 http://www.pythonware.com/products/pil/에서 확인하면 됨. agent.py는 아까 받은 cuckoo 폴더 안에 있는 것. 프로세스 익스플로러는 글 맨 위에 쓴 링크에서 따라함. 받아서 공유폴더로 옮겼다.

    wget https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi
    wget http://effbot.org/media/downloads/PIL-1.1.7.win32-py2.7.exe
    wget https://raw.githubusercontent.com/cuckoosandbox/cuckoo/master/agent/agent.py
    wget https://download.sysinternals.com/files/ProcessExplorer.zip

    이 시점에서 재시작 한번 함.


    이제 xp 가상머신을 실행해서 게스트 확장을 설치하고,

    ip도 확인해준다. 192.168.56.101이면 나중에 설정할 때 편하다.

    파이썬 설치하고

    PIL도 설치하고

    방화벽도 해제하고

    그리고 스크린샷은 안찍어놨는데 자동 업데이트도 끄고 페이징 파일도 꺼준다.


    agent.py랑 procexp.exe를 실행하고 스냅샷을 SnapShot1(띄어쓰기 없이)으로 저장했다. 스냅샷 이름을 저렇게 해야 설정할때 편함ㅎ



    13. 쿠쿠박스 설정

    virtualbox.conf 편집함

    vi ~/cuckoo/conf/virtualbox.conf

    지금 버추얼설정대로 잘 있는지 확인하고, 주석처리 상태면 주석을 제거해줌

    interface = vboxnet0
    machines = cuckoo1
    ip = 192.168.56.101
    snapshot = Snapshot1
    resultserver_ip = 192.168.56.1
    resultserver_port = 2042


    볼라틸리티를 설치했으니 processing.conf도 수정함.

    vi ~/cuckoo/conf/processing.conf

    [memory]에서 enabled = yes로 설정했다.


    cuckoo.conf도 수정

    vi ~/cuckoo/conf/cuckoo.conf

    memory_dump = yes로 설정


    그리고 memory.conf도 수정

    vi ~/cuckoo/conf/memory.conf

    들어가서 모든 옵션을 enabled = yes로 바꿨다. 그런데 글을 보면 결과가 엄청 오래 걸리니까 필요한 옵션만 체크하라고...

    ==== 2016-11-02 수정 ====

    api hooking과 message hooking만 엄청 느리니까 속도가 중요하면 이 두 개만 no로 하면 된다.

    dump delete 여부는 하드 용량에 따라 결정.

    ====================



    14. 유저 설정이랑 아이피테이블 설정

    사실 깜빡하고 쿠쿠박스를 먼저 실행했는데, 리눅스에서 설정을 좀 해줘야 한다.

    이건 유저 설정

    sudo adduser cuckoo
    sudo usermod -a -G vboxusers cuckoo


    이건 포워딩 설정..

    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 -A POSTROUTING -t nat -j MASQUERADE
    sudo sysctl -w net.ipv4.ip_forward=1

    포워딩 설정을 안하면 네트워크가 안된다.



    15. 쿠쿠 샌드박스 실행

    ==== 2016-11-02 수정 ====

    쿠쿠 샌드박스 실행 전에 아래 두 명령어를 입력해놓자.

    VBoxManage controlvm "cuckoo1" poweroff
    VBoxManage snapshot "cuckoo1" restorecurrent

    ====================

    cuckoo.py를 실행하기만 하면 된다.

    cd ~/cuckoo
    python cuckoo.py

    아씨


    저기서 하란 대로 명령어를 더 쳐주고 다시 cuckoo.py를 실행했다.

    ==== 2016-11-02 수정 ====

    python ./utils/community.py -wafb monitor에서 python ./utils/community.py -wafb 2.0로 수정

    ====================

    sudo pip install pycrypto
    python ./utils/community.py -wafb 2.0



    문서를 읽으면서 뭐가 나오길래 뭔진 몰라도 하나 설치했다. 근데 안해도 될듯....

    ==== 2016-11-02 수정 ====

    정말 안해도 됨

    ====================

    sudo apt install samba-common-bin



    16. 웹 인터페이스

    쓰기 귀찮당...

    cd ~/cuckoo/web/
    python manage.py runserver

    새로 쉘을 열어서 이거 써서 엔터치면


    이런 게 뜰리가 업는디...


    웹 인터페이스를 활성화하려면 reporting.conf를 설정해줘야 한다.

    vi ~/cuckoo/conf/reporting.conf

    이렇게 yes로 변경해주고 다시 manage.py를 실행하면


    됐다ㅎㅎ


    Posted by 코요
    • 손님
      2016.11.17 10:37 신고

      하나 궁금한게 있는데요, 저렇게 똑같이 설치 후 실행하니까, timeout이 계속 뜨더라구요.
      그리고 분석 후 나온 로그를 보면, Error: Error from the Cuckoo Guest: The analysis hit the critical timeout, terminating.

      2016-11-17 10:19:34,069 [analyzer] DEBUG: Starting analyzer from: C:\tolcwpjbu
      2016-11-17 10:19:34,079 [analyzer] DEBUG: Pipe server name: \\.\PIPE\StQLokKHPnxHoBsDGuYAMRHNZG
      2016-11-17 10:19:34,099 [analyzer] DEBUG: Log pipe server name: \\.\PIPE\nmvijqUtvOsljWPLFD
      2016-11-17 10:19:34,109 [analyzer] DEBUG: No analysis package specified, trying to detect it automagically.
      2016-11-17 10:19:34,109 [analyzer] INFO: Automatically selected analysis package "generic"

      위와 같은 로그가 발생하고, 행위 분석 결과는 전혀 나오지 않습니다.
      혹시, 실행 시 위와 같은 문제가 없었나요? 아니면, 저런 문제의 해결책이 무엇이 있을까요.

      • BlogIcon 코요
        2016.11.23 14:44 신고

        음.. ip주소 설정이나, 방화벽 설정, 포트 설정이 잘 됐는지 확인해보세요ㅠ

    • BlogIcon whois
      2017.03.06 02:04 신고

      2017-03-05 08:55:05,396 [root] CRITICAL: CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo1' down or find the machine in its proper state: Timeout hit while for machine cuckoo1 to change status

      이러한 에러가 뜨는걸 보니 15번에 적어 놓으신 쿠쿠샌드박스 실행 전에 치는 명령어 두 가지를 쳐야 하는 것 같은데

      BoxManage: error: Could not find a registered machine named 'cuckoo1'
      VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
      VBoxManage: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 96 of file VBoxManageControlVM.cpp

      cuckoo1을 찾을 수 없다고 뜨네요... Virtualbox에 설치 해놓은 xp의 이름을 cuckoo1로 맞춰 줬는데 말이죠.

      혹시 다른 문제가 있을까요?

      참고로, 우분투는 VMware 가상 머신을 이용해 올렸고 그 안에 Virtualbox로 xp를 설치했습니다.

      • BlogIcon 코요
        2017.03.07 13:17 신고

        혹시 root 권한으로 명령어를 치셨나요?
        VBoxManage 명령어는 root 권한으로 실행하면 안되고 원래 쓰는 사용자 계정으로 하셔야 될 겁니다.

        그런 경우가 아니라면 저도 잘 모르겠네요..

        VBoxManage list vms
        이 명령어도 실행해봐서 리스트가 나오는지 확인해보세요

      • whois
        2017.03.09 14:16 신고

        감사합니다ㅎㅎ

        매번 sudo 쓰기가 귀찮아서 root 계정으로 모든 명령어를 쳤는데 VBoxManage만은 안 되나 보네요...

        2017-03-08 20:48:59,241 [root] CRITICAL: CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo1' down or find the machine in its proper state: Timeout hit while for machine cuckoo1 to change status

        환경 구축은 성공적으로 되었는데 여전히 이 에러 메시지 뜨네요. 오류 없이 잘 돌아가서 딱히 신경 쓰지는 않아도 될 거 같긴 하네요.

      • BlogIcon 코요
        2017.03.09 15:29 신고

        ㅎㅎ

    • ku
      2017.04.20 20:02 신고

      2017-04-20 04:00:46,115 [cuckoo.machinery.virtualbox] DEBUG: Stopping vm cuckoo_WIN7_32bit
      CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo_WIN7_32bit' down or find the machine in its proper state: The virtual machine 'cuckoo_WIN7_32bit' doesn't exist! Please create one or more Cuckoo analysis VMs and properly fill out the Cuckoo configuration!
      sudo로 실행했는데 이러네요.... 위에분이랑 같은거 문제인거같은데..왜저는아예 안되띾요 ㅠㅠ

      • BlogIcon 코요
        2017.04.21 18:53 신고

        글 보시면 root 권한이 필요한 부분에만 sudo를 사용했습니다.

        처음부터 해보시는 게 어떨까요ㅜ

    • feeldragon
      2017.08.11 09:46 신고

      안녕하세요 많은 공부가 되었습니다.
      제가 물어 볼것이 있는데 다름이 아니라 cuckoo.py 라는 파일이 보이지가 않는데 따로 설치를 해야하는건가요? 아님 중간에 머 다른버전으로 바껴서 그런건가요?? 이거만 해결하면 끝날거 같은데 도와주세요 ㅠㅠ

    • BlogIcon jung in
      2017.09.20 09:29 신고

      마지막에 cuckoo.py 실행하려는데 cuckoo.py 파일이 없네요 저만 그런가요??ㅠㅠㅠ

티스토리 툴바