SK쉴더스 루키즈

침해사고 포렌식 도구 정리 - wireshark, event viewer, FTK Imager, Volatility, MFT

0v0k 2025. 5. 21. 17:42

침해사고 포렌식이란?

정보시스템이 공격, 해킹, 악성코드 감염 등으로 인해 침해되었을 때,
사건의 원인과 경로를 규명하기 위해 디지털 증거의 무결성을 유지한 채
체계적으로 분석하고 복원하는 디지털 수사 절차

 

누가, 언제, 어디서, 무엇을, 어떻게 했는가?를 과학적, 기술적으로 규명하는 것이 목적

 

포렌식에 사용하는 분석 도구

WIRESHARK

: 네트워크 패킷 분석을 하는 도구

IP, 포트, 프로토콜을 분석하고 트래픽을 복원

TCP통신중이며 ACK(응답확인)한 것을 확인 가능

 

어떤 프로토콜이 통신중인지 포트번호를 확인 가능

공유폴더에 접근해 파일을 업로드하고 다운로드하는 SMB 프로토콜은 445포트를 사용함.

→ 445포트가 나오면 SMB라는 것을 확인 가능

 

EVENT VIEWER

: 윈도우의 기본 분석 도구로 윈도우 이벤트 로그를 확인하는 도구

- 시스템 로그 : 드라이버 오류, 시스템 시작/종료 기록 등 운영체제 관련 이벤트

- 보안 로그 : 로그인 성공/실패, 권한 상승, 감사 정책 관련 이벤트

- 응용 프로그램 로그 : 프로그램 오류, 경고, 실행 결과 등 

 

EVENT ID, Login Type 등을 보고 누가, 언제, 어떤 행동을 했는지 확인

kiwoong 계정으로 로그온한 것 확인

 

원격접속으로 로그인한 거 확인 

Event ID 설명
4624 정상적인 로그인
4648 PsExec 와 같이 다른 계정의 ID/PW를 이용해 로그인
Logon Type 설명
2 콘솔 로그온 - 로컬에서 사용자 ID/PW를 키보드로 직접 입력해서 로그인
3 네트워크를 통한 원격 로그인 (SMB, LATERAL MOVEMENT)
4 스케줄에 등록된 배치 작업 실행 시 미리 설정된 계정 정보로 로그인 
5 서비스가 실행될 때 미리 설정된 계정 정보로 로그인 (평소 로그인 할 때)
7 Win+L로 컴퓨터가 잠겨있을 때 사용자가 다시 로그인 해서 잠금 해제 후 로그인 
8 유형3과 비슷, 계정 정보를 평문이나 복호화 가능한 형태로 전달될 때 발생 
9 runas /netonly 명령어를 사용해 현재 세션은 유지하되 다른 계정으로 네트워크 리소스 접근
ex) 공유폴더에 다른 계정 접근
10 원격 로그인
11 도메인 연결이 없을 때 PC에 저장되어있던 캐시로 로그인 
ex) 도메인을 회사로 가진 회사 노트북을 집에서 사용할 때 동일 계정으로 로그인 

출처 : https://learn.microsoft.com/ko-kr/windows-server/identity/securing-privileged-access/reference-tools-logon-types

 

FTK IMAGER

: 디지털 이미지 수집 도구

디스크 전체 또는 파일 단위 덤프/복제 

메모리 캡쳐

페이지파일도 함께 메모리 캡쳐 진행 

시스템 파일과 메모리 덤프 파일이 저장됨

위의 폴더에서 cmd를 실행하고 아래의 코드를 입력하면

strings -a -el pagefile.sys > pagefile_unicode.txt txt파일로 저장되어 결과 확인 가능

 

<시스템 파일 확인 내용>

키로거 사용 흔적

QUASAR(공격 도구)로 원격접속한 흔적

사용자의 화면을 QUASAR (공격도구)로 실시간으로 확인한 흔적

 

VOLATILITY

: 메모리 분석 도구

프로세스, 네트워크 연결, DLL, 명령어 기록추출

 

FTK IMAGER에서 추출한 파일을 토대로 분석 진행

 

$dumpPath 에 메모리 덤프 파일의 경로를 설정한 후 플러그인을 넣어 

python vol.py -f "$dumpPath" windows.info | Out-File "$outputDir\0_windows_info.txt" -Encoding utf8

cmd에 입력하면 결과파일 획득 가능! 

명령어 설명
windosw_info 운영체제 기본 정보
pslist 실행중인 프로세스 목록
cmdline 명령줄 정보
netscan 네트워크 연결정보 
registry.printkey 레지스트리 Run 키 정보
consoles 콘솔 명령어 기록
services 서비스 정보
userassist 사용자 실행 기록
malfind 악성 인젝션 분석

 

<그 외 Volatility 분석 진행시에 사용하는 주요 플러그인>

명령어 설명
connections Windows XP에서 열린 연결 목록 출력
connscan 물리 메모리에서 _TCPT_OBJECT 객체를 스캔
dlllist  프로세스에 로드된 DLL 목록 출력
handles  프로세스에서 열린 핸들 목록 출력
netscan Vista, Windows 7 또는 2008에서 연결  소켓 스캔
printkey 레지스트리 키 및 그 하위 키와 값을 출력
pslist EPROCESS 리스트를 따라 모든 실행 중인 프로세스 출력
psscan 물리 메모리에서 _EPROCESS 풀할당을 스캔
pstree 트리 형태로 프로세스 목록 출력
psview 다양한 프로세스 리스트를 통해 숨겨진 프로세스 찾기
sockets
열린 소켓 목록 출력
sockscan 물리 메모리에서 _ADDRESS_OBJECT 객체 스캔
strings 물리적 오프셋을 가상 주소에 매칭

 

ForeCopy

: 시간정보의 변경없이 파일을 복사해오는 도구

MFT 파일(Master File Table, 모든 폴더와 파일의 메타데이터 정보 저장) 추출할 때 사용

 

forecopy.exe \\.\C: \$MFT D:\Evidence\

추출하고 싶은 파일의 경로 입력 후 MFT 추출

 

analyzeMFT

: MFT 파일을 읽을 수 있게 CSV파일로 변경

 

git clone https://github.com/dkovar/analyzeMFT.git
cd analyzeMFT
python analyzemft.py -f C:\Evidence\$MFT -o C:\Output\mft_report.csv

위의 코드를 cmd에 입력해 MFT파일을 CSV파일로 변경해 내용 확인 가능

 

필드 설명
Active 현재 폴더 또는 파일 존재 여부 (Active : 존재, Inactive : 삭제)
Recode Type 파일인지 폴더인지 
Filename 폴더 또는 파일의 절대경로
std Info $Standard_Information에 저장되어 있는 시간 정보로, Windows API를 통해 쉽게 변경이 가능함
FN Info $File_Name에 저장되어 있는 시간 정보로, 시스템 커널에 의해서만 변경 가능함

 

 

MFT파일로 악성코드 다운로드 시간, 비정상 DB테이블 생성 시간, 확인되지 않은 시스템 계정 생성 시각을 찾을 수 있음

 

위의 포렌식 도구들을 이용해 침해사고가 발생했을 때,

로그를 분석하고 원인을 규명할 수 있다.