모두의 dream
Install Cuckoo Sandbox 본문
![](https://blog.kakaocdn.net/dn/M1FMX/btrr0B8AYWz/Oihjh77dzBFoFZUjqKIFi0/img.png)
극한의 삽질끝에 정리하기로 결심.
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 확인
![](https://blog.kakaocdn.net/dn/xc66d/btrr2yvLKYD/JC3UQDJpjwU5qKIUDXUfA0/img.png)
버전 체크
![](https://blog.kakaocdn.net/dn/ZOzcv/btrr0Aof3pB/B9OKxgCVxfK3GtAEFU2DtK/img.png)
// 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
![](https://blog.kakaocdn.net/dn/dcej4K/btrr0PZNcxY/5NK4RIKPhehm722BJczkxk/img.png)
sudo aa-disable /usr/sbin/tcpdump
![](https://blog.kakaocdn.net/dn/E4fWY/btrr17d5ldO/86GrghXZprXqbJfoIRktP0/img.png)
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)
![](https://blog.kakaocdn.net/dn/caCXxV/btrr1NmDtCp/Yj4umzqRJRIAkONrKnX65K/img.png)
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 으로 설정해주면 바뀜.
![](https://blog.kakaocdn.net/dn/b3fnla/btrr0PZNcza/oK5kW6wKMKZ9IoM6JWMT4k/img.png)
위 사이트에서 그대로 저장한 뒤
chmod +x cuckoo-setup-virtualenv.sh
sudo -u cuckoo ./cuckoo-setup-virtualenv.sh
source ~/.bashrc
mkvirtualenv -p python2.7 cuckoo-test
![](https://blog.kakaocdn.net/dn/oPZ0D/btrr17yoPMP/TPq1YMnKESggNiNGkoNMbk/img.png)
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
![](https://blog.kakaocdn.net/dn/b4I6Kf/btrr0z3Y7jZ/bkrSckVf7g7WKPD3vaNUM1/img.png)
cuckoo-test 가상환경 위치
![](https://blog.kakaocdn.net/dn/Aahq6/btrr17rBKNP/fYqkeCIDca5bETitavO8r0/img.png)
설치완료
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
* 오류발생
![](https://blog.kakaocdn.net/dn/b91jCh/btrr04I9bk5/6MBNbMqmwpym56i7NdkJL1/img.png)
ubuntu bios로 들어가서 secure boot 를 꺼야된다는 구글링 결과.
hyper-v 옵션에서 secure boot 꺼버렸더니 성공.
![](https://blog.kakaocdn.net/dn/kC121/btrr1N7Yyvu/hnFDkIKahStTAbFtJqWMJ1/img.png)
vmcloak init --verbose --win7x64 win7x64base --cpus 2 --ramsize 2048
![](https://blog.kakaocdn.net/dn/bnJitU/btrr16sI4JM/7zu4IU8falLC8XxcKZPkjk/img.png)
python2 에서 cryptography를 더이상 지원하지 않는다는 소리같은데 우선 그냥 진행했다.
아래 명령어를 사용하면 무시할 수 있다고 한다.
export PYTHONWARNINGS="ignore"
Senthil Rajendran's Blog: Ignore Python Warning (skrajend.blogspot.com)
![](https://blog.kakaocdn.net/dn/RGQNi/btrr2z9e43p/FaZ4QiMl6ujgyzOZxkwxG1/img.png)
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 일 경우
![](https://blog.kakaocdn.net/dn/bdcE3H/btrr1mv0NpJ/fU6YNlmM42tiHxGBnztYI1/img.png)
맨 위 체크해주면 됨.
해결???
![](https://blog.kakaocdn.net/dn/bloptl/btrr2yoXC7x/Na3K7IQkthxV5gRN9WuD0k/img.png)
해결!
vmcloak clone win7x64base win7x64cuckoo
14. vm 내부 (windows7) 소프트웨어 설치 및 vm 여러개 생성
vmcloak install win7x64cuckoo ie11
vmcloak snapshot --count 4 win7x64cuckoo 192.168.56.101
vmcloak list vms
![](https://blog.kakaocdn.net/dn/SX1VL/btrr1l4Zd0B/4pkbNZ58uUfRp7YC7oxyk1/img.png)
생성된 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]이 나올때까지.
![](https://blog.kakaocdn.net/dn/beIpfN/btrr0AhvBED/11ZHSNxJEQUxjplTF8qWm0/img.png)
17. per-analysis
/home/cuckoo/.cuckoo/conf/routing.conf 에 들어가서 internet = none을 internet = eth0 (host adapter) (ip a 를 입력해서 나오는 adapter 로 입력해줌)
![](https://blog.kakaocdn.net/dn/bEgcsu/btrr0A9DILq/kHB6ISs5758aCAsdSkfevk/img.png)
/home/cuckoo/.cuckoo/conf/reporting.conf 에 들어가서 [mongodb]의 enabled = yes로 바꿔준다.
cuckoo rooter --sudo --group cuckoo (이게 실행된 상태에서 다른 터미널에서 다음줄 실행)
cuckoo
18. cuckoo 실행 완료
![](https://blog.kakaocdn.net/dn/EF4Dx/btrr0QxBPgT/ssdQSG0d3yeOpATr1hJBFk/img.png)
Loaded 4 machine/s
cuckoo web --host 127.0.0.1 --port 8080 - 웹에서 보여줌
![](https://blog.kakaocdn.net/dn/ZUhOn/btrr06mH0jK/IbbkF1dOuFIrh5dS7hRhqK/img.png)
cuckoo clean - 초기화(?)
![](https://blog.kakaocdn.net/dn/pGevV/btrr2XPzXny/kE1qvfMon6Gv3HVfL79N61/img.png)
![](https://blog.kakaocdn.net/dn/bexntc/btrr2zhaDTW/Rk8nBrqmoREi3YykEWiKE0/img.png)
![](https://blog.kakaocdn.net/dn/c9CQ3T/btrr04CnxWV/XnUCjJKZYPe9bYtfrhHF4k/img.png)
이걸로 도전?
또한 재부팅하면 오류뜸
![](https://blog.kakaocdn.net/dn/eeuhNe/btrr0ABLZrv/2LYJttROgtMGTiK4NtRiuK/img.png)
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 단축키
![](https://blog.kakaocdn.net/dn/u7ArN/btrr158qa01/xLiCaKGe8dEKRfq0XicRe1/img.png)
시작하기전에 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 |