brunch

[디지털 포렌식]06. Window Artifact 2

shell link, jumplist, thumbnail, icon

by Jyoo

01. Shell Link (LNK)

1. Shell Link (LNK)란?

다른 데이터 객체에 접근할 수 있는 파일이다. (예: 파일, 폴더).

쉘 링크 파일은 다른 데이터 개체(파일, 폴더) 등에 접근하는 데 사용

대상 객체에 대한 정보를 저장 (전체 경로, 크기, 속성, 타임스탬프 등).

확장자: .lnk.

LNK의 다른 이름으로는 '바로가기(Shortcut)'와 '쉘 링크(Shell Link)'가 있음


2. LNK 파일이 생성되는 상황

Windows OS 설치 시: 시스템이 생성한 LNK 파일 ex:) 데스크톱, 시작 메뉴, 빠른 실행


응용 프로그램 설치 시(: 시스템이 생성한 LNK 파일. 앱에 의해 생성된 LNK파일. 바탕화면, 시작 메뉴, 빠른 실행 등


파일을 열 때 (시스템 생성 LNK) : 문서를 열면 'Recent' 폴더에 자동으로 LNK 파일이 생성.


바로 가기 수동 생성 시: 사용자가 직접 생성한 LNK 파일.


3. LNK 파일이 있는 잘 알려진 폴더

Recent Items

%UserProfile%\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\ (최대 파일 개수 : 150) %UserProfile%\\AppData\\Roaming\\Microsoft\\Office\\Recent %UserProfile%\\AppData\\Roaming\\HNC\\Office\\Recent\\


Start Menu

%UserProfile%\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\ %ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs\\


Desktop

%UserProfile%\\Desktop\\


Quick Launch

%UserProfile%\\AppData\\Roaming\\Microsoft\\Internet Explorer\\Quick Launch\\

4. Shell Link 파일 포맷

ShellLinkHeader: 링크 대상의 메타데이터 (속성, 타임스탬프 등). 디폴트 첫번째 4바이트는 항상 0000004C (76) → 헤더 사이즈

LinkTargetIDList: 링크 대상의 item identifier 목록 (존재하는 경우). 옵셔널

LinkInfo: 링크 대상의 위치 정보 (존재하는 경우). 옵셔널

StringData: 링크 대상과 관련된 Strings (상대 경로, 작업 폴더, 명령줄 인수, 아이콘 위치 등). 옵셔널

ExtraData: 링크 대상에 대한 추가 데이터 (콘솔 속성, 메타데이터 속성 등). 옵셔


5. Shell Link와 디지털 포렌식

ShellLinkHeader

링크 대상의 속성: 읽기 전용, 숨김, 시스템, 디렉토리 등 링크 대상 파일/폴더의 속성 정보

링크 대상의 생성, 수정, 액세스 타임스탬프: 링크 대상 파일/폴더의 생성, 수정, 액세스 시간


LinkInfo

드라이브 유형 : fixed, removable, remote (고정, 이동식, 원격 드라이브유형)
드라이브 시리얼 넘버
볼륨 라벨
전체 경로: local storage, removable storage, network drive, etc.


ExtraData

NetBIOS name : 컴퓨터 이름
MAC주소 (네트워크 인터페이스, Wi-Fi, 블루투스 중 하나)
TrackerDataBlock (Droid File/Volume GUID, DroidBirth File/Volume GUID)


6. 도구:

KAPE : LNKFileandJumpList

LECmd: https://github.com/EricZimmerman/LECmd


02. Jump List

1. Jump List란?

: 작업 표시줄 기능 → 최근/자주 접근한 항목 관리 (Windows 7 이상).

점프리스트의 구조
Jump List 파일 위치: %UserProfile%\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\

AutomaticDestinations: Windows에서 관리하는 Jump List 파일.
CustomDestinations: 애플리케이션에서 관리하는 Jump List 파일.



2. Jump List 항목 유형

Recent: 최근에 접근한 파일과 폴더.

Frequent: 자주 접근한 파일과 폴더.

Pinned: 사용자가 고정한 항목.

Tasks: 애플리케이션이 지원하는 작업. (경우에 따라 미디어 재생, 새 문서 작성 등의 기능을 빠르게 이용하기 위한 파일)

기타: 상위 사이트, 최근에 닫은 항목 등.


3. Jump List 파일 포맷

AutomaticDestinations: Recent, Pinned
복합 파일 이진 형식 (CFBF).
각 Jump List 항목은 CFBF의 스트림에 저장.
"DestList" 스트림에는 가장 최근/자주 사용된(MRU/MFU) 목록이 포함됨


CustomDestinations: Frequent, Tasks
Shell Link (LNK) 파일 형식 세그먼트로 구성.
LNK 세그먼트는 고정된 길이의 헤더와 LNK GUID를 포함.


4. Jump List와 디지털 포렌식

활용 방법
실행된 애플리케이션, 열린 문서
방문한 URL
최근/자주 사용된 앱과 문서
애플리케이션 사용 패턴
외부 저장소에 접근한 흔적을 추적.


관심 포인트: Jump List 항목은 삭제되지 않으면 계속 누적됩니다.


5. 도구

KAPE : 점프리스트 파일 수집 LNKFilesAndJumpLists

JumpListView

https://www.nirsoft.net/utils/jump_lists_view.html


JumpListExplorer

https://ericzimmerman.github.io/


03. Thumbnail & Icon Cache

1. Thumbnail Cache

중앙 집중식 저장소: 문서, 이미지, 비디오의 썸네일을 저장.
ex:) JPG, BMP, PNG, AVI, MP4, PDF, PPTX, DOCX 등 다양한 파일 유형의 썸네일 저장


빠른 액세스 지원: 썸네일에 대한 빠른 접근 지원
ex:) Explorer의 미리보기 기능


위치: %UserProfile%\\AppData\\Local\\Microsoft\\Windows\\Explorer\\thumbcache_*.db (각 파일은 여러 개의 BMP, PNG, JPG 파일로 구성됨)


2. Thumbnail과 디지털 포렌식

파일 존재 확인
해당 파일을 미리 볼 때 썸네일이 자동으로 저장되므로 특정 파일의 존재 여부 확인에 유용
원본 파일이 삭제되어도 썸네일은 삭제되지 않음
디스크 정리에 의해 자동으로 지워질 수 있음


파일 내용 확인
멀티미디어 파일 : 무작위 프레임이 썸네일로 캐시
문서 파일 : 첫 페이지가 썸네일로 캐시


3. Tool

KAPE : 썸네일 캐시 수집 ThumbCache

Thumbcache Viewer:

https://thumbcacheviewer.github.io/


4. Icon Cache

중앙 집중식 저장소: 아이콘 이미지를 저장.

빠른 액세스 지원: 아이콘의 빠른 표시를 지원.

아이콘 캐시 위치
%UserProfile%\\AppData\\Local\\IconCache.db (아이콘이 있거나 연결된 파일의 전체 경로) %UserProfile%\\AppData\\Local\\Microsoft\\Windows\\Explorer\\iconcache_*.db (각 파일은 여러 개의 BMP, PNG, JPG 파일로 구성됨)


5. 아이콘 캐싱 메커니즘:

아이콘 자원 실행 파일의 리소스, Windows 기본 아이콘(파일, 폴더 등), 서드 파티 아이콘(실행 파일에 저장됨)

아이콘 캐시 DB 작동 Windows 부팅 시 메모리에 로드, 재부팅 시 업데이트. 삭제된 경우 재부팅 시 생성. (재부팅 전에는 새로 캐시된 이미지 확인 불가)

아이콘 캐시의 지속성 저장된 아이콘은 관련 파일이 삭제되어도 남아 있음


6. 아이콘 캐시와 디지털 포렌식:

알려진 아이콘 또는 고유 아이콘을 가진 애플리케이션의 흔적 확인

상용/무료 소프트웨어

안티포렌식 도구 (와이핑, 암호화, 아티펙트 제거 도구)

악성코드 등.


7. 도구:

IconCacheViewer:


https://thumbcacheviewer.github.io/


keyword
매거진의 이전글[디지털 포렌식]05. Window Artifact 1