$MFT 개념 및 실습 | 기초부터 따라하는 디지털포렌식
$MFT 개념 및 실습
www.inflearn.com
26강. $MFT 개념 및 실습
1. $MFT
- MFT(Master File Table)
NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조
하나의 파일당 하나의 MFT 엔트리를 가짐
$ MFT란 MFT 엔트리들의 집합
- MFT 엔트리
파일의 이름, 생성/수정/변경시간, 크기, 속성 등을 가지고 있음
파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음
$MFT 실습
FTK Imager 사용
-> [root] \ $MFT 추출
1. MFT Explorer 다운로드하기.
MDwiki
ericzimmerman.github.io
2. FTK Imager 에서 logical drive 선택 -> [root] \ $MFT 을 export 하기

3. 추출한 파일 MFT Explorer에 넣어주기

-> 자세한 정보 얻을 수 있음
27강. $LogFile, $USnJrnl 개념 및 실습
2. $LogFile, $Usnjrnl
$LogFile
1) 저널링(Jounaling)
- 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
문제가 발생하기 전에 "어떤 데이터를, 언제, 어디에 쓰는지" 기록
문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원
2) 트랜잭션(Transaction)
"쪼갤 수 없는 업무 처리의 최소 단위"
파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등
$LogFile: 메타데이터의 트랜잭션 저널 정보
$UsnJrnl
파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함
시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB
$LogFile, $UsnJrnl 실습
FTK Imager 사용
-> [root] \ $LogFile 추출
-> [root] \ $Extend \ $UsnJrnl \ $J 추출
1. NTFS Log Tracker 다운로드하기
blueangel's ForensicNote - NTFS Log Tracker
blueangel's ForensicNote - NTFS Log Tracker
NTFS Log Tracker v1.8
sites.google.com
2. FTK Imager 에서 [root] \ $LogFile 추출

3. FTK Imager 에서 [root] \ $Extend \ $UsnJrnl \ $J 추출

4. 추출한 파일들 NTFS Log Tracker 에 넣어주기

5. parse 클릭 후 결과 생성

-> db 생성됨
6. DB Browser for SQLite 에서 db 생성


-> 데이터 탐색 이것저것 가능 (테이블 종류 변경하며) 시간 이벤트 등등
28강. 바로가기(.LNK) 개념 및 실습
1. 바로가기(LNK)
Windows Shortcut
.lnk 확장자
- 생성하는 방법
사용자가 직접
프로그램 설치 시
운영체제가 자동으로
바탕 화면
%UserProfile% \Desktop
(%UserProfile == C:\Users\hyewo)
시작 메뉴
%ProgramData%\Microsoft \Windows\Start Menu
( %ProgramData == C:\ProgramData)
%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 이용하여 분석
https://ericzimmerman.github.io/#!index.md
MDwiki
ericzimmerman.github.io
1. FTK Imager 사용
-> [root] \ user \ hyewo \ Desktop 추출
-> [root] \ user \ hyewo \ AppData \Roaming\Microsoft\Windows\Recent 추출
LECmd가 튕겨져 강제 종료됨... 관리자권한으로실행도 해봤지만 으음....
명령어 h: help
< 바로가기 파일 포렌식 >
Slides/Windows/(FP) 바로가기 파일 포렌식 (LNK Forensics).pdf at master · proneer/Slides · GitHub
Slides/Windows/(FP) 바로가기 파일 포렌식 (LNK Forensics).pdf at master · proneer/Slides
Slides. Contribute to proneer/Slides development by creating an account on GitHub.
github.com
1. 바로가기 파일 소개
바로가기(LNK) 파일
- 정의: 링크 파일(Shortcut file)로 불리며, 공식 명칭은 “Shell Link”
- 용도: 윈도우에서 특정 프로그램, 디렉터리, 파일 등을 간접적으로 참조하는 파일
- 특징
- GUI(그래픽 인터페이스)에서만 동작 (명령줄에서는 X)
- .lnk 확장자를 가짐
- 윈도우 OS 전용 기능
예시: 특정 프로그램의 바로가기 속성창에서는 실제 대상 경로, 실행 위치, 아이콘, 실행 방식 등이 포함되어 있음
바로가기 파일 생성 위치
- 윈도우 설치 시 자동 생성
- 시작 메뉴
- XP: C:\Documents and Settings\All Users\Start Menu
- Vista/7: C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu
- 관리자의 내 문서/그림/음악/비디오 폴더 링크
- XP: C:\Documents and Settings\Administrator\My Documents → All Users
- Vista/7: C:\Users\<username> → Public
- 사용자 활동에 따라 생성
- 사용자 시작 메뉴
- XP: C:\Documents and Settings\<username>\Start Menu
- Vista/7: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu
- 사용자의 미디어 폴더
- XP: C:\Documents and Settings\<username>\My Documents
- Vista/7: C:\Users\<username>\Public
- 최근 문서
- XP: C:\Documents and Settings\<username>\Recent
- Vista/7: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent
바로가기 파일의 생성 원인
- 응용프로그램 설치 시 자동 생성
- 설치 과정에서 바탕화면, 시작 메뉴, 빠른 실행 등에 자동 생성
- 사용자 직접 생성
- 사용자가 원하는 위치에 수동으로 생성 가능
포렌식 활용 포인트
- LNK 파일은 사용자 행위의 흔적을 보여주기 때문에 포렌식 분석에서 매우 중요
- 최근 실행한 파일, 접근한 디렉터리, USB 장치 정보까지도 일부 추적 가능
- 생성 시간, 마지막 접근 시간, 대상 경로 등의 메타데이터 분석 가능
2. 바로가기 파일 구조
Windows LNK 파일 구조 분석 (포렌식 관점)
기본 구조 개요
LNK 파일은 MS에서 정의한 Shell Link Binary File Format에 따라 아래와 같은 구조로 구성되어 있습니다.

구조별 상세 분석
SHELL_LINK_HEADER
- LNK 파일의 기본 헤더 정보
- 주요 필드:
- FileAttributes → 읽기 전용, 숨김, 시스템 속성 등
- CreationTime / AccessTime / WriteTime → 생성/접근/수정 시간
- HotKey, ShowCommand → 실행 방식 설정
포렌식 의미: 사용자 활동 시간 추적, 파일 속성 확인
LINKTARGET_IDLIST
- 링크 대상 경로를 계층적으로 구조화해 저장
- IDList 리스트 구조 내에 실제 폴더/파일 경로 정보 포함
포렌식 의미: 대상 경로 복원 및 사용자의 탐색 기록 추적
LINKINFO
- 링크 대상의 위치 정보를 포함
- VolumeIDOffset, LocalBasePathOffset 등
- 드라이브 형식, 드라이브 시리얼 번호 등도 포함
포렌식 의미: 사용된 저장 장치(USB 등) 확인 및 파일 위치 추적
STRING_DATA
- 링크 이름, 설명, 실행 시 작업 디렉토리 등 문자열 정보 포함
포렌식 의미: 사용자가 지정한 이름, 목적, 실행 환경 확인
EXTRA_DATA
- 부가적인 시스템 정보 저장
- 콘솔 실행 설정값
- 코드 페이지
- 환경 변수
- NetBIOS 이름
- MAC 주소
포렌식 의미:
- 사용자 또는 장치 식별 가능
- LNK 파일이 만들어진 장치의 네트워크 정보 확보 가능
3. 바로가기 파일 카빙
LNK 파일 카빙 (Carving) 기법과 포렌식 분석
LNK 시그니처 기반 카빙
카빙(Carving)의 필요성
- 사용자가 임의로 삭제한 LNK 파일도 비할당 영역(Unallocated Space) 에 남아있을 수 있음
- 특히 ‘최근 문서(Recent)’ 폴더의 링크는 자동 삭제되거나 일정 수 이상 되면 교체됨
- Vista/7 기준 최대 150개 저장
- XP는 명확한 개수 기준이 없어 '??' 로 표기
→ 삭제되거나 교체된 LNK 파일도 디스크에서 복구 가능
시그니처 카빙
SHELL_LINK_HEADER 시그니처
| HeaderSize | 항상 0x0000004C (76 바이트) |
| LinkCLSID | 고정값: 00021401-0000-0000-C000-000000000046 |
이 값들이 함께 존재하면 LNK 파일의 시작 지점으로 판단 가능
4. 바로가기 파일 분석
바로가기 분석 도구
| 도구명 | 설명 및 바로가기 링크 |
| Windows LNK Parsing Utility (lp) | LNK 파일을 파싱해 주요 구조 분석 다운로드 링크 |
| Lnkanalyser | GUI 기반 분석 툴, 타임스탬프/경로/볼륨정보 등 시각화 제공 바로가기 |
| Windows File Analyzer | 여러 윈도우 시스템 파일 포맷 분석, LNK 포함 바로가기 |
| 010Editor – LNK Template | HEX 편집기로 LNK 구조 직접 분석 가능, 템플릿 제공 바로가기 |
| Lnk Analyzer (Tarasco) | LNK 포렌식 분석 전용 툴, 네트워크 경로 및 드라이브 정보 확인 바로가기 |
'인프런' 카테고리의 다른 글
| [인프런] 29. Jumplist 개념 및 실습 ~ 30. Prefetch 개념 및 실습 (0) | 2025.07.21 |
|---|---|
| [인프런] 31. MUICache ~32. AmCache & ShimCache (0) | 2025.07.14 |
| [인프런] 강의섹션3. 침해사고 대응기법, 해커의 발자취를 찾아라 ~ 섹션4. 윈도우 포렌식, 깊게 들어가 보아요 & 레지스트리 포렌식과 보안 (Registry Forensics) (0) | 2025.05.13 |
| [인프런] 4주차. 디지털 증거 획득 (Digital Evidence Acquisition) & 디지털 증거 수집 방안 (Digital Evidence Collection) (0) | 2025.05.06 |
| [인프런] 메모리 포렌식 (0) | 2025.04.08 |