1. VirtualBox 설치 (18.04 설치 방법)


 SandBox를 설치하기위해서는 Virtualbox를 Ubuntu에 설치를 해야 한다.


(1) VirtualBox 저장소 키 추가

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


[그림1] VirtualBox 저장소키 추가 방법





(2) VirtualBox 저장소 추가

sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'

 


[그림2] VirtualBox 저장소 추가 방법




(3) VirtualBox 설치

sudo apt update
sudo apt-get install virtualbox-5.2


[그림3] VirtualBox 5.2 설치 방법



(4) VirtualBox 실행

virtualbox


[그림4] VirtualBox 5.2 실행 방법




[그림5] VirtualBox 5.2 실행




2. Windows 세팅


(1) IP 세팅

- 상황표시줄에서 컴퓨터모양(?) [마우스 우클릭] - [네트워크 및 공유 센터 열기] 클릭


[그림6] IP 세팅





- [로컬 영역 연결] 클릭

[그림7] 네트워크 및 공유 센터




- [속성] 클릭

[그림7] 로컬 영역 연결 상태




- [Internet Protocol Version 4(TCP/IPv4)] - [속성] 클릭 

[그림8] 로컬 영역 연결 속성





- [다음 IP 주소 사용] 선택 - [IP 주소, 게이트웨이, DNS 서버 주소] 입력

[그림9] Internet Protocol Version 4(TCP/IPv4) 속성



· IP 주소는 첫 글에 작성했듯이 192.168.0.20을 주고, 게이트웨이는 192.168.0.1 입력한다. DNS 서버는 8.8.8.8 (구글 DNS 서버) 을 주었다. 하단 [그림10]은 게이트웨이 확인 방법이다.

 ([windows+R] - cmd - ipconfig)


[그림10] cmd - ipconfig




(2) 방화벽 및 Windows 업데이트 끄기
- 악성코드 행위 분석을 할경우 방화벽에서 차단 되거나 하면 올바른 분석이 안되기 때문에 끄는 것이고, Windows 업데이트도 마찬가지로 악성코드 분석할경우 업데이트로 인하여 악성코드 분석이 올바르게 분석이 되지 않기 때문에 끄는 것이다.
- [시작] - [제어판]


[그림11] 시작 표시화면




- Windows 업데이트 부터 확인

[그림12] 제어판




- [설정 변경]


[그림13] Windows 업데이트 설정




- [업데이트를 확인하지 않음(권장하지 않음) - [확인]


[그림14] Windows 업데이트 설정 변경




- 방화벽 설정에서 [알림 설정 변경] 클릭


[그림15] Windows 방화벽 설정




- [Windows 방화벽 사용 안함] 각각 클릭 후 [확인]


[그림16] Windows 방화벽 설정




(3) Windows에 Agent 설치

- Windows를 Sandbox로 만들기 위해서는 Agent를 설치를 해야 한다. 악성코드에서 추출한 정보를 ubuntu로 보기 위해서 설치 하는것인다 다음 내용이 설치하는 방법이다.


- Ubuntu에서 Firefox(브라우저)를 선택 후 www.python.org 접속한다. 

  접속 후 Downloads - Windows - Latest Python 2 Release - Python 2.7.15 선택


[그림17] python 다운로드




- Files 에서 [Windows X86 MSI installer] 다운로드를 한다. 


[그림18] python 다운로드





-  저장은 다운로드 파일에 저장이 되어 있을것이다. python-2.7.12.msi 설치 파일을 잘라낸 후 [Ctrl+H (숨김파일 표시)] - Home - .cuckoo - agent 에 붙여 넣기 한다.

[그림19] python-2.7.15.msi 저장 경로




-  다시 virtualbox에 설치한 Windows에 넘어와서

   [장치] - [공유 폴더] - [공유 폴터 설정...] 클릭 


[그림20] 공유 폴더 설정




- +버튼을 을 누른 후 <선택하지 않음> 을 [기타] 클릭한다.


[그림21] 공유 폴더 설정 - 공유 추가




- cuckoo - .cuckoo (.cuckoo가 보이지 않으면 [Ctrl + H]) - agent 선택 - 열기 클릭 

[그림22] 공유 폴더 설정 - 공유 추가




- 자동 마운드, 항상 사용하기를 체크 박스 선택 - 확인 

[그림23] 공유 폴더 설정 - 공유 추가




-  머신 폴더에 agnet /home/cuckoo/.cuckoo/agent가 기입 되어 있는지 확인 후 확인을 누른다.

[그림24] 설정




- agent.py 파일과 python-2.7.15 설치 파일을 복사 해서 바탕화면서 붙여 넣는다.

  python-2.7.15 설치 파일을 실행 시켜서 설치한다.


[그림25] 공유 폴더


(4) pillow 라이브러리 설치

C:\>Python27\Scripts\pip.exe install pillow 


[그림26] pillow 설치




(5) agent.py 실행

- 바탕화면으로 복사한 agent 파일을 실행을 시키면 Windows의 기본적인 세팅은 끝이 난다.


[그림27] agnet 실행



(6) snapshot 찍기

- Win7은 virtualbox 에서 윈도우 설치할때 윈도우 이름이고, Snapshot1은 스냅샷 이름이다.


VBoxManage snapshot "win7" take "Snapshot1" --pause


[그림28] 스냅샷 찍기




- Windows 7 virtualbox 끄기 (하단 처럼 off 해도 되고, GUI에서 해도 상관은 없다.)


VBoxManage controlvm "win7" poweroff 


[그림29] win7 이름을 가진 virtualbox 끄기




- 리스토어 하기
VBoxManage snapshot "win7" restorecurrent

[그림30] win7 이름을 가진 virtualbox 리스토어 하기




- 하단의 [그림31]처럼 Snapshot1 이라는 이름으로 스냡샷이 찍혀있는 것을 볼 수 있다.


[그림31] virtualbox에서 win7 스냅샷 찍힌 화면






3. conf 세팅
(1) reporting.conf 설정

- reporting.conf 파일을 열어서 [mongodb] 란에 no를 yes로 변경해줘야 한다. 편집은 vi나 자기가 편안한거 쓰면 된다.


nano .cuckoo/conf/reporting.conf 


[그림32] reporting.conf 설정




(2) cuckoo.conf 설정
- cuckoo.conf 를 열어서 [resultserver]란의 ip에 ubuntu IP(192.168.0.10)를 기입한다.

nano .cuckoo/conf/cuckoo.conf 


[그림33] cuckoo.conf 설정




(3)virtualbox.conf 설정

- virtualbox.conf 를 열어서 [virtualbox]에서 mode, interface [cuckoo1] 에서 Label, ip(192.168.0.20) 사용자 환경에 맞게 변경

 한다.


nano .cuckoo/conf/virtualbox.conf 

- interface는 ifconfig 입력을해서 내 설정환경이 어떻지 확인 해야한다. 


[그림34] virtualbox.conf 설정




- label 은 우리가 virtualbox에서 windows를 설치할때 만든 이름(win7)이다. 해당 IP는 windows에서 설정한 IP 이다.


[그림35] virtualbox.conf 설정



4. 실행 Test

- cuckoo 실행하기위해 [ctrl+alt+T]를 눌러 터미널을 불러 온다. cuckoo 치고 엔터를 누르면 된다.

cuckoo 


     - 또 하나의 터미널을 불러 온 후 cuckoo web runserver 또는 cuckoo web -H 192.168.0.10 -p 8000 이라고 작성한다.

cuckoo web runserver 

OR

cuckoo web -H 192.168.0.10 -p 8000 


- ubuntu에서 브라우저를 하나 열어서 runserver를 했을 경우는 http://172.1.1.0:8000 이고, IP 및 port를 기입했을 경우에는 http://192.168.0.10:8000 이 된다. 


[그림36] virtualbox.conf 설정


- 상단 그림 처럼 정상적으로 나오는 것을 확인 할 수 있다. 다음 시간에는 악성코드 샘플을 이용해서 cuckoosandbox 실행을 해본다.


관련링크

1. Cuckoo Sandbox_Ubuntu 설치하기

2. Cuckoo Sandbox_Ubuntu update, Python 설치, Mongo DB 설치

3. Cuckoo Sandbox_tcpdump 설치, volatility 설치, M2Cryto 설치 및 Cuckoo 설치


참고문헌

http://www.hakawati.co.kr/420

https://websiteforstudents.com/install-mongodb-on-ubuntu-18-04-lts-beta-server/

http://ferretsecu.tistory.com/6

https://cuckoo.sh/docs/installation/host/requirements.html

https://github.com/cuckoosandbox/cuckoo/issues/1860

티스토리 툴바