크리스탈씬
Windows 포렌식 (1)
1. Windows Artifacts
- Windows가 가지고 있는 특유의 기능들과 그 기능을 구현하는데 필요한 요소
- Windows의 사용자가 수행한 활동에 대한 정보를 보유하고 있는 개체
(디지털 포렌식에서는 이러한 흔적을 분석하여 사용자가 컴퓨터에서 어떤 행위를 했는지 파악할 수 있음)
- 생성증거: 프로세스, 시스템에서 자동으로 생성한 데이터 -> 윈도우 아티팩트가 여기에 해당
- 보관증거: 사람이 기록하여 작성한 데이터
주요 Windows Artifacts
- Registry
- $MFT, $LogFile, $UsnJrnl
- LNK
- JumpList
- Recycle Bin
- Prefetch & Cache
- Timeline
- VSS
- 웹 브라우저 아티팩트
- EventLogs
Windows Artifacts를 공부할 때 중요하게 봐야할 점
1. 사용자는 컴퓨터로 무슨 일을 했는가?
2. 사용자의 행위에 따라 어디에 어떤 정보가 저장될까?
3. 컴퓨터는 어떻게 동작하는 걸까?
→ 사용자는 컴퓨터로 무슨 일을 했을까? (각각의 아티팩트가 어떤 사용자 행위에 의해 생성되고, 어떤 정보를 남기는지 파악)에 대한 질문을 해결하는 것
2. Registry
: 윈도우 운영체제와 응용 프로그램 운영에 필요한 정보를 담고 있는 계층형 데이터베이스
- 운영체제 및 응용 프로그램의 설정 정보, 서비스의 중요 데이터 등을 기록
- 부팅과정, 로그인, 서비스 실행, 응용 프로그램 실행, 사용자 행위 등 모든 활동에 관여
- 윈도우 시스템의 모든 정보가 담겨 있음 → 윈도우 시스템 분석의 필수 요소
<레지스트리를 통해 확인할 수 있는 주요 정보>
- 시스템 표준 시간(TimeZone)
- 시스템 정보(Systeminfo)
- 사용자 계정 정보
- 환경 변수 정보
- 자동 실행 프로그램
- 응용 프로그램 실행 흔적(UserAssist, OpenSavePidlMRU, LastVisitedPidlMRU)
- USB 연결 흔적
- 접근한 폴더 정보(Shellbag)
레지스트리 조회: Windows의 regedit(레지스트리 편집기)을 이용하면 레지스트리를 조회하고 편집할 수 있음.
ㄴ Win+r에서 regedit 검색 or Win+s에서 regedit 검색 후 관리자 권한으로 실행
레지스트리 구조
Root Key → Key → Value → Type → Data

| 루트 키 | 약어 | 설명 |
| HKEY_CLASSES_ROOT | HKCR | 파일 확장자 연결 정보, COM 객체 등록 정보 |
| HKEY_CURRENT_USER | HKCU | 현재 시스템에 로그인된 사용자의 프로파일 정보 |
| HKEY_LOCAL_MACHINE | HKLM | 시스템의 하드웨어, 소프트웨어 설정 및 기타 환경 정보 |
| HKEY_USERS | HKU | 시스템의 모든 사용자와 그룹에 관한 프로파일 정보 |
| HKEY_CURRENT_CONFIG | HKCC | 시스템이 시작할 때 사용되는 하드웨어 프로파일 정보 |
*자주 사용하는 루트 키
2-1. TimeZone
경로
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
- Bias를 통해 현재 컴퓨터의 timezone 확인 가능 (강의 자료 컴퓨터의 설정은 UTC+9)

2-2. Systeminfo
경로
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
(확인 가능한 정보)
- Windows 버전
- 설치 시간
- ProductId
- 기타 시스템 관련 정보

2-3. Autoruns
시스템 시작 시 자동으로 실행되는 프로그램 확인
주요 경로
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
- 시작 프로그램(Autoruns)을 확인
- RunOnce: 한 번 실행 후 삭제

2-4. User Account
경로
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
<주요 SID>
| S-1-5-18 | systemprofile |
| S-1-5-19 | LocalService |
| S-1-5-20 | NetworkService |
| S-1-5-21 | 사용자가 만든 계정 |
- 1000 이상: user 권한
- 500: administrator
사용자의 최종 로그인 시간
- LocalProfileLoadTimeHigh
- LocalProfileLoadTimeLow
→ 위 두 값을 결합하여 사용자의 최종 로그인 시간을 Dcode로 확인
ex) 0x01d842365f0dff92 = 2022-03-28 08:57:09.7849746 +09:00
2-5. Environment Variables
- 사용자 환경변수
HKU\{SID}\Environment

- 시스템 환경변수
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

2-6. Executable (응용프로그램 실행 흔적)
UserAssist
최근 실행한 프로그램에 대한 정보를 기록
- 최근 실행 프로그램 목록
- 마지막 실행 시간
- 실행 횟수
경로
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count
→ 실행파일 실행 기록
{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count
→ 바로가기 실행 기록
OpenSavePidlMRU
열기 또는 저장 기능으로 사용된 파일 확인
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
LastVisitedPidlMRU
열기 또는 저장 기능을 사용한 응용 프로그램 확인
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
2-7. USB Connection
USB 등 외부 저장매체 연결 흔적을 추적 가능
- USB 제품명, 시리얼 번호, 최초 연결 시각, 마지막 연결 시각
주요 경로
모든 USB
HKLM\SYSTEM\ControlSet001\Enum\USB
USB 저장장치
HKLM\SYSTEM\ControlSet001\Enum\USBSTOR
마운트된 장치
HKLM\SYSTEM\MountedDevices
1) 모든 usb
- 시스템에 연결되었던 모든 USB 장치의 정보가 기록됨
- VID와 PID를 검색하면 USB 종류를 알 수 있음
2) usb 저장장치
- 시스템에 연결되었던 모든 USB 저장장치의 정보가 기록됨
- VID와 PID를 검색하면, USB 종류를 알 수 있음
3) 마운트된 장치
- 시스템에 마운트되었던 장치의 리스트를 나타냄
2-8. Shellbags
사용자가 접근한 폴더 정보를 기록함
삭제된 폴더의 정보도 확인 가능
- BagMRU: 폴더의 구조를 계층적 구조로 나타냄
- Bag: 윈도우창 사이즈, 위치 등 사용자의 환경설정을 저장
경로
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\BagMRU
HKCU\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Microsoft\Windows\Shell\BagMRU
3. Registry 실습
레지스트리 파일 추출
FTK Imager를 이용하여 다음 파일을 추출

registry 폴더 생성 후, 그 안에 raw, clean, result 폴더 생성
FTK Imager 관리자 권한으로 실행 > Add Evident Item > Local Drive > C 드라이브 선택
[root]\Windows\Users\{USERNAME}\NTUSER.DAT
[root]\Windows\System32\config\DEFAULT
[root]\Windows\System32\config\SAM
[root]\Windows\System32\config\SECURITY
[root]\Windows\System32\config\SOFTWARE
[root]\Windows\System32\config\SYSTEM
주의: 레지스트리 파일을 추출할 때 LOG1, LOG2 파일도 반드시 함께 추출.


3-1. REGA
레지스트리도 자동으로 추출해준다.

- raw를 완벽히 처리하지 못하고, 지원하지 않는 기능이 있다.
3-2. RLA&RegRipper
다운로드 받은 rla를 registry 폴더에 압축 해제
→ cmd에서 registry로 경로 이동 후, rla.exe 실행
→ rla를 이용하여 raw 폴더 내에 있는 레지스트리파일을 clean으로 추출함

RegRipper 다운 후 registry 폴더에 압축 해제
→ rr.exe 실행(GUI버전)

Hive File: clean 폴더에 있는 파일
Report File: result 폴더에 추출
모든 파일을 하나하나 Rip! 진행 후 NotePad++에서 검색 기능을 이용하여 분석

REGA보다 자세히 분석할 수 있지만 사용하기 어렵다.
4. $MFT
MFT(Master File Table)
: 엔트리들의 집합
- NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조
- 하나의 파일당 하나의 MFT 엔트리를 가짐
MFT 엔트리에 포함된 정보
- 파일의 이름, 생성/수정/변경시간, 크기, 속성
- 파일의 디스크 내부 위치, 파일의 시스템 경로
>> $MFT를 분석하면 파일의 기본적인 메타데이터와 위치 정보를 파악할 수 있음.
<$MFT 실습>
- FTK Imager 이용
- 다음 파일 추출
[root]\$MFT
3. MFTExplorer를 이용하여 분석
5. $LogFile
저널링(Jounaling)
데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용하는 기능
- 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
- 문제가 발생하기 전에 '어떤 데이터를 언제 어디에 쓰는지' 기록
- 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원
트랜젝션(Transaction)
쪼갤 수 없는 업무 처리의 최소 단위
- 파일/디렉터리 생성, 수정, 삭제, MFT 레코드 변경 등
$LogFile
- 메타데이터의 트랜잭션 저널 정보를 저장
6. $UsnJrnl
- 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
- 파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함
- 시간 순서대로 엔트리를 저장 (기본 크기: 32MB)
- 하루 8시간 사용시 4~5일 정도의 데이터를 저장
<$LogFile & $UsnJrnl 실습>
FTK Imager를 이용하여 추출
[root]\$LogFile
[root]\$Extend\$UsnJrnl\$J
이후 NTFS Log Tracker를 이용하여 분석.
7. 바로가기(LNK)
LNK란?
- Windows Shortcut
- .lnk 확장자를 사용
생성 방법
- 사용자가 직접 생성
- 프로그램 설치 시에 생성
- 운영체제가 자동으로 생성
주요 저장 경로
바탕화면
%UserProfile%\Desktop
시작 메뉴
%ProgramData%\Microsoft\Windows\Start Menu
%UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu
최근 실행
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
빠른 실행
%ProgramData%\Microsoft\Internet Explorer\Quick Launch
%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
<LNK 실습>
FTK Imager로 다음 경로의 파일 추출
%UserProfile%\Desktop
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
이후 LECmd를 이용하여 분석.
8. JumpList
: 최근 사용한 파일/폴더에 빠르게 접근하기 위한 구조
종류
| Automatic | 운영체제가 자동으로 남기는 항목 |
| Custom | 응용 프로그램이 자체적으로 관리하는 항목 |
저장 경로
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
<JumpList 실습>
- FTK Imager를 이용하여 AutomaticDestinations, CustomDestinations 추출
- JumpList Explorer를 이용하여 분석
9. Prefetch
: 응용 프로그램의 빠른 실행을 위해서 존재하는 파일
Prefetch를 통해 다음 정보를 확인할 수 있음.
- 실행 파일 이름
- 실행 파일 경로
- 실행 횟수
- 마지막 실행 시간
- 최초 실행 시간
따라서 프로그램의 실행 흔적을 확인하는 데 활용할 수 있음.
<Prefetch 실습>
Prefetch 저장 경로
%SystemRoot%\Prefetch
WinPrefetchView를 이용하여 분석.
'4-1. 2026-2 심화 스터디 > 디지털 포렌식' 카테고리의 다른 글
| [2주차] 디지털 포렌식 (0) | 2026.09.16 |
|---|