cuckoo ?
가상OS환경에서 악성 의심파일을 분석하여 수집한 정보를 보여주는 오픈소스 종류 중 하나입니다.
windwos 7, os x, debian의 분석 가능 환경을 제공하고 문서파일, 스크립트파일, 압축파일, 파이썬 파일 등 분석 가능 하다.
cuckoo 구조
cuckoo 모듈 구성도
auxilary 모듈 : cuckoo 분석환경 설정 가능 (sniffer, 가상머신환경제공, 분석환경 초기화, anti vm bypass 등)
machinery 모듈 : vmware, virtualbox 등 가상머신 제공 및 실행과 종료 기능
processing 모듈 : 악성코드를 23개의 모듈을 통해 프로세스정보, 네트워크패킷, 문자열, api 등의 정적/동적 정보를 수집하다.
signature 모듈 : cuckoo에서 제공하는데 악성코드 종류와 시스템에 따라 분류된 357개의 행위기반 패턴을 제공
report 모듈 : 악성코드 분석결과를 mongodb에 저장하고 웹페이지 형태로 보여준다.
cuckoo 설치
1. 준비
- ubuntu 64bit 이미지
- 바탕화면에 share 폴더 생성 후 아래 파일 복사
win7.iso
python2.7.x
PIL-1.1.7.win32-py2.7.exe (파이썬 스크린샷 모듈)
2. virtualbox 설치
- 램2G 하드 50G (안정적 운영위해 고정크기로 할당)
- 설정->저장소->광학드라이브->우분투 이미지 지정, 오디오사용해제
- 공유폴더설정->자동마운트->공유폴더명 share 선택
- 우분투설치->한국어->체험하기->바탕화면 ubuntu 설치-> 디폴트로 지금설치->한국어/한국어104키->
이름/비번입력-> 완료하면 다시시작->장치->게스트확장cd이미지삽입->실행->비밀번호입력
- 공유폴더 마운트
sudo mkdir /mnt/share
sudo mount -t vboxsf share /mnt/share
ll /mnt/share
3. 라이브러리 설치
sudo apt install python python python-pip python-dev libffi-dev libxml2-dev libjpeg-dev mongodb git
sudo apt install build-essential libffi-dev python python-dev python-pip automake autoconf libtool
pip install --upgrade pip
sudo BUILD_LIB=1 pip install ssdeep // 파일 유사성 비교 패키지 설치
sudo apt install libfuzzy-dev
sudo pip install pydeep
sudo pip install m2crypto
sudo apt install libcap2-bin
4. tcpdump 설치
sudo apt install tcpdump
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
5. yara 설치
sudo apt install automake libtool make gcc
wget http://github.com/VirusTotal/yara/archive/v3.5.0.tar.gz
tar -zxf v3.5.0.tar.gz
cd yara-3.5.0
./bootstrap.sh
./configure
make
sudo make install
cd ~
sudo pip install yara-python
6. cuckoo sandbox 설치
git clone http://github.com/cuckoosandbox/cuckoo.git
cd cuckoo
sudo pip install -r requirements.txt // cuckoo 사용에 필요한 파이썬 라이브러리 포함 pymongo 등을 설치
cd ~
7. virtualbox 설치
wget http://security.ubuntu.com/ubuntu/pool/main/libv/libvpx/libvpx1_1.0.0-1_amd64.deb
sudo dpkg -i libvpx1_1.0.0-1_amd64.deb
sudo apt-get virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb
sudo apt-get install libsdl1.2debian
sudo dpkg -i virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb // virtualvbox 설치
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack
sudo /sbin/vboxconfig
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 -ip 192.168.56.1 // 윈도우7에 부여할 IP 설정
ifconfig // vboxnet0 확인
8. windos7 설치 (우분투 안에서)
sudo mkdir /backup
virtualbox
- virtualbox 새로만들기 통해 원도우 설치하는데 설정에서 저장소 윈도우 이미지 선택, 오디오 체크해제, 네트워크는 호스트전용으로 설정
윈도우vm->설정->공유폴더->+누르고 back 폴더 지정->자동마운트체크-> 윈도우 설치-> 윈도우에서 윈도우방화벽 uac 해제
9. 읜도우 공유폴더로 파일 이동
cd /mnt/share
cp PIL-1.1.7.win32-py2.7.exe /backup
sudo cp python-2.7.12.msi /backup
cd ~/cuckoo/agent
sudo cp agent.py /backup
10. windwos 설정
윈도우 장치에서 -> 게스트확장이미지cd 설치
사용자계정및 가족보호 -> 사용자계정컨트롤설정변경을 하단으로 옮기고 확인 재부팅하면 공유파일이 윈도우 안에 마운트되어야 한다.
마운트된 3개 파일을 바탕화면으로 복사
python27 설치하고 agent.py 넣고
cmd 창에서
cd c:\
cd python27
python.exe agent.py
네트워크 공유설정 연결에서 IP 설정
192.168.56.101
255.255.255.0
192.168.56.1
8.8.8.8
설정 후 cuckoo1 스냅샷 후 virtualbox 종료 -> 웹에서 악성파일 분석
11. cuckoo 환경설정
nano /root/cuckoo/conf/cuckoo.conf 버체크를 off로저장
nano /root/cuckoo/conf/virtualbox.conf ip port # 해제
nano /root/cuckoo/conf/reporting.conf // mongodb yes 로 설정
12. 시그니처 다운
cd ~/cuckoo
./utils/community.py -waf
13. cuckoo 동작 // 재부팅 시 명령어 입력
#!/bin/bash // 자동실행 스크립트 작성
echo "=====start====="
echo "1.mount"
sudo mount -t vboxsf share /mnt/share
ll /mnt/share
echo "2.vboxnet0 ip setting"
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 -ip 192.168.56.1
ifconfig
iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
sysctl -p
iptables -nvL
echo "3.virtualbox run"
echo "======end======"
virtualbox
cd ~ /cuckoo // 새터미털에서 실행
pyhon cuckoo.py
cd ~/cuckoo/web // 새터미널에서 실행
python manage.py runserver 0.0.0.0:8000
cd python27 // 윈도우에서 실행
python.exe agent.py
localost:8000 // 웹접속
14. cuckoo2 추가
[cuckoo2]
label = cuckoo2
platform = windows
ip = 192.168.56.110
# snapshot = cuckoo2
resultserver_ip = 192.168.56.1
resultserver_port = 2042
[cuckoo 실행 화면]
[악성 의심 파일 분석 화면]
'Malware > Analysis' 카테고리의 다른 글
zinkhole (0) | 2018.11.29 |
---|---|
cuckoo를 활용한 악성 의심파일 분석 (0) | 2017.02.28 |
악성코드 분석 교육 자료 (0) | 2017.01.25 |
Anti VM 구현 (0) | 2017.01.18 |