본문 바로가기

4-1. 2026-2 심화 스터디/디지털 포렌식

[3주차] 디지털 포렌식

크리스탈씬

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 실습>

  1. FTK Imager 이용
  2. 다음 파일 추출
[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 실습>

  1. FTK Imager를 이용하여 AutomaticDestinations, CustomDestinations 추출
  2. JumpList Explorer를 이용하여 분석

 

9. Prefetch

: 응용 프로그램의 빠른 실행을 위해서 존재하는 파일

 

Prefetch를 통해 다음 정보를 확인할 수 있음.

  • 실행 파일 이름
  • 실행 파일 경로
  • 실행 횟수
  • 마지막 실행 시간
  • 최초 실행 시간

따라서 프로그램의 실행 흔적을 확인하는 데 활용할 수 있음.

 

<Prefetch 실습>

Prefetch 저장 경로

%SystemRoot%\Prefetch

 

WinPrefetchView를 이용하여 분석.

'4-1. 2026-2 심화 스터디 > 디지털 포렌식' 카테고리의 다른 글

[2주차] 디지털 포렌식  (0) 2026.09.16