[지금 무료]기초부터 따라하는 디지털포렌식| 훈지손 - 인프런 강의
현재 평점 4.9점 수강생 5,549명인 강의를 만나보세요. 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다. 디지털포
www.inflearn.com
윈도우 포렌식
윈도우 아티펙트(windows Artifacts)
윈도우가 가지고 있는 특유의 기능들과 그 기능을 구현하는 데 필요한 요소
윈도우의 사용자가 수행하는 활동에 대한 정보를 보유하고 있는 개체
생성증거: 프로세스, 시스템에서 자동으로 생성한 데이터 e.g. 윈도우 아티펙트
보관증거: 사람이 기록하여 작성한 데이터
레지스트리 (Registry)
윈도우 운영체제와 응용 프로그램 운영에 필요한 정보를 담고 있는 계층형 데이터베이스
→ 운영체제 및 응용 프로그램의 설정 정보, 서비스의 중요 데이터 등 기록
→ 부팅 과정부터 로그인, 서비스 실행, 응용프로그램 실행, 사용자 행위 등 모든 활동에 관여
윈도우 시스템의 모든 정보가 담겨 있음
→ 윈도우 시스템 분석의 필수 요소
e.g.
시스템 표준 시간(TimeZone)
시스템 정보(Systeminfo)
사용자 계정 정보
환경 변수 정보
자동 실행 프로그램 종류
응용프로그램 실행 흔적(UserAssist, OpenSavePidlMRU)
USB 연결 흔적
접근한 폴더 정보
레지스트리 조회
Regedit(레지스트리 편집기) 이용
윈도우 키 + R → regedit 입력

Regedit(레지스트리 편집기) 內
| 루트 키 | 약어 | 설명 |
| HKEY_CLASSES_ROOT | HKCR | 파일 확장자 연결 정보, COM 객체 등록 정보 |
| HKEY_CURRENT_USER | HKCU | 현재 시스템에 로그인 된 사용자의 프로파일 정보 |
| HKEY_LOCAL_MACHINE | HKLM | 시스템의 하드웨어, 소프트웨어 설정 및 기타 환경 정보 |
| HKEY_USERS | HKU | 시스템의 모든 사용자와 그룹에 관한 프로파일 정보 |
| HKEY_CURRENT_CONFIG | HKCC | 시스템이 시작할 때 사용되는 하드웨어 프로파일 정보 |

검색 시 약어 입력 가능

[ TimeZone ]
경로: HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Bias를 통해 현재 컴퓨터의 TimeZone을 알 수 있음
현재 컴퓨터의 설정은 UTC + 9

fffffde4 → -540
이는 분 단위를 나타내므로, -540분 == -9시간

시스템 표준 시간 == UTC
UTC + 9 == 서울 / 시스템 표준 시간보다 9시간 빠름
Bias – 540 == UTC
결국은 UTC + 9 를 설명하고 있는 내용임
[ Systeminfo ]
경로: HKLM\SOTEWARE\Microsoft\Windows NT\CurrentVersion
→ 현재 윈도우 버전, 설치 시간, ProductId 등시스템과 관련한 정보들 확인 가능
Powershell 內 systeminfo 명령어를 입력했을 때의 결과값과 같은 내용 출력
[ Autoruns ]
자동 실행 프로그램 확인 가능
경로
1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
3. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
4. HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
5. HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
6. HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
해당 경로에서 보이는 프로그램은 Window 설정 -> 앱 -> 시작 프로그램 內 확인 가능
[ User Account ]
경로: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
| S-1-5-18 | Systemprofile |
| S-1-5-19 | LocalService |
| S-1-5-20 | NetworkService |
| S-1-5-21 | 사용자가 만든 계정 1000이상 -> user 권한 500 -> administrator(관리자) |
S-1-5-21 內
1. LocalProfileLoadTimeHigh
2. LocalProfileLoadTimeLow

해당 값들을 High + Low 형태로 합친 후 Dcode 프로그램을 통해 입력하면 Windows Filetime에 날짜, 시간이 출력됨

→ 해당 계정의 사용자가 언제, 몇시에 접속했는지 확인 가능
[ Environment Variables ]
시스템/사용자 환경변수 확인
1. 사용자 환경변수
경로: HKU\{SID}\Environment
{SID}: 사용자 계정 (S-1-5-21)
2. 시스템 환경변수
경로: HKLN\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
윈도우 -> 시스템 환경 변수 검색 -> 고급 -> 환경 변수 -> 사용자/시스템 변수 확인 가능
[ Executable ]
응용프로그램(exe) 실행에 따른 흔적 확인
▶ UserAssist
→ 최근에 실행한 프로그램 목록, 마지막 실행 시간, 실행 횟수
경로: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
{CEBFF5CD ~ } \ Count: 실행파일 실행 기록
{F4E57C4B ~ } \ Count: 바로가기 실행 기록
▶ OpenSavePidIMRU
→ 열기 혹은 저장 기능으로 사용된 파일
경로: HKCU \Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
▶ LastVisitedPidIMRU
→ 열기 혹은 저장 기능을 사용한 응용 프로그램
경로: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
[ USB Connection ]
USB 등 외부 저장매체 연결 흔적 추적 가능
USB 제품명, 시리얼 번호, 최초 연결 시작, 마지막 연결 시작 확인 가능
▶ 모든 USB (키보드, 마우스 등 포함)
경로: HKLM\SYSTEM\ControlSet001\Enum\USB
▶ USB 저장장치
경로: HKLM\SYSTEM\ControlSet001\Enum\USBSTOR
▶ 마운트 디바이스
경로: HKLM\SYSTEM\MountedDevices
[ Shellbags ]
사용자가 접근한 폴더 정보를 기록함
(삭제된 폴더의 정보도 찾을 수 있음)
BagMRU: 폴더의 구조를 계층적 구조로 나타냄
Bag: 윈도우 사이즈, 위치 등 사용자의 환경설정을 저장
경로
1. HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
2. HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
3. HKCU\Software\Microsoft\Windows\Shell\Bags
4. HKCU\Software\Microsoft\Windows\Shell\BagMRU
레지스트리 실습
FTK Imager 이용
1. [root]\Windows\Users\{USERNAME}\NTUSER.DAT
2. [root]\Windows\System32\config\DEFAULT
3. [root]\Windows\System32\config\SAM
4. [root]\Windows\System32\config\SECURITY
5. [root]\Windows\System32\config\SOFTWARE
6. [root]\Windows\System32\config\SYSTEM
→ 반드시 LOG1, LOG2 파일을 포함해서 추출해야 함
실습 1.
바탕화면 內 registry 폴더 생성
실습 2.
하단의 폴더 3개 생성

레지스트리 추출 시 데이터 == raw
도구를 사용해 데이터 추출 == clean
Clean 데이터에서 결과 추출 == result
실습 3.
FTK Imager 실행
File > Add Evidence Item > Logical Drive > C\
상단의 6개 경로를 접속
1. [root]\Windows\Users\{USERNAME}\NTUSER.DAT

필자의 경우 {USERNAME} == user
해당 파일 3개 선택 > 우클릭 > Export Files > raw 폴더에 저장
2. [root]\Windows\System32\config\DEFAULT
3. [root]\Windows\System32\config\SAM
4. [root]\Windows\System32\config\SECURITY
5. [root]\Windows\System32\config\SOFTWARE
6. [root]\Windows\System32\config\SYSTEM

실습 4.
분석 도구 이용
1. REGA: http://forensic.korea.ac.kr/tools.html (현재 이용 불가)
2. RLA: https://ericzimmerman.github.io/#!index.md
3. Regripper: https://github.com/keydet89/RegRipper3.0
[ RLA ]
Raw 데이터를 clean 데이터로 변환해주는 도구
Powershell 실행


-d : raw 데이터 저장 경로
--out: clean 데이터 저장 경로 (변환된 데이터의 저장 경로 지정)

Clean 폴더 內 생성된 파일 확인

[ Regripper ]
Clean 데이터를 result 데이터로 변환해주는 도구

Hive File: clean 데이터
Report File: result 데이터 (clean 데이터가 변환된 결과)
→ 해당 파일의 이름은 사용자가 직접 입력해야 함
Result 폴더 內 파일 확인

txt 파일 內 수많은 플러그인 확인 가능
(해당 txt 파일은 NotePad++ 프로그램을 통해 확인 가능)
e.g. SYSTEM.txt 內 ussbstor 플러그인 확인

Last Arrival: 마지막으로 연결된 시간
Last Removal: 마지막으로 제거된 시간(USB 연결 종료 시간)
$MFT
$: 시스템 파일임을 의미
Master File Table
NTFS 파일시스템에서 파일, 디렉토리를 관리하기 위한 구조
하나의 파일 당 하나의 MFT 엔트리를 가짐
$MFT: MFT 엔트리들의 집합
[ MFT 엔트리 ]
파일의 이름, 생성/수정/변경시간/크기, 속성 등 보유
파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음
분석 도구
MFTExplorer: https://ericzimmerman.github.io/#!index.md
실습 1.
FTK Imager 실행
File > Add Evidence Item > Logical Drive > C\

파일 선택 > 우클릭 > Export Files > 바탕화면 內 MFT 폴더 생성 수 해당 폴더 內 저장
실습 2.
MFT Explorer 실행
저장된 MFT 파일을 MFT Explorer 프로그램으로 실행 시 폴더의 계층적 구조 확인 가능
이는 파일탐색기 內 C:\ 파일의 구조와 동일함
$LogFile
[ 저널링(Jounaling) ]
데이터 변경을 디스크에 반영하기 전에 행위를 기록해 추후 오류 복구에 활용
- 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
- 문제 발생 전 어떤 데이터를 언제, 어디에 쓰는지 기록
- 문제 발생 시 기록을 토대로 작업 진행 전 상태로 시스템 복원
[ 트랜젝션(Transaction) ]
쪼갤 수 없는 업무 처리의 최소 단위
- 파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등
$LogFile: 메타데이터의 트랜젝션 저널 정보
$UsnJrnl
파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
파일 복원의 목적 X, 단순 파일 작업이 있었다는 사실 확인 위함
시간 순서대로 엔트리 저장 (기본 크기: 32MB)
→ 하루 8시간 사용 시 4~5일 정도의 데이터를 저장하고 있음
분석 도구
NTFS Log Tracker: https://sites.google.com/site/forensicnote/ntfs-log-tracker
실습 1.
FTK Imager 실행
File > Add Evidence Item > Logical Drive > C\

파일 선택 > 우클릭 > Export Files > MFT 폴더에 저장

파일 선택 > 우클릭 > Export Files > MFT 폴더에 저장
실습 2.
NTFS Log Tracker 실행
(필자의 경우 해당 프로그램이 실행되지 않으므로, 강의 내용 화면으로 대체)

$LogFile, $J, $MFT 파일의 저장 경로 선택

3개의 파일을 토대로 DB 생성 예정
생성할 DB의 이름과 저장 경로 지정 후 start 클릭
해당 경로에 생성된 DB 확인

실습 3.
DB Browser for SQLite 실행
상단의 DB 파일을 해당 프로그램에서 실행

각각의 테이블별로 데이터 확인 가능
'4-1. 2025-2 심화 스터디 > 디지털 포렌식 1팀' 카테고리의 다른 글
| [2025.11.22] 5주차 활동_ctrl+z (0) | 2025.11.30 |
|---|---|
| [2025.11.8] 3주차 활동_ctrl+z (0) | 2025.11.17 |
| [2025.10.04] 2주차 활동_ctrl+z (0) | 2025.10.08 |
| [2025.09.27] 1주차 활동_ctrl+z (0) | 2025.09.27 |