모두의 dream
Install Cuckoo Sandbox 본문

극한의 삽질끝에 정리하기로 결심.
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 으로 설정해주면 바뀜.

위 사이트에서 그대로 저장한 뒤
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"
'Project' 카테고리의 다른 글
CNN을 이용한 악성코드 탐지 (졸업논문) (0) | 2023.01.03 |
---|---|
유튜브 클론코딩 (HTML + CSS + node.js + MongoDB) (0) | 2022.01.22 |