Security/Forensics

[Artifact] NTFS - $MFT

bonggang 2019. 11. 13. 04:31

MFT Entry Header


Content offset size  
Signature 0x00 4 FILE
Offset of Fixup Array 0x04 2 48(0x30)
Count of Fixup Values 0x06 2 3(0x03)
$LogFile Sequence Number(LSN) 0x08 8  
Sequence Value 0x10 2  
Hard Link Count 0x12 2 1
Offset to First Attribute 0x14 2 56(0x38)
Flags 0x16 2 0x01(MFT Entry 사용중)
0x02(MFT Entry = directory)
Used Size of MFT Entry 0x18 4  
Allocated Size of MFT Entry 0x1C 4 1024(0x0400)
File Reference to Base MFT Entry 0x20 8  
Next Attribute ID 0x28 2  
Align to 4B boundary 0x2A 2  
Number of this MFT Entry 0x2C 4  

 

 

 

MFT Attribute


MFT Entry Header Attr Header Attr Content Attr Header Attr Content END Marker
(0xFFFFFFFF)

 

- MFT Entry는 MFT Entry Header와 여러 개의 Attribute로 이루어진다.

 

 

Attribute Header

Content offset size  
Attribute Type ID 0x00 4  
Length of Attribute 0x04 4  
Non-Resident Flag 0x08 1 0(resident)
1(non-resident)
Length of Name 0x09 1  
Offset to Name 0x10 2  
Flags 0x12 2 1
Attribute Identifier 0x14 2  

 

 

 

Attribute Type ID

속성 ID 이름 내용
0x10 $STANDARD_INFORMATION 최근 접근/생성 시간, 소유자, 보안 ID와 같은 일반적 정보
0x20 $ATTRIBUTE_LIST 속성 리스트 정보
0x30 $FILE_NAME 파일 이름(유니코드 형식)
0x40 $VOLUME_VERSION 볼륨 정보, 오직 1.2버전에만 존재
0x40 $OBJECT_ID 16bytes로 이루어진 파일이나 디렉토리 고유 값
0x50 $SECURITY_DESCRIPTOR 파일의 접근 제어와 보안 속성
0x60 $VOLUME_NAME 볼륨 이름과 관련 정보를 소유
0x70 $VOLUME_INFORMATION 파일시스템의 버전과 여러 Flags
0x80 $DATA 파일 내용
0x90 $INDEX_ROOT 인덱스 트리의 루트 노드
0xA0 $INDEX_ALLOCATION 인덱스 트리와 연결된 노드
0xB0 $BITMAP 할당 정보 관리
0xC0 $SYMBOLIC_LINK Soft Link 정보(버전 1.2에만 존재)
0xC0 $REPARSE_POINT Reparse 위치 정보
0xD0 $EA_INFORMATION  
0xE0 $EA  
0x0100 $LOGGED_UTILITY_STREAM 암호화된 속성 정보 및 Key 소유

 

 

Resident 항목

Content offset size
Size of Content 0x10 4
Offset to Content 0x14 2
Indexed Flag 0x16 1
Padding 0x17 1

 

 

 

Non-Resident 항목

Content offset size
Startin VCN of the runlist 0x10 8
Ending VCN of the runlist 0x18 8
Offset to the runlist 0x20 2
Compression unit size 0x22 2
Padding 0x24 4
Allocated Size of Attribute content 0x28 8
Real Size of Attribute content 0x30 8
Initialized Size of Attribute Content 0x38 8

 

$STANDARD_INFORMATION

Content offset size  
      속성 헤더(공통 헤더+Resident 속성 헤더)
Creation Time 0x00 8 파일 생성 시간
Modified Time 0x08 8 파일 마지막 수정 시간
MFT Modified Time 0x10 8 MFT 마지막 수정 시간
Last Accessed Time 0x18 8 파일 마지막 접근 시간
Flags 0x20 4 0x0001(읽기 전용), 0x0002(숨김), 0x0004(시스템), 0x0020(Archive), 0x0040(장치), 0x0080(일반), 0x0100(임시), 0x0200(Sparse), 0x0400(Reparse Point), 0x0800(압축됨), 0x1000(오프라인), 0x4000(압축)
Maximum number of Version 0x24 4  
Version Number 0x28 4  
Class ID 0x2C 4  
Owner ID 0x30 4  
Security ID 0x34 4  
Quota Charged 0x38 8  
Update Sequence Number(UCN) 0x40 8  

 

 

 

$FILE_NAME

Content offset size  
      속성 헤더(공통 헤더+Resident 속성 헤더)
Parent File Refernce Address 0x00 8 부모 디렉토리 위치
Creation Time 0x08 8 파일 생성 시간
Modified Time 0x10 8 파일 마지막 수정 시간
MFT Modified Time 0x18 8 MFT 마지막 수정 시간
Accessed Time 0x20 8 파일 마지막 접근 시간
파일 할당 크기 0x28 8  
파일 실제 크기 0x30 8  
Flag 0x38 4  
Reparse Value 0x3C 4  
Length of name 0x40 1  
Namespace 0x41 1  
Name 0x42   유니코드(utf-16)로 인코딩 된 파일 이름

 

 

 

 

$DATA

Content offset size  
      속성 헤더(공통 헤더+Resident 속성 헤더)
실제 데이터 0x00 가변 실제 데이터