[목차]
01 $MFT
02 $LogFile, $UsnJrnl
03 바로가기(.LNK)
04 Jumplist
* 앞에 $ 표시가 붙으면 윈도우에서 어떤 시스템 파일이라는 뜻
$MFT
1. 개념정리
MFT란?
Master File Table
• NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조
* NTFS 파일시스템 : 윈도우즈가 쓰는 파일 시스템
• 하나의 파일당 하나의 MFT 엔트리를 가짐
• $MFT란 MFT 엔트리들의 집합
MFT 엔트리
• 파일의 이름, 생성·수정·변경시간, 크기, 속성 등을 가지고 있음
• 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음
2. 실습
경로 : [root]\$MFT (FTK Imager 기준)
도구 : MFTExplorer
아래 링크에 들어가서 도구를 다운 받는다.
https://ericzimmerman.github.io/#!index.md

강사님... 0.5.1.0 버전이 없어요.
어쩔 수 없지. 다운 받으라는 버전이 없지만 그냥 2.0.0.0으로 받는다.

다운 받고 폴더 안에 exe 파일을 오픈한다.

FTK Imager을 열고 Add Evidence Item > Logical drive > c 드라이브 선택

MFT Scanning 팝업이 뜨고 로딩 후 위와 같이 폴더 구조를 볼 수 있다.
* MFT 스캐닝 : MFT를 스캐닝해서 폴더 구조를 파악하는 것

root 폴더 안에서 $MFT 파일을 찾는다.

바탕화면에 MFT 폴더 생성 후 export files > 파일 추출을 한다.

MFTExplorer 에서 추출한 파일을 오픈한다.
...
먹통이 됐다. 로딩이 안 됨.

결론은 여기서 왼쪽에 보이는 구조가 c 드라이브 아래의 폴더 구조와 같다는 것이다.
$LogFile, $UsnJrnl
1. 개념 정리
저널링( Jounaling )
• 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
> 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
> 문제가 발생하기 전에 “어떤 데이터를, 언제, 어디에 쓰는지” 기록
> 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원
트랜잭션( Transaction )이란?
"쪼갤 수 없는 업무 처리의 최소 단위”
• 파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등
• $LogFile: 메타데이터의 트랜잭션 저널 정보
* 메타데이터 : 파일의 속성 데이터들
$UsnJrnl
• 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
• 파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함
• 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB
- 하루 8시간 사용시 4~5일 정도의 데이터를 저장하고 있음 (컴퓨터마다 다르긴 함)
2. 실습
도구 : NTFS Log Tracker
https://sites.google.com/site/forensicnote/ntfs-log-tracker

위 링크로 들어가서 다운 받는다.

내 윈도우가 프로그램 실행을 차단했지만 그냥 실행한다. 찜찜하게...

FTK Imager 에서 root > Logfile 파일을 추출하고
root > Extend > UsnJrnl > J 파일을 MFT 폴더 안에 추출한다.

경로 맞춰서 파일을 넣어준 뒤 parse 한다.

설정도 위와 같이 해준다.
경로는 MFT 파일 아래로, 시간은 한국시간으로 설정한다.

추출한 데이터베이스 파일을 sqlite에서 열어준다.

Logfile, Timezone, UsnJrnl에 대한 데이터를 확인할 수 있다.
바로가기(.LNK)
1. 개념 정리
• '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\UserPinned\TaskBar
* 작업표시줄 고정
2. 실습
FTK Imager 이용하여 아래 두 경로 추출하기
• %UserProfile%\Desktop
• %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
도구 : LECmd
• https://ericzimmerman.github.io/#!index.md

FTK Imager 에서 Add Evidence Item > Logical drive > c 드라이브 선택
root > users > limsk(사용자 이름) > desktop 경로로 들어가서 바로가기 .lnk 확인
lnk_jumplist 폴더 생성 후 파일을 추출한다.
LECmd를 다운 받아서 lnk_jumplist 폴더에 넣은 뒤 실행한다.
- 오류
: LECmd 실행이 안 됨
- 해결 과정
: 더블클릭하면 창이 튕기는 오류. 관리자 권한 실행도 안 먹힘.

cmd 창에서 실행했더니 dll 파일이 없는 게 원인으로 파악됨
다운 받았던 폴더 안에 있는 파일들을 lnk_jumplist로 옮기고 실행하니 성공...
...

명령어 입력 - LECmd.exe -f "eclipse - 바로 가기.lnk"
생성시간, 수정시간, 파일 크기(=파일의 원본 크기) 등 확인 가능

상대 경로, 절대 경로 확인 가능
Jumplist
1. 개념 정리
점프리스트란?
• 최근 사용한 파일/폴더에 빠르게 접근하기 위한 구조
종류
• Automatic : 운영체제가 자동으로 남기는 항목
• Custom : 응용프로그램이 자체적으로 관리하는 항목
경로
• %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
• %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
2. 실습
FTK Imager 이용하여 추출
• %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
• %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
도구 : JumpList Explorer
• https://ericzimmerman.github.io/#!index.md

위 경로를 따라 들어가 두 폴더를 추출한다.
위치는 lnk_jumplist

Jumplist Explorer 다운 받은 후 lnk_jumplist 폴더에서 압축 해제 후 실행한다.
file > load jumplist 클릭 후 아까 추출한 파일들을 전부 로드한다.
* 로드할 때 오류 팝업이 뜨는데 무시하고 진행한다.
왼쪽 하단 리스트는 위의 점프리스트 중 하나를 클릭하면 나오는 그 안의 각각의 LNK를 의미한다.
> LNK가 점프리스트 안에 들어있다
LNK를 클릭하면 오른쪽 하단 리스트에 각 LNK에 대한 정보가 출력된다.
> 앞서 진행한 LNK 실습에서 얻은 정보와 동일한 정보를 볼 수 있다.