모두의 dream

Install Cuckoo Sandbox 본문

Project

Install Cuckoo Sandbox

오리꽥이로 2022. 1. 28. 21:53
Contents 접기

극한의 삽질끝에 정리하기로 결심.

python 2.7에서 완벽하게 지원이라길래 ubunut 18.04 버전에서 Cuckoo 설치 진행.

우분투 유저명은 cuckoo

1. python2, pip2 설치

sudo apt install python-minimal

sudo apt install python-pip

2. cuckoo 구동에 필요한 패키치 및 라이브러리 설치

sudo apt-get install python-dev libffi-dev libssl-dev

sudo apt-get install python-virtualenv python-setuptools

sudo apt-get install libjpeg-dev zlib1g-dev swig

3. MongoDB 설치 ( 웹 프레임워크 GUI 환경에서 분석 결과 등을 확인하기 위해서 필요)

sudo apt-get install mongodb

4. PostgreSQL 설치

sudo apt-get install postgresql libpq-dev

3, 4번은 모두 분석결과를 저장하는 용도

5. ssdeep 및 pydeep 설치 (Fuzzy hash를 이용하여 파일 유사도 검사)

* ssdeep 설치

sudo apt install ssdeep

command x86_64-linux-gnu-gcc failed with exit status 1 pydeep 오류가 떠서 아래 패키치를 설치함.

* 추가 설치

sudo apt-get install build-essential libxml2-dev libxslt1-dev

sudo apt-get install libfuzzy-dev

* pydeep 설치

git clone https://github.com/kbandla/pydeep.git pydeep

python setup.py build

python setup.py test

sudo python setup.py install

6. virtualbox 설치 (공식 문서에 따르면 VirtualBox 4.3, 5.0, 5.1, and 5.2만 지원한다고 되어있음)

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bionic contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

sudo apt-get update

sudo apt-get install virtualbox-5.2

How To Install VirtualBox On Ubuntu 18.04 / 18.10 / 19.04 & Ubuntu 16.04 (itzgeek.com)

7. virtualbox 확인

버전 체크

// Host Network Manager -> # 보류

8. tcpdump 설치

sudo apt-get install tcpdump apparmor-utils

sudo groupadd pcap

sudo usermod -a -G pcap cuckoo

sudo chgrp pcap /usr/sbin/tcpdump

sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

getcap /usr/sbin/tcpdump

sudo aa-disable /usr/sbin/tcpdump

9. M2Crypto 설치

위에서 swig 설치함

sudo pip install m2crypto

sudo apt-get install python-pefile

pip install yara-python

10. Cuckoo 설치

sudo usermod -a -G vboxusers cuckoo

ulimit 설정 해주기 -> open files 최대 크기 증가

(vim /etc/security/limits.conf)

Increase "Open Files Limit". Solution for "Too many open files (24)" (rtcamp.com)

이렇게 했는데 안되서 구글링.

Ubuntu – How to increase max open files limit on Ubuntu 18.04 – iTecTec

/etc/systemd/system.conf 와 /etc/systemd/user.conf 에서

둘다 DefaultLimitNOFILE=50000 으로 설정해주면 바뀜.

This script will setup Python virtualenv, I made it specifically for setting up Cuckoo. Please see the notes in the script before running. (github.com)

위 사이트에서 그대로 저장한 뒤

chmod +x cuckoo-setup-virtualenv.sh

sudo -u cuckoo ./cuckoo-setup-virtualenv.sh

source ~/.bashrc

mkvirtualenv -p python2.7 cuckoo-test

virtualenv

(cuckoo-test) $ pip install -U pip setuptools

(cuckoo-test) $ pip install -U cuckoo

deactivate - 가상환경 종료

activate - 가상환경 시작

현재 cuckoo-test 의 위치는 /home/cuckoo/.vurtualenvs/cuckoo-test

따라서 가상환경 시작 명령어는

source /home/cuckoo/.virtualenvs/cuckoo-test/bin/activate

cuckoo-test 가상환경 위치

설치완료

11. windows7 iso 다운 및 vm 생성

mkdir /mnt/win7_32bit

sudo chown cuckoo:cuckoo /mnt/win7_32bit

sudo mount -o ro,loop IE9_ko_windows_7_ultimate_k_with_sp1_x86_dvd_u_677508.iso /mnt/win7_32bit

vmcloak init 단계에서 계속 에러나서 아래로 시도 (사실 vmcloak 사용법의 미숙으로 인한 도피)

wget https://cuckoo.sh/win7ultimate.iso

mkdir /mnt/win7

sudo mount -o ro,loop win7ultimate.iso /mnt/win7

12. vmcloak 설치

what is vmcloak? : VMCloak is a utility for automatically creating Virtual Machines with Windows as guest Operating System

pip install -U vmcloak

13. vm 환경 구축

vmcloak-vboxnet0

* 오류발생

ubuntu bios로 들어가서 secure boot 를 꺼야된다는 구글링 결과.

hyper-v 옵션에서 secure boot 꺼버렸더니 성공.

vmcloak init --verbose --win7x64 win7x64base --cpus 2 --ramsize 2048

python2 에서 cryptography를 더이상 지원하지 않는다는 소리같은데 우선 그냥 진행했다.

아래 명령어를 사용하면 무시할 수 있다고 한다.

export PYTHONWARNINGS="ignore"

Senthil Rajendran's Blog: Ignore Python Warning (skrajend.blogspot.com)

hyper-v 때문에 발생하는 오류라는데... 내 Ubuntu는 hyper-v에서 돌아가는데... 난감한 상황 발생.

Hyper-V : enable nested virtualization - RDR-IT (rdr-it.com)

CPU가 Virtualization을 지원하도록 만드는?

가상 컴퓨터에서 중첩된 가상화를 사용하여 Hyper-v 실행?

호스트 윈도우에서

Set-VMProcessor -VMName Ubuntu18_cuckoo -ExposeVirtualizationExtensions $True

Ubuntu18_cuckoo 는 hyper-v 가상환경 이름

vmware 일 경우

맨 위 체크해주면 됨.

해결???

해결!

vmcloak clone win7x64base win7x64cuckoo

14. vm 내부 (windows7) 소프트웨어 설치 및 vm 여러개 생성

vmcloak install win7x64cuckoo ie11

vmcloak snapshot --count 4 win7x64cuckoo 192.168.56.101

vmcloak list vms

생성된 4개의 vm

참고로 192.168.56.101 의 첫번째라 192.168.56.1011

192.168.56.101 의 두번째라 192.168.56.1012

...

모두 vm 이름임

15. cuckoo 구성

cuckoo init

cuckoo directory : /home/cuckoo/.cuckoo

16. 생성한 vm을 cuckoo에 추가

cuckoo community

vim /home/cuckoo/.cuckoo/conf/virtualbox.conf

virtual box mode = headless -> virtual box mode = gui

virtuabox.conf 에서 바꿀 수 있는 설정이 굉장히 많음.

while read -r vm ip; do cuckoo machine --add $vm $ip; done < <(vmcloak list vms)

하고 virtualbox.conf에서 machines의 cuckoo1 을 빼준다.

또 [cuckoo1] 아래도 모두 삭제. [192.168.56.1011]이 나올때까지.

17. per-analysis

/home/cuckoo/.cuckoo/conf/routing.conf 에 들어가서 internet = none을 internet = eth0 (host adapter) (ip a 를 입력해서 나오는 adapter 로 입력해줌)

/home/cuckoo/.cuckoo/conf/reporting.conf 에 들어가서 [mongodb]의 enabled = yes로 바꿔준다.

cuckoo rooter --sudo --group cuckoo (이게 실행된 상태에서 다른 터미널에서 다음줄 실행)

cuckoo

18. cuckoo 실행 완료

Loaded 4 machine/s

cuckoo web --host 127.0.0.1 --port 8080 - 웹에서 보여줌

cuckoo clean - 초기화(?)

이걸로 도전?

또한 재부팅하면 오류뜸

VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0

cuckoo -d command not working · Issue #2655 · cuckoosandbox/cuckoo (github.com)

구글링 나온대로 입력해서 되긴 했는데.. 이류를 모르므로 이렇게 하는게 맞는지는 정확히 모르겠음.

메뉴설명

(멘토스쿨과제)쿡쿠샌드박스를 활용한 악성코드 분석 사례 : 네이버 블로그 (naver.com)

참고자료

Installation — Cuckoo Sandbox v2.0.7 Book

(7) Setting up Cuckoo Sandbox v2.0.7 on Ubuntu 18.04.4 - Part 1 - YouTube

Cuckoo Sandbox Setup for People in a Hurry (hatching.io)

(7) Setting Up Cuckoo Sandbox v2.0.7 on Ubuntu 18.04.4 - Part 2 - YouTube

terminator 단축키

시작하기전에 cuckoo.sh 만들어서 실행.

네트워크 문제 해결을 위한것임.

#!/bin/bash
echo "Start"
sudo iptables -t nat -A POSTROUTING -o ens33 -s 192.168.56.0/24 -j MASQUERADE
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT
sudo iptables -A FORWARD -s 192.168.56.0/24 -d 192.168.56.0/24 -j ACCEPT
sudo iptables -A FORWARD -j LOG
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
echo "Complete"
Comments