DAY51
DAY51

cuckoo로 .exe파일 악성코드 여부 분석하기


dev-C++ 5.11 다운로드
https://sourceforge.net/projects/orwelldevcpp/files/latest/download

x86 debug 다운로드
설치 후
yes/yes/yes

[p1]
dev-C++
새 프로젝트 만들기
console application 
c
p1
저장  경로 선택 (p1)

컴파일
TDM-GCC 4.9.2  32-bit Debug 설정
실행



p1.exe를 cuckoo로 분석

home
	사이즈
	타입
	해시값
	ssdeep None
#ssdeep 사용을 위한 추가설치
ssdeep 파이썬 라이브러리 설치
sudo apt  -y install libfuzzy-dev
sudo apt -y install swig
python2 -m pip install pydeep
python2 -m pip install m2crypto==0.24.0 (x)

static Analysis
	PE Compile Time
	2025-02-23 19:44:42
	PE Imphash
	9f1579000202bdd19d6bd3473200a845
	(pe imphash ;PE파일의 임포트 함수를 추적해서 악성코드를 탐지하는 방법으로 이용되는 해시값)
	#pe viewer 설치



[p2]
p1과 동일하게 저장 하고 분석하기

p1과 차이점
1. 컴파일 시간
2. 기본 해시값

PE Imphash가 동일한 이유?
헤더가 같기 때문
함수가 비슷하다 = 기능이 비슷하다



[p3]
dev c++로 소켓 프로그램 만들기
프로젝트 옵션 > 매개변수들 > Linker:
-lws2_32 추가 (x)
-lwsock32 추가

분석시
Library WSOCK32.DLL: 파트가 생기면 악성코드인 경우가 많다!!
소켓이 있으면 악성코드일 가능성이 높다!!
(소켓 > 연결 > 보통 프로그램은 연결할 필요 없으므로)

네트워크 관련 항목
Library WSOCK32.dll:
Library WS2_32.dll:

소켓 프로그램 분석
Library WS2_32.dll:
• 0x406208 WSACleanup
• 0x40620c WSAStartup
• 0x406210 closesocket
• 0x406214 connect
• 0x406218 htons
• 0x40621c inet_addr
• 0x406220 recv
• 0x406224 send
• 0x406228 socket

칼리 악성코드 분석
Library WSOCK32.dll:
• 0x40c1a0 getsockopt
• 0x40c1a4 connect
• 0x40c1a8 htons
• 0x40c1ac gethostbyname
• 0x40c1b0 ntohl
• 0x40c1b4 inet_ntoa
• 0x40c1b8 setsockopt
• 0x40c1bc socket
• 0x40c1c0 closesocket
• 0x40c1c4 select
• 0x40c1c8 ioctlsocket
• 0x40c1cc __WSAFDIsSet
• 0x40c1d0 WSAStartup
• 0x40c1d4 WSACleanup
• 0x40c1d8 WSAGetLastError

Library WS2_32.dll:
• 0x40c194 WSARecv
• 0x40c198 WSASend


Nework Analysis
	해커의 ip 찾아냄
	host only 해제시 확인 가능

***악성코드 분석하기
방화벽 해제
sudo iptables -t nat -A POSTROUTING -o ping google.com -s 192.168.56.0/24 -j MASQUERADE
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT
sudo iptables -A FORWARD -s 192.168.56.0/24 -d 192.168.56.0/24 -j ACCEPT
sudo iptables -A FORWARD -j LOG

sudo iptables -L -v
sudo nano /etc/sysctl.conf
	net.ipv4.ip_forward=1
sudo netfilter-persistent save
sudo cat /etc/iptables/rules.v4
ping google.com

호혁님 추가내용
sudo iptables -A FORWARD -o ens33 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
​
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
​
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

고정 아이피 넣어줘야 연결이 됨 !!
가상머신 cuckoo1
192.168.56.101
255.255.255.0
192.168.56.1
agent.py 실행시켜놓고 스냅샷

kali
msfconsole -r malware.rc
=> 분석 중 연결되고 분석이 끝나면 연결이 끊기는 것 확인

192.168.0.188:8000 접속해서 window.exe 분석

동적분석
	connect
		Feb. 23, 2025, 11:34 p.m.	ip_address: 192.168.0.214
		socket: 124
		port: 4444
	WSASocketA
		Feb. 23, 2025, 11:34 p.m.
		flags: 0
		type: 1
		protocol: 0
		socket: 124
		af: 2
네트워크 분석
	TCP Requests
		192.168.0.214:4444
		192.168.56.101:49164


Bootstrap Example

플라스크로 서버 관리하기


서버 관리하기
192.168.0.24
master/123456

은행서버 및 쿡쿠랑 연동
아파치+ flask 연동
nginx + flask 연동

1. 본인 컴퓨터에 flask 세팅
c:\venvs (가상환경)
c:\projects (소스 개발)

위치
mkdir mysite
python -m venv mysite
cd mysite\Scripts

activate
pip install Flask
python.exe -m pip install --upgrade pip
deactivate



C:\venvs
[mysite.txt]
@echo off
cd c:/projects/flask
set FLASK_APP=security
set FLASK_ENV=development
c:/venvs/mysite/scripts/activate
저장 후 .cmd로 변경

환경변수
사용자 변수
C:\venvs 추가 (mysite.cmd파일 위치)




C:\venvs
mysite
=> 위치 C: /projects/flask/security 생성 후 이동

[security.py]
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
	return 'Hello'

flask run 
=> http://127.0.0.1:5000/ 확인가능



__init__.py
forms.py
models.py
security.py
생성

[__init__.py]
from flask import Flask
	
def create_app():
	app = Flask(__name__)

	@app.route('/')
	def index():
		return 'Hello'
	return app

security.py 삭제
flask run
=> http://127.0.0.1:5000/ 확인가능