-
파일시스템 정리 (2)CERT/Forensic 2019. 7. 1. 16:11
NTFS ?
- Windows에서 사용하는 파일시스템
- USN Journal
- ADS (Alternate Data Stream)
- Sparse 파일
- 파일 압축
- VSS (Volume Shadow Copy Service)
- 유니코드 지원
- 동적 배드 클러스터 재할당
NTFS 구조
- 파일시스템은 기본적으로 메타영역과 데이터 영역으로 구분
- NTFS의 경우 메타영역은 VBR, MFT이며 데이터 영역은 데이터 영역
VBR (Volume Boot Record) ?
- NTFS 구조에서 가장 앞부분에 위치
- 고정된 크기가 아니라 클러스터 크기에 의존 (512Byte, 1KB, 2KB, 4KB)
VBR 구조
- 부트섹터 + 추가적인 VBR 영역
- VBR의 첫 번째 섹터는 부트섹터
- 추가적인 VBR 영역(NT Loader 정보 + Boot Strap)
VBR의 부트섹터
Length
Arrange
Name
Description
3
0x00 – 0x02
Jump Boot Code
부트 코드로 점프하기 위한 명령어
8
0x03 – 0x0A
OEM ID
OEM ID(NTFS)
2
0x0B – 0x0C
Byte Per Sector
섹터 당 바이트 수 (512, 0x200)
1
0x0D – 0x0D
Sector Per Cluster
클러스터 당 섹터 수 (8, 0x8)
2
0x0E – 0x0F
Reserved Sectors
예약된 영역, 항상 0
5
0x10 – 0x14
Unused
1
0x15 – 0x15
Media Descriptor
0xF8 이면 고정식 디스크
18
0x16 – 0x27
Unused
8
0x28 – 0x2F
Total Sectors
해당 볼륨이 가지는 총 섹터 수
8
0x30 – 0x37
Start Cluster for $MFT
$MFT의 LBA 주소 (클러스터 단위)
8
0x38 – 0x3F
Start Cluster for $MFTMirr
$MFTMirr의 LBA 주소(클러스터 단위)
1
0x40 – 0x40
Clusters Per MFT Entry
MFT Entry 크기
3
0x41 – 0x43
Unused
1
0x44 – 0x44
Clusters Per Index Buffer
인덱스 버퍼의 크기
3
0x45 – 0x47
Unused
8
0x48 – 0x4F
Volume Serial Number
볼륨 시리얼 번호
4
0x50 – 0x53
Unused
VBR 주소 & MFT 주소 찾기
- MBR의 LBA 시작 주소 위치: 00 08 00 00 = 0x00000800
- VBA의 시작 주소: LBA 시작 위치 * 섹터의 크기 (섹터의 크기:512Byte)
- 0x800 * 0x200(512byte) = 0x100000 (VBA 시작 주소)
- Byte Per Sector (섹터당 바이트 수) : 00 02 = 0x0200 = 512Byte
- Sector per Cluster (클러스터당 섹터 수) : 08 = 0x08 = 8
- 클러스터의 크기 = 8 (Sector per Cluster) * 512 (Byte per sector) = 4096 Byte
- Total Sector = FF 1F CF 03 00 00 00 00 = 0x0000000000031FFF
- $MFT LBA = 55 21 00 00 00 00 00 00 = 0x0000000000002155 = 0x2155
- 0x2155 * 0x1000 (4096 Byte) = 0x2155000 = MFT 시작 주소
'CERT > Forensic' 카테고리의 다른 글
파일시스템 정리 (1) (0) 2019.06.28 윈도우 기반 VSC 접근 및 분석 (1) (0) 2019.03.07 dd를 활용한 디스크 이미지 덤프 및 분석환경 구성 (Linux 환경 테스트) (0) 2019.02.22 FTK Imager 디스크 이미지 (0) 2019.02.13 댓글