Ubuntu 에서 Cuckoo Sandbox 설치 + 설정 + 악성코드 테스트
oolongeya
·2021. 9. 24. 13:06
설치는 VMware를 이용해 Ubuntu 64비트(20.04) 운영체제에서 진행한다.
전체적인 과정은 다음과 같다.
시간이 꽤 걸릴 수 있다!
Ubuntu 설치 -> Cuckoo Sandbox 설치 -> Virtualbox 설치 -> 가상머신 설치 -> 설정 변경 -> 테스트 |
* 설치하는 과정에서 예상하지 못한 오류가 발생하거나 설정이 꼬일 수 있으므로 스냅샷을 단계별로 찍는 것이 좋다.
용량이 문제라면 핵심 스냅샷이라도 꼭 남겨야한다.
(예: 1.우분투 설치완료, 2.쿠쿠 설치완료, 3.버츄어박스 설치완료)
설정이 꼬여서 처음부터 우분투를 설치하는 본인의 모습을 보면 현타가 올 수 있다. 진짜로
Ubuntu 설치
VMware에서 Ubuntu를 설치하면 된다. 설치하는 방법은 크게 어렵지 않으므로 (구글링, 검색) 생략하겠다.
Ubuntu 용량이 부족하다는 경고가 뜰 수 있으므로 작성자는 용량을 20GB가 아닌 30GB으로 할당했다.
Cuckoo Sandbox 설치
- cuckoo-install.sh 파일 실행 - 설치를 못한 모듈을 따로 설치 - cuckoo community 패치 및 업데이트 |
Ubuntu 설치가 완료했으니 스냅샷 한번 찍어주자.
Cuckoo Sandbox를 설치하기 위해 명령어를 굉장히 많이 입력해야하는데, 모든 명령어를 실행해주는 sh 파일이 있다.
위 파일을 Ubuntu에서 다운로드해야 한다.
https://kkomii22.tistory.com/92 <- 링크 주소를 Firefox 주소창에 입력하자 ( Ctrl+C, Ctrl+V )
Save File 옵션 체크
다운로드 완료 후 해당 파일이 있는 디렉토리로 이동한다.
cuckoo-install.sh 파일을 home 디렉토리에 옮길 것이다.
우클릭 - Copy
Home 디렉토리 이동 -> paste
sh cuckoo-install.sh 입력
입력하면 설치를 진행한다. 시간이 꽤 걸리는데, 중간에 입력하는 과정이 몇 개 있다. 다른 작업을 하면서 하면 좋다.
cuckoo user 를 새로 추가하는데, 귀찮으니까 패스워드부터 모든 정보를 admin으로 입력한다.
명령어 파일이 실행되면서 위 처럼 물어보는 경우가 종종 있으니, y를 입력하고 엔터를 누르면 된다.
이 명령어 파일에서 각종 모듈들을 설치하는 과정 속 사용되는 명령어를 살펴보면,
모듈명이 바뀌거나 명령어 인자순서가 지금과 다른 경우도 있다. (최신 명령어를 반영한 것이 아니기때문에)
즉 설치되어야할 모듈이 설치는 커녕 그냥 무시하고 지멋대로 건너뛴다는 것!
명령어 파일이 실행이 완료해서 끝났는데,
지혼자 멈췄다.
하지만, 작성자가 그런건 이미 다 찾아서 정리했으니 걱정할 필요가 없다.
pip2.7: command not found 오류
cuckoo-install.sh: 59: cuckoo: not found 오류
Python 패키지 관리 프로그램 (pip)를 다시 설치해야한다.
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
한 줄씩 실행이 끝나면 입력
pip2 install -U cuckoo
위 방법으로 설치할 수 없다면? (위 방법으로 설치가 잘 되면 할 필요 없다!!)
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py python2.7 get-pip.py pip2 install -U cuckoo |
위 명령어로 다시 시도해보자.
설치가 끝나면, cuckoo를 입력해보자.
그런데,
여전히 오류가 뜰 수 있는데, 당황하지말 것! 터미널을 닫아주고
우측 상단의 전원 옵션 클릭 - Power Off / Log out - Power Off
Restart 로 재부팅 해주면 된다.
재부팅 후 터미널에서 cuckoo 입력하면, 정상적으로 실행이 된다.
cuckoo community 를 입력
cuckoo의 시그니쳐를 확인하기 위한 파일들을 업데이트하고 패치해주면 cuckoo sandbox 설치 완료.
Virtualbox 설치
- Virtualbox 프로그램 설치 - Virtualbox 확장 기능 설치 - 사용할 가상머신 이미지 파일 설치 - 사용할 guest 디스크 디스크 설치 |
가상머신은 원하는대로 사용해도 무방하지만, Win7 얼티메이트k 32비트 이미지를 사용하겠다.
아래 링크를 우분투(Firefox) 상에 입력해서 다운로드 받아야 한다.
https://drive.google.com/u/1/uc?id=1vmz8hbnP92_MoiMKA3aIlRKensudHnWQ&export=download
Save File 체크 후 다운로드 진행
시간이 어느정도 지나면, 다운로드가 완료된다.
다운로드를 할 때 웬만하면, 우분투 화면을 켜놔야 다운로드 오류가 발생하지 않는다.
위의 iso 이미지 파일도 home 디렉토리로 옮기는 것을 추천한다.
이제 virtualbox를 설치하겠다. 터미널을 열고 입력한다.
sudo apt-get install virtualbox
y 입력 후 엔터
설치가 완료하면 검색이 가능하다 왼쪽 하단의 Show application 클릭
검색창에 virtu만 입력해도 바로 나온다.
우클릭 - Add to Favorites
설치하고 설정을 하면서 실행할 일이 많으므로 Favorites에 추가한 것이다.
이제 Virtualbox를 실행해보자,
위 쪽의 Help - About VirtualBox...
아래에 첫번째 줄
VirtualBox Graphical User Interface Version 6.1.26_Ubuntu r145957
자신의 Virtualbox 버전을 위처럼 확인해야한다.
우분투(Firefox) 에서 아래의 주소를 입력해서 들어간다.
http://download.virtualbox.org/virtualbox/
스크롤을 내리다보면, 6.1.26/ 을 확인할 수 있다. 클릭해서 들어가보면,
여기서 2 개의 파일을 받아야한다.
Oracle_VM_VirtualBox_Extension_Pack-6.1.26-145957.vbox-extpack
VBoxGuestAdditions_6.1.26.iso
두 파일을 다운로드 받자.
다운로드가 끝나면 Virtualbox로 돌아가자.
Preferences 클릭
Extensions 클릭
우측에 확장 버튼 클릭
다운받은 아래의 파일을 지정하고 Open 클릭
Install 누르면,
동의하라고 나오는데, 마우스 휠보다 스크롤 바 마우스로 꾹 누르고 끄집어 내리는게 더 빠르다.
I Agree
본인의 우분투 비밀번호까지 입력해주면 - Authenticate
설치가 완료되고, 확장 패키지가 추가된 것을 확인할 수 있다.
Virtualbox의 설치를 완료했다.
가상머신 설치
- Windows7 32비트 운영체제 설치 - 공유 폴더 지정 |
Virtualbox 에서 New 클릭
아래 처럼 옵션을 입력하고 설정한다.
가상머신 name 띄어쓰기 없이 설정하는 것을 권장한다. 가상머신의 이름을 확실하게 알고있어야 한다
아래 사진 처럼 설정하고 Next를 누르면 된다.
상단에 Settings 클릭
Storage - Empty 클릭
오른쪽 디스크 모양 클릭
Choose a disk file
Downloads - windows7 이미지 파일 지정 - Open
다시 돌아와서 Controller:SATA 를 눌러보면 오른쪽에 디스크 추가 옵션이 뜨는데, CD 모양의 + 클릭
Add
Downloads - VBoxGuestAddtions 파일 지정 - Open
스크롤 내리면 추가된 파일 있다. 지정하고 Choose
이렇게 뜨면 기본 설정이 끝난 것이다. 아래에 Invalid settings detected 오류가 뜨는데,
Vmware 설정을 확인하면된다. 실행중인 우분투를 종료해야한다
종료하고 VMware에서 사용하는 우분투를 우클릭 - Settings -
Processors - Virtualize Intel VT-X/EPT or AMD-V/RVI 옵션 체크
우분투를 다시 부팅한다.
오류가 사라진 것을 확인할 수 있다. 허나 설정이 위처럼 초기화될 수도 있는데, 다시 해주면 된다.
3초컷 가능
이제 Virtualbox에서 윈도우를 실행해보자 Start로 실행
사용자 지정(고급)
다음
열심히 설치를 하고있다.
알아서 재부팅 되는데, 갑자기 흑백화면인채로 멈출 수도 있으므로 강제 종료하고 다시 부팅하면 된다.
가상머신 안에 가상머신에서 나오려면 Ctrl + alt + delete로 마우스가 빠져나올 수 있다.
admin 으로 입력하겠다.
암호는 입력하지않고 다음으로 넘어간다.
236TW-X778T-8MV9F-937GT-QVKBB 를 입력한다.
정품 인증 체크를 해제하고 다음
나중에 다시 확인
공용 네트워크
설치가 완료되면, 시작버튼 - 제어판으로 가보자.
시스템 및 보안 - Windows 방화벽
왼쪽 메뉴에서 Windows 방화벽 설정 또는 해제
Windows 방화벽 사용 안 함에 모두 체크하고 확인
악성코드를 분석할 때 방화벽에서 차단하면 자세하고 확실한 분석이 불가능하니까 꺼야한다.
완료했으면, 윈도우 업데이트도 꺼야한다.
중간에 Windows Update 클릭
오른쪽에 있는 내 설정 직접 선택 클릭
업데이트를 확인하지 않음(권장하지 않음) 옵션으로 설정
완료했다면, 마지막으로 UAC 설정이다.
시작 - 검색 - uac
하면 바로 나온다.
왼쪽의 스크롤 바를 제일 아래로(알리지 않음) 으로 설정하고 확인
내 컴퓨터로 들어와보면 CD 드라이브 VritualBox Guest Addtitions 디스크가 있다.
해당 디스크를 더블 클릭하고 들어가면,
VBoxWindowsAdditions 파일을 실행한다.
특별한 설정 변경없이 next만 누르면 된다.
전부 설치를 누른다.
reboot 체크 finish
이렇게 설정이 끝났고, 윈도우에 파이썬을 설치해야한다.
다시 우분투로 돌아간다. 윈도우는 냅두고 잠시 내려둔다.
아래의 링크를 우분투(Firefox)에 입력 후 이동한다.
https://www.python.org/downloads/release/python-2718/
스크롤을 내리다보면 제일 아래에 있는 Windows x86 MSI installer 다운로드
이제 창을 전부 내려두고 우분투 바탕화면으로 돌아와서 내 파일들을 확인해보자.
왼쪽의 폴더 모양의 아이콘을 누르면 확인할 수 있다.
다운로드 받은 python-2.7.18.msi 파일을 복사한다. 우클릭 - copy
다시 home으로 돌아와서 Ctrl + H 를 누르면 모든 디렉토리를 확인할 수 있다.
.cuckoo - agent 디렉토리로 이동한다.
이곳에 paste 하면 된다.
virtualbox로 다시 돌아와서 settings 클릭
왼쪽의 Shared Folders 클릭
오른쪽의 폴더 + 모양 클릭
Other...
.cuckoo 아래의 agent를 지정해야한다.
agent 지정 후 Open
Auto-mount 체크하고 OK
이렇게 추가된 것을 확인하고 OK
이제 윈도우로 돌아간다.
파일 탐색기(윈도우 아래의 폴더모양 프로그램)에 들어와서 네트워크 항목에 들어가면 VBOXSVR이란 컴퓨터가 있다.
들어오면, agent 공유 디렉토리를 확인할 수 있다.
만약 보이지 않는다면, virtualbox의 설정을 위처럼 맞게 했는지 다시 확인하고 윈도우를 재부팅한다.
agent 디렉토리 안에 있는 python-2.7.18 실행
마찬가지로 전부 Next를 누르면 된다.
설치가 완료하면 디렉토리에 있는 agent.py 파일을 바탕화면으로 옮긴다.
cmd를 실행하고,
cd C:\Python27\Scripts 입력
오류가 나면, 파일탐색기 에서 아래 같은 경로로 이동한 뒤
주소창에 cmd 치고 엔터누르면 된다.
cd C:\Python27\Scripts 입력하고 엔터
pip.exe install pillow 입력하고 엔터
(윈도우가 인터넷에 연결되어 있어야한다. 작성자와 똑같이 네트워크 설정을 따로 하지 않았다면 오류가 없을 것이다.)
설치를 완료했으면 터미널을 닫아주고, 윈도우를 종료한다. (강제종료 말고 시작 - 시스템 종료)
VMware 상에서 사용하는 우분투 - 우클릭 - Settings
Network Adapter 에서 Bridged 에 체크 하고 확인
우분투 터미널에서 ifconfig로 네트워크 확인
아래처럼 모듈이 없으면 sudo apt install net-tools로 설치하면 된다.
아래처럼 ens33을 확인할 수 있다.
이제 Virtualbox의 윈도우 설정으로 이동한다.
Network 옵션 - Bridged Adapter - ens33 으로 설정한다.
네트워크 옵션들을 악성코드 샘플로 테스트해서 정상적으로 잘 출력이 되면, 원하는대로 변경해도 된다.
하지만 pillow 설치와 실습까지의 과정을 확인하기 위해 이 설정으로 실험하는 것이 좋다.
설정을 위처럼 적용한 뒤 윈도우를 부팅한다.
공용 네트워크로 설정
cmd에서 ip 주소를 확인해서 따로 어디다 적어두자. 필요하다
시작 - cmd 를 검색해서 - 우클릭 - 관리자 권한으로 실행
agent 파일 - 우클릭 - 속성
주소를 드래그해서 우클릭 - 복사
터미널에 cd + 한칸 띄고 를 입력하고 우클릭 - 붙여넣기 - 엔터
agent.py 입력하고 엔터
커서가 깜빡깜빡 거리고, 터미널의 타이틀에 agent.py가 적혀있으면 된 것이다.
이 때 이 터미널 창을 제외한 나머지 프로그램의 창은 전부 닫아주자.
윈도우는 종료하지말고 잠시 내려두고 우분투로 돌아와서 터미널을 실행한다.
vboxmanage snapshot "본인이 설정한 가상머신 이름" take "스냅샷이름" --pause
를 입력하는데 작성자와 동일하게 했으면 똑같이 사진처럼 입력하면 된다.
vboxmanage controlvm "Win7" poweroff로 빠르게 종료한다.
Virtualbox 에서 Win7 오른쪽 막대기 3개 를 누르고 Snapshots을 누르면
스냅샷이 잘 찍혀있다.
이로써 가상머신 설치 과정이 끝났다.
설정 변경
- reporting.conf 수정 - cuckoo.conf 수정 - virtualbox.conf 수정 |
터미널에서 입력한다.
find / -name cuckoo.conf 2>/dev/null
해당 디렉토리로 이동하자.
cd /home/사용자명/.cuckoo/conf
먼저 reporting.conf 설정파일부터 수정한다.
vi reporting.conf
vi 편집기에서 방향키로 이동하고, 마우스 휠로 스크롤 할 수 있다.
기본적인 사용법은 키보드의 아래 버튼처럼 누르면 된다.
입력 모드 = i 입력 종료 = esc 저장하고 종료 = :wq 저장하지 않고 종료 = :q 강제종료는 각 옵션에 뒤에 ! 만 붙인다. (ex: :q!, :wq!) |
reporting.conf 파일을 내리다보면, mongodb 옵션이 있는데, enabled 를 yes로 수정한다.
저장하고 나가자
:wq
다음은 cuckoo.conf 설정파일이다.
vi cuckoo.conf
내리다보면 resultserver 옵션이 있는데, 이 값을 현재 우분투의 ip 주소로 입력한다. ifconfig로 확인가능
수정한 뒤 저장하고 나가자
:wq
마지막으로 virtualbox.conf 설정파일이다.
mode = gui 로 수정
interface = ens33 으로 수정
label = 본인이 설정한 가상머신 이름으로 수정 (Win7)
ip 를 윈도우 ip로 수정
위에서 작성자가 적어두고 확인하라 한 이유가 다 여기있다.
snapshot = 우리가 찍어둔 스냅샷이름 으로 수정 (Snapshot1)
설정을 완료했으면 저장하고 나가자
:wq
이제 모든 설정이 끝났다.
테스트
- 최소 두 개의 터미널 필요 (cuckoo 실행, cuckoo 서버 실행) - 악성코드 샘플 파일 이용 |
우분투(Firefox)에서 아래의 주소를 입력한다.
https://kkomii22.tistory.com/89?category=972419
해당 링크는 악성코드 샘플 파일(exe)이 첨부된 링크이므로 주의하자.
악성코드 파일을 실행하지 말 것
다운로드가 끝났으면, 모든 창을 닫고 터미널 2개를 준비한다.
터미널 왼쪽 상단의 + 모양으로 터미널을 추가할 수 있다.
1번 터미널에는 cuckoo 를 입력한다.
Waiting for analysis tasks 가 떠야 정상적으로 실행된 것이다.
2번 터미널에서는 cuckoo web runserver 를 입력한다.
할당된 주소가 나오고 우클릭 - open link
SUMBIT A FILE FOR ANALYSIS 부분을 누른다.
Downloads 에 준비해둔 악성코드 파일을 지정한 뒤 Open
잘 체크가 되었는지 확인하고 (체크박스 = 파란색)
우측 상단의 Analyze 클릭
2.5 초마다 진행상황을 갱신하는데, 우측에 reported로 상태가 변경되면, 클릭해서 확인할 수 있다.
네트워크, 설정파일 오류 없이 위처럼 상단부분이 나와야하고,
Signature와 Screenshot 까지 정상적으로 출력되어야 한다. 아래의 ip 관련 항목은 상관없다.
여기까지 정상적으로 실행된다면, 완벽하게 설치한 것이다.
작성자는 이 결과창을 보기까지 수십개의 에러, 오류 화면을 보았다....
구글링을해도 대부분이 옛날 자료들.... 지금의 OS와 버전, 모듈, 명령어와 다른것이 대부분이다.
github과 외국 포털을 뒤져도 잘 나오지도 않는다.
직접 오류해결을 위해 수십가지의 경우의 수로 시도하고, 스냅샷으로 돌아가고, 초기화하고 얻어낸 최적의 과정이다.
이 게시글 또한 Ubuntu 설치 처음부터 진행한 것이니 만약 오류가 있다면,
글 내용과 설정을 자세히 살펴보는 것을 추천한다.
'프로젝트 (Project) > Cuckoo Sandbox를 이용한 악성코드 다중 동적분석 기능 개발' 카테고리의 다른 글
Cuckoo sandbox 에서 최신 Yara rule 설치법 (0) | 2021.11.04 |
---|---|
Cuckoo sandbox를 이용한 악성코드 샘플, 분석 파일 (0) | 2021.11.04 |
Cuckoo Sandbox 작동 확인용 악성코드 샘플 (0) | 2021.09.22 |
우분투 cuckoo 설치 명령어 쉘 (0) | 2021.09.06 |
우분투(Ubuntu)에서 도커(Docker) 설치 (0) | 2021.09.05 |