인프런
$MFT 개념 및 실습
MFT(Master File Table)
- NTFS 파일 시스템에서 파일, 디렉터리를 관리하기 위한 구조
- 하나의 파일당 하나의 MFT 엔트리를 가짐
- $MFT란 MFT 엔트리들의 집합
MFT 엔트리
- 파일의 이름/생성/수정/변경시간/크기/속성 등을 가지고 있음
- 파일의 디스크 내부 위치, 파일 시스템 경로르 알 수 있음
실습
FTK Imager 이용
[root]\$MFT 추출
MFTExplorer 다운로드 (Get-ZimmermanTools에 포함되어 있음) 후 추출한 $MFT 불러오기

- C드라이브 구조와 동일
- ADS, Hex 등의 기능 지원
- MFT에서 얻을 수 있는 정보를 따로 뽑아줌
$LogFile, $UsnJrnl 개념 및 실습
저널링(Jounaling)
- 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
- 데이터 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
- 문제가 발생하기 전에 '어떤 데이터를, 언제, 어디에 쓰는지' 기록
- 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템 복원
트랜잭션(Transaction)
- 쪼갤 수 없는 업무 처리의 최소 단위
- 파일이나 디렉토리 생성/수정/삭제/MFT 레코드 변경 등
- $LogFile: 메타데이터의 트랜잭션 저널 정보
$UsnJrnl
- 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
- 파일 복원 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함
- 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB(하루 8시간 사용 시 4-5일 정도 데이터 저장하고 있음)
실습
FTK Imager에서 [root]/$LogFile과 [root]/Extend/$UsnJrnl/$J 추출
이때 파일탐색기에서 안보이면 ...-옵션-보기-보호된 운영체제 파일 숨기기 해제
시스템 파일이라 기본적으로 안보이게 설정되어 있음
+숨김 파일 표시, 알려진 파일 형식의 파일 확장명 숨기기 해제(권장)
NTFS Log Tracker에서 Target Path에 $LogFile, UsnJrnl Path에 $J 넣고
NFTS File Path에 NFT 파일 넣고 Path 클릭


Parse Setting이 뜨는데
DB File 이름, 경로를 설정
Timezone Information: 어떤 시간에 맞춰 생성할 것이냐
Start 누르면 DB가 생성됨

생성한 DB를 DB Browse for SQLite로 열고 분석 가능

바로가기(.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
실습
FTK Imager로 lnk 파일 추출
- %UserProfile%\Desktop
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
LECmd로 분석
- 추출한 파일을 LECmd 실행 프로그램과 같은 폴더에 넣고 Windows Shell에서 폴더로 이동 후 실행
- Example 참고해서 분석
- -f <>: 처리할 파일, d옵션 필요(파일)
- -d <>:폴더 안의 모든 폴더를 뒤져 탐색(디렉토리)

.\LECmd.exe -f '.\R 4.5.3.lnk': 정상적으로 실행됨
소스파일: 입력한 바로가기 파일 그 자체
타겟: 원본 파일에 대한 생성/수정/접근 시간
.\LECmd.exe -d .\Recent\:정상적으로 실행됨
너무 많이 나오니까 -h 치면 다양한 저장 포맷 알려줌
.\LECmd.exe -d .\Recent\ --html "C:\Users\Desktop\lnk_jumplist\save": 지정한 폴더에 저장됨
xhmtl 열면 봤던 lnk 분석 가능
바로가기 파일 포렌식
바로가기 파일 소개
바로가기 파일(링크파일)
- 윈도우에만 존재하는 기능
- 응용 프로그램, 디렉터리, 파일 등의 객체를 참조하는 파일
- 명령줄이 아닌 GUI에서만 동작
- .lnk 확장자 가짐
바로가기 생성
시작 메뉴
- XP: C:\Documents and Settings\<username>\Start Menu
- VIsta/7: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu
사용자의 내 음악(My Music), 내 그림(My Pictures), 내 비디오(My Videos) 폴더
- XP: C:\Documents and Settings\<username>\Documents => "All Users" 폴더를 링크
- Vista/7: C:\Users\<username> => "Public" 폴더를 링크
최근 문서
- XP: C:\Documents and Settings\<username>\Recent
- Vista/7: C:\Users\<username>\AppData\Roaming\Microsoft\Windows/Recent
사용자별 바탕화면
- XP: C:\Documents and Settings\<username>\Desktop
- Vista/7: C:\Users\<username>\Desktop
Send to 폴더
- Vista/7: C:\Users\<username>\AppData\Roaming\Microsoft\Windows/SendTo
빠른 실행(Quick Launch) 폴더
- XP: C:\Documents and Settings\<username>\Application Data\Microsoft\Internet Explorer\Quick Launch
- Vista/7: C:\Users\<username>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
응용프로그램 설치 시
- 바탕화면, 시작 메뉴, 빠른 실행 폴더, 설치 폴더에 바로가기 생성
사용자 직접 생성
- 사용자들도 필요에 따라 바로가기 생성
바로가기 파일 구조
| 구조 이름 | 설명 |
| SHELL_LINK_HEADER(default) | 식별 정보, 타임스탬프, 선택적인 구조의 존재 유무 플래그 |
| LINKTARGET_IDLIST(optional) | ShellLinkHeader의 HasLinkTargetIDList 플래그가 설정되어 있을때만 존재하는 구조로, 링크 대상의 다양한 정보를 리스트 형태로 구성해놓은 구조 |
| LINKFO(optional) | ShellLinkHeader의 HasLinkInfo 플래그가 설정되어 있을때만 존재하는 구조로 링크 대상을 참조하기 위한 정보를 가진 구조 |
| STRING_DATA(optional) | 링크 대상의 문자열 정보(이름, 상대경로, 작업디렉터리 등)를 저장하는 구조로 ShellLinkHeader에 관련된 플래그가 설정되어 있을때만 존재 |
| EXTRA_DATA(optional) | 링크 대상의 화면 표시 정보, 문자열코드페이지, 환경 변수와 같은 추가적인 정보 저장을 위한 구조 |
SHELL_LINK_HEADER

LINKTARGET_IDLIST
- 링크 대상의 정보를 리스트 형태로 구성해놓은 구조
IDList
- ItemIDSize
- Data

LINKINFO


- Volume ID

STRING_DATA
- 바로가기 설명, 링크 대상까지의 상대 경로, 바로가기 활성화 시 작업 디렉터리 위치 저장
EXTRA_DATA
- 링크 대상에 대한 추가 정보
- 콘솔에서 실행될 경우 디스플레이 설정 값
- 코드 페이지 정보/환경변수 정보/아이콘 위치 주소
- NetBIOS 이름/MAC 주소/...
바로가기 파일의 디지털 포렌식적 의미
SHELL_LINK_HEADER
- 링크 대상 파일의 속성(읽기 전용, 숨긴 파일, 시스템, 볼륨 레이블, 암호화, 압축 등)
- 링크 대상 파일의 생성, 수정, 접근 시간
LINKINFO
- 링크 대상 파일의 크기
- 링크 대상 파일이 위치한 드라이브 형식
- 링크 대상 파일이 위치한 드라이브 시리얼 번호
- 링크 대상 파일의 경로
EXTRA_DATA
- NetBIOS 이름/MAC 주소
바로가기 파일 카빙
시그니처 카빙
카빙의 필요성
- 사용자의 필요에 의해 삭제 가능성
- 최근 문서의 경우 바로가기 파일 수 제한(XP: ??, Vista/7: 150개)
- 비할당 영역에 존재할 가능성이 많음
SHELL_LINK_HEADER
- HeaderSize: 항상 0x0000004c
- LinkCLSID: 바로가기 파일의 고정된 식별자로 값 동일
- 00021401-0000-0000-C000-000000000046

바로가기 파일 분석
바로가기 분석 도구

'SWUFORCE > 인프런 강의' 카테고리의 다른 글
| section 3 ~ Windows Registry 실습 (0) | 2026.05.10 |
|---|---|
| 디지털 증거 획득 & 디지털 증거 수집 방안 (0) | 2026.05.05 |
| [인프런 강의] section2 ~CTF-D, GrrCon2015 정리 & 추가 분석 & 메모리 포렌식 (0) | 2026.04.07 |
| 부팅과 데이터 저장/전송 & 부팅 절차 (0) | 2026.03.28 |
| [인프런 강의] section 0, 1 & 디저털 포렌식 개요 (0) | 2026.03.21 |