DAY50
DAY50

CUCKOO 가상 머신 만들기(우분투 버전20.04) 최종편


0) 기본 설정
vmware workstation pro

ubuntu20.04
어댑터에 브릿지 설정
edit > virtual network editor > change settings > vmnet0 확인
> vmnet information bridged to : reltek pcie gbe family controller로 변경

ip addr
192.168.0.188
(jyb/123456)

dns 168.126.63.1
보조 dns 168.126.63.2

sudo apt -y install openssh-server
sudo systemctl enable ssh
Xshell 접속 가능

sudo apt -y install net-tools
sudo apt -y install unzip


nano /etc/hostname
	CUCKOO188

apt update

apt -y install  lrzsz
Anaconda3-2024.10-1-Linux-x86_64.sh xshell에 붙여넣기
chmod 777 Anaconda3-2024.10-1-Linux-x86_64.sh (권한)
./Anaconda3-2024.10-1-Linux-x86_64.sh (실행)
	!!!실행시 권한이 root이면 (base)가 root일 때만 뜨므로 미리 su jyb를 해줘야 한다!!!
	enter / q / yes / enter / yes
reboot

아나콘다
python 가상 환경
다양한 버전 사용 가능

conda create -n py27 python=2.7 (y)
conda env list
conda activate py27

1) cuckoo샌드박스 기본 설치 항목
sudo apt -y install python-pip (x)
sudo apt -y install python-dev (x)
sudo apt -y install python2-dev
sudo apt -y install libssl-dev
sudo apt -y install libjpeg-dev
sudo apt -y install zlib1g-dev
sudo apt -y install tcpdump
sudo apt -y install apparmor-utils
sudo apt -y install vim
sudo apt -y install iptables-persistent
	yes/yes

sudo apt -y install python2-dev libssl-dev libjpeg-dev zlib1g-dev tcpdump apparmor-utils vim iptables-persistent 
(이렇게 한줄로 전부 설치할 수도 있다!!!)

(/tcpdump 경로 찾기 실패시 /bin에 있을 수도 있음)
sudo aa-disable /usr/sbin/tcpdump
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

vbox설치
echo deb http://download.virtualbox.org/virtualbox/debian xenial comtrib | sudo tee -a

wget -q http:/www.virtualbox.org/download/oracle_vbox_2016.asc -O | sudo apt-key add- (x)
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O /tmp/oracle_vbox_2016.asc

sudo cp /tmp/oracle_vbox_2016.asc /etc/apt/trusted.gpg.d/ (x)

sudo apt update
sudo apt -y install virtualbox

sudo apt-get -y install libjpeg-dev zilb1g-dev libfreetype6-dev
sudo apt-get -y install python2.7-dev tk-dev
sudo apt-get -y install build-essential
~기본설치 완료~

cuckoo설치 시작
sudo -H pip install -U pip (x)
아래로 대체
sudo apt -y install curl
sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python2 get-pip.py
sudo -H pip2 install cuckoo==2.0.7 (x)
python2 -m pip install cuckoo==2.0.7 (new!!!)

cuckoo (설치완료, 실행준비완료)

***
cuckoo 구조 보기
ls -al (.cuckoo 파일 내용 확인)
web (jango)
elasticsearch
conf
>virtualbox.conf > ip = 192.168.56.101 (호스트 전용 > 나중에 인터넷 연결 할 것)

/home/jyb/.cuckoo/agent안에 agent.py 밖으로 빼기 > 플라스크
윈도우7에 agent.py 넣기
실행시킨 상태에서 스냅샷 걸어놓기
***

cuckoo process -r 1 (에러?)

윈도우 7 python, agent.py, pillow 설정 완료 후
스냅샷 걸기 (이때 NAT설정을 꼭 hostonly로 변경했는지 확인한다)
python agent.py

VBoxManage snapshot "cuckoo1" take "Snapshot 1" --pause
VBoxManage controlvm "cuckoo1" poweroff
VBoxManage snapshot "cuckoo1" restorecurrent

systemctl start mongod
cuckoo --cwd ~/test
cuckoo -d
cuckoo web -H 192.168.0.188(본인 IP)

Bootstrap Example

가상머신 설정


0) CUCKOO.ova 만들기
Win7_Manager6.ova > CUCKOO.ova로 이름 변경해서 올리기
파이썬 2.7 설치
(windows x86-64 msi installer 2.7.0)

agent.py
(경로: /home/jyb/.cuckoo/agent안에 agent.py)
python agent.py 실행 오류시(버전문제!!! 2.7.1부터는 path 자동 설정됨)
시스템 환경변수 편집> 환경변수 > 시스템 변수 > PATH
python27경로 넣기
;c:\python27

가상머신 가져오기 (!!!가상머신 이름은 반드시 cuckoo1로 설정한다!!!)
CUCKOO.ova

cmd
python agent.py
실행한 상태로 스냅샷 걸기
VBoxManage snapshot "cuckoo1" take "Snapshot 1" --pause
VBoxManage controlvm "cuckoo1" poweroff
VBoxManage snapshot "cuckoo1" restorecurrent

echo "export cwd=/home/\"\$USER\"/.cuckoo" >> ~/profile
source ~/.profile
env | grep cwd

************************************************
공유 폴더 사용방법 

vm > settings > options > share folers
always enabled
설정시 기본 경로는 /mnt/hgfs/
vmware-hgfsclient (공유폴더 이름 확인)
자동마운트 설정
su
nano /etc/fstab 맨밑에 추가
vmhgfs-fuse   /mnt/hgfs fuse defaults,allow_other 0 0
cd /mnt/hgfs
exit

참고 주소
https://developern.tistory.com/entry/VMware-ubuntu-vm%EC%9D%98-%EA%B3%B5%EC%9C%A0%ED%8F%B4%EB%8D%94-Shared-Folders-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95
************************************************

vmware > 명령 프롬프트
virtualbox (oracle vm virtualbox manager 앱 실행됨)

oracle virtualbox manager
cuckoo 오류 해결하기
	1. host networ manager 추가
	2. setting > usb 체크 해제
	3. processors > virtualize intel vt-x/ept or amd-v/rvi 체크 
	4. network > hostonly
	5. reboot
	6. agent.py 실행상태로 snapshot1
	7. 버전 변경 !!! < new
	sudo apt remove --purge virtualbox* (기존버전 삭제)
	dpkg --list | grep virtualbox (삭제 확인)
	https://download.virtualbox.org/virtualbox/7.0.20/virtualbox-7.0_7.0.20-163906~Ubuntu~jammy_amd64.deb (버전7 다운로드)
	(버전 7을 먼저 다운받았을 경우 삭제 후 진행한다.)
	sudo dpkg -i virtualbox-7.0_7.0.20-163906~Ubuntu~jammy_amd64.deb
		오류시 sudo apt --fix-broken install
	
virtual box 실행 후 -> File -> Tools -> Network Manager -> Create
.ova 불러온 후 실행하면 정상 작동된다. (Host-only Adapter) 



Bootstrap Example

웹 서비스 데이터베이스 구성(MONGODB)


쿡쿠와 연동되어 사용되는 웹 서버 : 참고 웹 프레임워크(Django Web Framework)
웹서버가 사용할 데이터 베이스 NoSQL인 몽고 DB 사용중
버전 때문에 설치가 안 될 수 있음 > 수정해야함

***mongo
sudo apt install gnupg wget apt-transport-https ca-certificates software-properties-common

echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
sudo apt-get update
sudo apt-get install libssl1.1
sudo apt-get install curl
curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - 
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update (오류무시)
sudo apt install -y mongodb-org

sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

설정파일 수정
1) nano /etc/mongod.conf
	bindIp: 0.0.0.0

systemctl start mongod

2) reporting.conf (mongo랑 관련)
/etc 위치에 없음
find / -name "reporting.conf"
위치 /root/.cuckoo/conf/reporting.conf

[mongodb]
enabled = yes
host = 192.168.0.188
port = 27017
db = cuckoo
store_memdump = yes
paginate = 100
# MongoDB authentication (optional).
username = jyb
password = 123456


mongosh 실행하기
mongosh
use cuckoo
db.createUser({user:"jyb",pwd:"123456",roles:[{role:"readWrite",db:"cuckoo"}]})

3) processing.conf
processing.conf
	enabled = yes
	key = a0283a2c3d55728300d064874239b5346fb991317e8449fe43c902879d758088
확인


####################################
버전5 설치할 것!!
버전확인
mongod --version
cd /etc/apt/sources.list.d/
패키지6 삭제 후 다시 몽고db 설치

만약 mongodb를 다른버젼을 설치했다면?

# MongoDB 패키지 제거
sudo apt-get purge mongodb-org*

# MongoDB 관련 디렉토리 삭제
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

# 패키지 목록 정리
sudo apt-get autoremove
sudo apt-get clean

echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
sudo apt-get update
sudo apt-get install libssl1.1
sudo apt-get install curl
curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt update
sudo apt install mongodb-org -y

설치 완료 후 conf 파일 재설정
###################################


Bootstrap Example

스케줄링 데이터베이스 구성


[postgresql설정]
sudo apt -y install postgresql libpq-dev
sudo passwd postgres
password : 123456
password : 123456

sudo -u postgres createuser --interactive
jyb
n
y
y
createdb cuckoo (데이터베이스 생성)
psql cuckoo (선택)
alter user jyb with password '123456'; (유저추가)
\q (나가기)
sudo nano /etc/postgresql/12/main/postgresql.conf
listen_addresses = '*'
port = 5432

sudo nano /etc/postgresql/12/main/pg_hba.conf
host all all 192.168.0.188/24 md5
맨밑에 추가
host    cuckoo    jyb    127.0.0.1/32    trust

sudo systemctl restart postgresql@12-main.service
sudo systemctl enable postgresql@12-main.service

python2 -m pip install psycopg2

이후 진행할 내용---------------------------------------------------------------
ls -al | grep .cuckoo
cd ./cuckoo/conf (숨김파일이므로 ls -al)
cuckoo.conf 설정 (postgresql관련)
[database]
connection = 
#connection = postgresql://jyb:123456@192.168.0.188:5432/cuckoo 주석풀면 접속 안되는 오류 있음

sudo -H pip2 install psycopg2==2.6.2 (x)
sudo -H pip2 install psycopg2

virtualbox 가상머신 on

cuckoo --cwd ~/test
cuckoo -d
	Cuckoo Sandbox를 디버그 모드로 실행
	Cuckoo의 실행 로그를 디버깅 정보와 함께 출력하여 Cuckoo가 처리하는 모든 작업에 대한 상세한 로그를 표시한다.
cuckoo web -H 192.168.0.188
	Cuckoo 웹 인터페이스를 시작하는 과정에서 발생하는 정보와 오류 메시지를 현출
	Cuckoo 웹 서버를 시작하고, 이를 **IP 주소 192.168.0.188**로 바인딩하는 역할

web > http://192.168.0.188:8000 접속