e_yejun
Jun_ : Pwn
e_yejun
전체 방문자
오늘
어제
  • 분류 전체보기 (240)
    • Profile (1)
    • Pwnable (54)
    • Reversing (14)
    • Network (7)
    • Forensic (10)
    • Embedded (4)
    • Android (2)
    • Web (18)
    • 알고리즘 (42)
    • 프로그래밍 (24)
    • 프로젝트 (6)
    • 1-day (7)
    • CTF (15)
    • 기타 (33)
    • 일기장 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Heap
  • dreamhack.io
  • x64
  • BOF
  • dvwa
  • wargame
  • 1-day
  • rev-basic
  • how2heap
  • X86

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
e_yejun

Jun_ : Pwn

Forensic

[Quiz & Practice] 디스크 논리 구조 (MFT)

2023. 11. 10. 03:00

1 Quiz.

자신의 환경에서 30번 MFT 엔트리 정보를 확인하세요.

 

VBR 구조체 → MFT의 시작 클러스터 확인

  • MFT의 시작 클러스터 : 0xC0000(786432)
  • MFT의 시작 섹터 : 786432*8 = 6291456

 

6291456 섹터로 가면 FILE0 시그니처가 보인다. 0xC0000000부터 MFT 시작 주소임을 알 수 있다.

 

 

30번 MFT 엔트리 시작 주소 : 0xC0007800

  • Fixup Array 시작 위치 : 0xC0007830
  • LSN ($Logfile Sequence Number) : 0x0000000E660E10FF
  • Sequence Number : 0x0001
  • 첫번째 속성의 오프셋 주소 : 0x0038
  • Flag : 0x0003
  • MFT 엔트리 크기 : 0x000001D8
  • 할당된 MFT 엔트리 크기 : 0x00000400
  • File Reference to Base Entry : 0x0000000000000000
  • MFT 엔트리 번호 : 0x0000001E(30)

 

 

2 Quiz.

자신의 환경에서 $STANDARD_INFO 속성을 가진 MFT 엔트리를 찾고 다음을 확인하세요.

 

$STANDARD_INFO 구조체

 

$STANDARD_INFORMATION은 Attribute Type ID가 0x00000010이고, 고정 크기로 가장 맨 앞에 위치한다. 파일의 생성 시간과 날짜 등을 담고 있다.

  • Non Resident Flag : 0x00
  • Attribute Type ID : 0x00000010
  • Length of Attribute : 0x00000060
  • Size of Content : 0x00000048
  • Offset of Content : 0x0018
  • MAC 시간 정보
    • Modified Time : 0x01D9FC87C921B833
    • Accessd Time : 0x01D9FC87C921B833
    • Creation Time : 0x01D754D2715A9337

 

 

3 Quiz.

자신의 환경에서 $DATA 속성을 가진 MFT 엔트리를 찾고 다음을 확인하세요.

 

$MFT(1) → $DATA(0x80)

  • Non Resident Flag : 0x01
  • Attribute Type ID : 0x00000080
  • Length of Attribute : 0x00000068(104)
  • Offset Runlist : 0x0040
  • Allocated Size of Attribute Content : 0x000000003EDC0000(1054605312)

  • Allocated Size of Attribute Content % {Cluster Size} : 0x0
  • Allocated Size of Attribute Content / {Cluster Size} : 0x3EDC0(257472)
  • Ending VCN of Runlist : 0x000000000003EDBF
  • Actual(Real) Size of Attribute Content : 0x00000000003EDC0000

 

 

4 Quiz.

자신의 환경에서 Non Resident 속성을 가진 $DATA 속성을 만들고 다음을 확인하세요.

 

1) nonResidentDataAttr.txt 파일 생성

 

 

2) “A” 문자 1000개 입력

 

3) FTK Imager 도구로 자신의 환경의 $MFT 파일 추출

 

4) nonResidentDataAttr.txt 파일의 MFT 엔트리 찾고 Cluster Run List 구조 분석

 

 

5) HxD 도구로 nonResidentDataAttr.txt 파일의 실제 데이터 시작 섹터 및 섹터 크기 확인

 

  • starting VCN of Runlist : 0x00
  • Ending VCN of Runlist : 0x00
  • Offset Runlist : 0x0040
  • Size : 0x0000042425D30141
  • Cluster Run List
    • Run List Header : 0x41
    • Run Length : 0x1 → 0x1
    • Run Offset : 0x4 → 0x042425D3
💡 실제 파일 데이터 시작 섹터 주소 = VBR 시작 섹터 주소 + (Run Offset * 8)
      - 실제 파일 데이터 섹터 크기 = (Run Length * 8)

 

  • 실제 파일 데이터 시작 섹터 주소 = 0x21212e98(555822744) 섹터

  • 실제 파일 데이터 섹터 크기 = 8

6) HxD 도구로 해당 파일 추출

 

 

Practice

자신의 환경에서 Resident 속성을 가진 $DATA 속성을 만들고 다음을 확인하세요.

 

1) ResidentDataAttr.txt 파일 생성

 

2) “A” 문자 10개 입력

 

3) FTK Imager 도구로 자신의 환경의 $MFT 파일 추출

 

4) ResidentDataAttr.txt 파일의 MFT 엔트리 확인

 

5) 실제 데이터 시작 Offset 및 Size 확인

  • Attribute Type ID : 0x00000080
  • Length of Attribute : 0x00000028
  • Non Resident Flag : 0x00
  • Size of Content : 0x0000000A
  • Offset of Content : 0x0018

 

6) 실제 데이터 추출

  • Attribute Type ID(0x80) + Offset of Content 주소부터 Size of Content만큼 추출하면 된다.

 

 

    'Forensic' 카테고리의 다른 글
    • [Quiz] 이벤트 로그 확인 및 구조체 분석
    • [Practice] NTFS Log Tracker ($LogFile, $UsnJrnl:$J, $MFT)
    • [Practice] USB 디스크 이미지 수집 실습
    • [Practice] 소프트웨어 쓰기 방지
    e_yejun
    e_yejun
    정리노트 •_•

    티스토리툴바