본문 바로가기

인프런

[인프런] 26강 MFT 개념 및 실습 ~ 28강 바로가기(.LNK) 개념 및 실습 & 바로가기 파일 포렌식 (LNK Forensics)

https://inf.run/d6AjD

 

$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 다운로드하기.

Eric Zimmerman's tools

 

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 포렌식 분석 전용 툴, 네트워크 경로 및 드라이브 정보 확인  바로가기