티스토리 뷰
해당 포스트는 Windows 포렌식에서의 $MFT, $LogFile, $UsnJrnl, .lnk, Jumplist에 대한 이론적인 부분에 대한 내용입니다.
1. $MFT
MFT(Master File Table)
- NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조
- 하나의 파일당 하나의 MFT 엔트리를 가진다.
- $MFT란 MFT 엔트리들의 집합
MFT 엔트리
- 파일의 이름, 생성, 수정, 변경시간, 크기, 속성 등을 가지고 있다.
- 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있다.
2. $MFT 확인 실습
윈도우 내에 $MFT를 추출해주어야 한다.
FTK Imager 관리자 권한으로 실행 > 좌측 상단 ADD Evidence Item > Logical Device > \C > Finish
바탕화면에 MFT라는 폴더를 만들고 그곳에 추출을 해주자
잘 추출된 것을 볼 수 있다.
이것을 아까 설치한 MFT Explorer에서 열어주자.
다양한 정보를 확인할 수 있다.
1.$LogFile
저널링(Jounaling)
- 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
- 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실된다.
- 문제가 발생하기 전에 어떤 데이터를, 언제, 어디에 쓰는지를 기록한다.
- 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원한다.
트랜잭션(Transaction)
- 쪼깰 수 없는 업무 처리의 최소 단위
- 파일이나 디렉터리 생성, 수정, 삭제, MFT레코드 변경 등
- $LogFile: 메타데이터의 트랜잭션 저널 정보
2. $UsnJrnl
- 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
- 파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위한다.
- 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB
3. $LogFile, $UsnJrnl 확인 실습
추출
FTK Imager로 $MTF 실습처럼 Evidence Tree를 만들어준다.
$LogFile : [root] >$LogFile
$UsnJrnl : [root] > $Extend > $UsnJrnl > $J
후에 추출된 파일들을 NTFS Log Tracker에 아래와 같이 넣어주고 Parse를 눌러준다.
후에 DB명을 아무거나(result)를 짓고 DB를 저장할 폴더를 지정해준다.
만들어진 DB를 SQLite를 통해 열어주면 아래와 같이 나온다.
해당 파일을 통해서 방대한 정보를 얻을 수 있다.
1. 바로가기(LNK)
- Windows Shortcut
- .lnk 확장자
생성하는 방법
- 사용자가 직접 생성
- 프로그램 설치 시에 생성
- 운영체제가 자동으로 생성
해당 PC의 밀리의 서재는 현재 바탕화면에 바로가기로 되어있으며 확장자는 .lnk인 것을 확인 할 수 있다.
속성에서의 경로는 아래 사진처럼 원본 파일을 가르키며 파일을 열면 원본 파일이 있는 폴더가 열리는 것을 확인할 수 있다
바로가기 파일 생성되는 경로
바탕화면
- %UserProfile%\Desktop
시작 메뉴
- %ProgramData%\Microsoft\Windows\Start Menu
최근 실행
- %UserProfile%\AppData\Roming\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
2. 바로가기 추출 실습
바탕화면에 폴더 하나를 만들고 위 실습과 같은 방식으로 .lnk 파일을 하나 추출해준다.
LECmd Tool을 사용하여 해당 바로가기 파일을 -f 옵션을 통해 파일 단위로 분석해보자.
해당 명령으로 알 수 있는 정보는
- 원본 파일 생성, 수정, 접근 시간
- 바로가기 생성, 접근, 수정 시간
- 원본파일 크기
- 상대적 경로
- 원본파일 경로
- 환경변수
등...
%UserProfile%\AppData\Roming\Microsoft\Windows\Recent의 폴더를 추출해주자.
이번엔 -f 옵션이 아닌 -d 옵션을 사용하되 너무 많은 양의 정보가 나오기 때문에 이것을 html로 만들어줄 수 있다.
.\LECmd.exe -d \Recent\ --html "html을 생성할 경로"
1. Jumplist
점프리스트란?
- 최근 사용한 파일/폴더에 빠르게 접근하기 위한 구조
종류
- Automatic : 운영체제가 자동으로 남기는 항목
- Custom : 응용프로그램이 자체적으로 관리하는 항목
경로
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
2. JumpList 실습
위 경로를 추출해준다.
JumpList Explorer를 통해 jumplist 정보들을 확인해준다.
'Digital Forensics > Artifact' 카테고리의 다른 글
Windows Artifact 종류 및 관련 도구 (0) | 2025.02.18 |
---|---|
ThumbnailCache, IconCache, Windows Timeline (0) | 2024.05.30 |
브라우저 아티팩트 개념, 실습 (0) | 2024.05.30 |
Prefetch, MUICache, AmCache&ShimCache (0) | 2024.05.30 |
Windows Registry 동작원리 (0) | 2024.04.01 |