Hoin's security

디지털 포렌식 스터디 $MFT개념 및 실습, $LogFile, $UsnJrnl 개념 및 실습 본문

스터디/디지털 포렌식

디지털 포렌식 스터디 $MFT개념 및 실습, $LogFile, $UsnJrnl 개념 및 실습

Hoin.s 2024. 5. 8. 13:01

 

 

[지금 무료] 기초부터 따라하는 디지털포렌식 | 훈지손 - 인프런

훈지손 | 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다., 초보자 눈높이에 딱 맞춘, 원리를 이해하는 디지털

www.inflearn.com

본 스터디는 위 강의를 학습한 후 작성된 블로그 입니다.

 

 

보통 앞에 $표시가 있으면 윈도우의 시스템 파일이라는 뜻.

 

$MFT: : 윈도우의 전반적인 구조, 윈도우 파일과 폴더 디렉토리 구조를 알 수 있는 아티팩트.

$LogFile, $UsnJrnl: : 유저가 변경하고 생성, 수정, 삭제 등 기록들을 전부 담고 있는 아티팩트. 이것들을 통해 유저의 행위를 세세하게 분석 가능.


$MFT (Mater File Table)

• NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조

-> windows가 사용하는 파일 시스템
• 하나의 파일당 하나의 MFT 엔트리를 가짐
• $MFT란 MFT 엔트리들의 집합

 

왜 필요?

: 각 데이터나 파일이 어디에 어떻게 저장되어있는지 알 수 있음.

MFT 엔트리

• 파일의 이름, 생성·수정·변경시간, 크기, 속성 등을 가지고 있음
• 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음

 

 

FTK Imager를 이용
• [root]\$MFT 추출

MFTExplorer 다운로드
• https://ericzimmerman.github.io/#!index.md

 

MDwiki

 

ericzimmerman.github.io

위 링크에서 도구 다운 받기.

mft검색하고 mft explorer 를 다운받아준다. 강의에서는 0.5.1.0 버전을 다운받으라고 했지만 버전이 업데이트 되어있는거 같다.

다운받고 압축해제 한 뒤 MFTExplorer.exe를 눌러 실행시킨다.

 

오.. 예를 누르면

Microsoft Windows Desktop Runtime 가 다운로드 되고 이를 실행시켜준다.

 

설치가 되었으니 다시 MFTExplorer.exe를 눌러 실행시킨다.

그럼 실행이 된다. (다행

FTK 이미저를 켜주고 Logical Drive로 생성해준다.

드라이브는 C로 해준다.

Scanning MFT

: MFT를 스캐닝해서 폴더 구조를 파악한다는 뜻.

- why?

: 이미지 안에 MFT라는 파일을 분석한 것이기 때문

root안에 파일을 보면 MET이라는 파일이 있다. 이걸 추출해줄 것.

바탕화면에 MFT라는 폴더 하나 만들어주고 여기에 추출해준다.

쨘.

MFT 익스플로어에서 File -> Load MFT를 눌러 추출한 MFT 파일을 열어준다.

매우 오래걸린다..

 

원래는 이렇게 구조화 잘된 결과가 보여야한다.

 

좋은점

: ADS라는 윈도우에서 지원하는 특별 기능인데 이것도 분석이 되고 헥스값도 바로 볼 수 있으며 스탠다드 인포, 파일, 네임 등 MFT 엔트리에서 얻을 수 있는 정보들을 얻을 수 있다. 


$LogFile,

저널링(Jounaling)
• 데이터 변경을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용
• 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
• 문제가 발생하기 전에 “어떤 데이터를, 언제, 어디에 쓰는지” 기록
• 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원

파일 시스템이 해주는 복구 기능

디스크의 영역을 유저가 변경할텐게 그 전에 행위를 먼저 기록해두는것. (데이터가 온전히 남도록 하기 위함)

트랜잭션(Transaction)
•"쪼갤 수 없는 업무 처리의 최소 단위”
• 파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등
• $LogFile: 메타데이터의 트랜잭션 저널 정보

메타데이터: 파일이 가지고 있는 속성 데이터 - 생성시간, 수정시간 등

$UsnJrnl

• 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일

• 파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함

• 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB
• 하루 8시간 사용시 4~5일 정도의 데이터를 저장하고 있음

 

 

• FTK Imager를 이용
• [root]\$LogFile 추출
• [root]\$Extend\$UnnJrnl\$J 추출

• NTFS Log Tracker 다운로드
• https://sites.google.com/site/forensicnote/ntfs-log-tracker

 

blueangel's ForensicNote - NTFS Log Tracker

NTFS Log Tracker v1.71

sites.google.com

위 링크로 접속해서 스크롤을 쭉 내리다 보면 파일들이 보이는데 NTFS Log Tracker v1.71.zip을 다운받아 준다.

(CMD 버전 아님!!)

 

다운받고 실행해준다.

FTK 이미저에서 아까 MFT 파일을 추출한것과 동일하게 로그 파일을 추출해준다.

root -> Extend -> UsnJrnl ->j 추출.

 총 2개의 파일을 MFT 폴더에 추출해준다.

 

각각의 파일을 NTFS Log Tracker 항목에 알맞게 넣어주고 result라는 이름으로 MFT 폴더에 저장해준다.

 

잘 생성되었다.

 

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.2) for Windows: Free code signing provided by SignPath.io, certificate by SignPath Foundation. Windows PortableApp Note - If for any reason the standard Windows release does n

sqlitebrowser.org

위와 같은 DB 브라우저를 통해 열어준다. 없다면 위 링크로 접속하여 사양에 맞는 걸 다운로드 해준다. 

나는 기본 세팅 그대로 설치해주었다.

result 파일을 넣어주면 위와같이 뜬다.

원하는 파일을 원하는 기준으로 볼 때 유용.