NTFS 파일 시스템 분석

RINM·2023년 3월 5일
0

디지털 포렌식 이론

목록 보기
10/10

1. NTFS 파일 시스템의 구조

  • Boot Sector (VBR): 파티션 정보
  • Master File Table(MFT): 파일 및 디렉토리 관리를 위한 정보
  • Data: 실제 데이터 저장

2. VBR 구조

  • 파일 시스템 시그니처: Jump boot code+OEM Name
  • BPS: 볼륨에 할당된 섹터크기 => 0x200(512byte)으로 고정
  • SP: BPS*SP=해당 볼륨에서 사용하는 사용자지정 클러스터(파일 입출력 단위) 크기/보통 8개
  • Total Sectors: 해당 볼륨에서 사용하는 총 섹터 수=MBR에 기록된 섹터 수 -1
  • Start Cluster for MFT: MFT 시작 주소
  • Start Cluster for MFT Mirr: MFT Mirr(MFT의 백업본) 시작 주소\
  • Serial Number(8Byte): 해당 볼륨 ID

3. MFT 추적

  • MFT 영역 = VBR 시작주소 + (Start MFT * SP)
  • 실제 MFT 데이터 영역은 예약된 MFT 영역 이후에 저장
  • 실제 데이터 영역 = MFT 영역 + 70 (= 0x23 * 2)

4. MFT 구성

  • 24개(0~23)의 entry

  • MFT 한 개의 영역은 1024 Byte(2sector)로 구성

  • 0x10: $Standard_Infromation (SI) 시간 정보(생성/접근/수정)

  • 0x30: $File_Name(FN) 파일 이름 & 파일 이동 /수정 등의 시간 정보

  • 0x80: $DATA 파일 내용

5. MFT 헤더

  • 플래그: Bitmap 속성

6. $Standard Information 구조

  • 속성 정보(4Byte): 0x10 00 00 00
  • 전체 속성 길이(4Byte)
  • 시간 정보(8Byte씩 4개)

7. $File_name 구조

  • 속성 정보(4Byte): 0x30 00 00 00
  • 전체 속성 길이(4Byte)
  • 시간 정보(8Byte씩 4개)
  • 파일 이름(8byte)

8. $DATA 구조

  • 속성 정보(4Byte): 0x80 00 00 00
  • 전체 속성 길이(4Byte)

실습

  • 보유한 NTFS 파일 시스템 기반의 E01파일을 마운트 후 Disk Editor로 분석

1. MBR

  • VBR 주소: 0x0800 = 2048 sector
  • Total sector: 0x0FA000=1024000

2. VBR

  • Sector #2048 (0x800)
  • SP: 8
  • Total sector: 0x0F9FFF=1023999
  • Start Cluster for MFT: 0xA6AA
  • Serial Number: 0x922CFFDB 2CFFB875 (*32-bit 일때는 좌측 4Byte만)

3. MFT

MFT = VBR 시작주소 + (Start MFT SP) = 2048 + (0xA6AA 8) = 2048 + 42666 *8 = 343376

  • Bitmap: 0x01 => 삭제되지 않은 파일

1) $Standard_Information

-시간정보: 생성시간/수정시간/MNT시간/접근 시간

2) $File_name

3) $Data

4. 실제 데이터 영역

  • Root dir 시작 = MFT 영역 시작 + 70 = 343376 + 70 = 343446

  • 파일 속성(0x03): 숨김파일 / 시스템 파일 등

5. 파일 정보 분석

1) 파일 정보

  • 파일 이름: Reload.xml
  • 시간정보: Standard_Information의 수정시간 & MFT 시간만 변화=> 수정됨

2) 파일 위치

*Resident & Non-Resident
- Resident: MFT엔트리 내부(1024Byte)에 모든 내용을 저장
- Non-Resident: 새로운 클러스터에 데이터 저장/보통 데이터 크기 700Byte 이상

  • Non-Resident => 클러스터 런
  • 클러스터 런: 0x 21 01 30 09 00 00 00 00
  • 할당된 클러스터 크기: 0x01
  • 클러스터 시작 주소: 0x0930

*클러스터 런 분석
- 첫 바이트 중 앞부분: 클러스터 시작 주소 (Offset)
- 첫 바이트 중 뒷부분: 할당된 클러스터 크기 (size)

  • 주소: OffsetSP + VBR = 0x09308 + 2048 = 2352*8 + 2048 = 20864

6. 삭제된 파일

  • 파일 이름: Recovery.txt

  • Flag: 0x00 => 삭제됨

  • 시간 정보

  • 2016.11.20 15:49

  • 모든 시간 정보 동일 => 삭제된 파일

0개의 댓글