[지금 무료] 기초부터 따라하는 디지털포렌식 | 훈지손 - 인프런
훈지손 | 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다., 초보자 눈높이에 딱 맞춘, 원리를 이해하는 디지털
www.inflearn.com
해당 영상 참고하여 작성한 글입니다.
1. 도구 설치, 환경 설정, 문제 다운로드
(1) Volatility 설치 (볼라틸리티)
- 메모리 관련 데이터를 수집하는 도구
volatility_2.6_win64_standalone.zip
drive.google.com
(2) 시스템 환경 변수 설정
- 어떤 경로에서도 접근 가능하도록 설정하는 것즉, 터미널에서 Volatility 를 치면 바로 접근 가능하도록 설정한 것
- [ Window+s → 시스템 환경변수 → 환경변수 클릭 → (시스템변수) Path → 편집 → 찾아보기→ Volatility 폴더 선택 → 확인*3 ]
- 시스템 환경 변수란?
- 내가 어느 경로에 있든 터미널에서 바로 접근 가능하도록 하는 것
(3) Windows Terminal 설치 (사용자의 윈도우 버전에 따라 설치 여부 다름)
(4) 문제 다운로드
- Cridex
cridex.vmem
drive.google.com
- GrrCON 2015
Target1-1dd8701f.zip
drive.google.com
[참고]
- 터미널 사용방법
Windows Terminal 사용법
Windows Terminal이 새롭게(?) 나왔다.Linux나 MacOS에 비해 Windows는 터미널이 구리다는 점이 항상 아쉬웠는데 참 좋은 소식이다.그럼에도 Linux 터미널에 익숙해진 나에게 Windows Terminal은 2% 부족한 느낌이
velog.io
2. Volatility Cridex 풀이
[1] cmd로 경로 설정 (Power Shell 에서 진행할 것 !!!)
cd .\volatility_2.6_win64_standalone -f .\cridex.vmem imageinfo
- imageinfo란?
- volatility 프레임워크를 이용하여 분석할 메모리 파일의 운영체제 profile 정보를 확인
- Suggested Profiles 중 하나 Ctrl + c (WinXPSP2x86, WinXPSP3x86)
[2] 프로세스들의 리스트 출력 ( notepad++에서 파일 확인)
- 현재 실행중인 시스템 프로세스들의 정보를 보여주기 위해 사용한다. 오프셋, 프로세스 이름, PID(프로세스 ID), PPID(부모 프로세스ID), 스레드 및 핸들개수, 프로세스의 시작과 종료 시간 등을 알 수 있다.
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 pslist
- 시간 순으로 출력
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 pslist > pslist.log
- 생성되는 모든 파일이 pslist라는 파일로 출력 리다이렉션
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 psscan > psscan.log
- offset 순대로 (메모리 덤프 파일에 어떤 위치에 준비하는지)
- 숨김 파일(프로세스) 확인 가능
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 pstree > pstree.log
- PID, PPID를 기반으로 구조화
- PID, PPID만을 보고도 수상한 파일을 감지할 수 있음
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 psxview > psxview.log
- 총 7가지 도구를 결합한 것
- pslist, psscan을 한 눈에 볼 수 있다
[3] 의심스러운 프로세스들의 목록 만들기
- 서비스 하나하나 검색해보면서 안전한 프로그램인지 확인하기
- [svchost.exe] 로 악성코드들이 변조를 많이 함
- 윈도우의 백그라운드 서비스를 처리하기 위한 것
- pdf 문서를 통한 악성코드가 많음 주의!
- [svchost.exe] 로 악성코드들이 변조를 많이 함
[4] 시간 순으로 확인
- 의심되는 파일이 실행된 이후에 실행된 것들도 주의!!
[5] cmd line 정보 확인
- 의심스러웠던 파일들 다시 확인
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 cmdscan > cmdscan.log
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 consoles > consoles.log
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 cmdline > cmdline.log
- 프로세스가 실행될 때 인자값 확인
[6] 파일 스캔
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 filescan > filescan.log
- 메모리 내에 존재하는 모든 파일에 대한 정보 확인
- Ctrl + 5로 열기 → Ctrl + F → <파일명> 검색 → 현재 문서에서 모두 찾기 → offset 값 복사 (e.g., 0x0000000001fe4028)
- mkdir files (파일 생성)
[7] 덤프 파일로 추출
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 dumpfiles -Q <복사한 offset > -D .\ <생성한 파일명> \ -n
- virustotal 검색 → 해당 파일을 드랍 → 결과 확인
[8] 네트워크 정보 확인
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 connections > connections.log
- connections란?
- 연결된 TCP 출력
- local address : 분석하고자 하는 디바이스의 로컬 주소
- remote address : 원격지 주소
mkdir dumps → volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 memdump -p <의심스러운 PID> -D .\\dumps
- 메모리 덤프 중 프로세스의 메모리 덤프를 하는 것
- 해당 파일을 확인하면 쓰레기 값이 많아서 그걸 우선 제거해야 함 (HxD 사용)
strings .\\dump\\<PID>.dmp > strings_<PID>.log
- (strings는 Sysinternals Suite를 환경 변수로 설정하면 생김)
- Ctrl + o → strings_<PID> 파일 선택 → Remote Address에서 port주소 제외한 IP주소 Ctrl + c
- Ctrl + F → IP 주소 Ctrl + v → 현재 문서에서 찾기
= reader_sl.exe가 악성 PDF문서를 읽고 → 취약점으로 인해 URL 접속 → 은행 관련 피싱 (으로 추측하심…)
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 socket > socket.log
[9] 악성코드 발견 !!
volatility_2.6_win64_standalone -f .\cridex.vmem —profile= WinXPSP2x86 procdump - p 1640 -D .\dumps\
- 프로세스 리스트에서 아까 복사한 PID를 프로세스 내부에서 직접 뽑아낸 방법 = 즉, 실제로 실행된 exe
- 윈도우즈 보안 끄는 법
- windows+R → ‘윈도우즈 보안’ 검색 → 바이러스 위협 및 방지 → 설정 관리 → 실시간 보호 OFF
- virustotal 검색 → 해당 파일을 드랍 → 결과 확인 (윈도우즈 보안 해제해야 제대로 파일 생성됨. 0바이트이면 안 됨)
[정리]
- imageinfo : 메모리의 운영체제를 식별
- pslist : 시간 순서대로 출력
- psscan : 숨김 프로세스를 볼 수 있음
- pstree : PID, PPID 기반으로 구조화해서 보여줌
- psxview : pslist, psscan을 한눈에 볼 수 있음, 숨김 프로세스 찾는 데에 사용
- cmdline : 프로세스가 실행될 때 인자값
- filescan : 메모리 내에 존재하는 모든 파일에 대한 정보
- dumpfiles : 프로세스의 메모리 덤프 추출 -> strings로 변환해서 키워드 검색
- procdump : 프로세스의 exe 파일 추출
'SWLUG > forensic' 카테고리의 다른 글
[디지털포렌식] 4(2). Windows registry 실습 (1) | 2024.04.28 |
---|---|
[디지털포렌식] 4(1). Windows registry 이론 (0) | 2024.04.28 |
[디지털포렌식] 0. 디지털 포렌식의 이해 (1) | 2024.04.26 |
[디지털포렌식] 3. Volatility 정리 및 포렌식 심화 (1) | 2024.04.26 |
[디지털포렌식] 1. 디지털 포렌식의 기초 (1) | 2024.03.20 |