디지털포렌식과 친해지기
  • 디지털포렌식전문가 2급 실기와 친해지기(실기)
    • 1. 디지털 포렌식 실기 준비하기
      • 1. BIT, BYTE, 파일 그리고 Hash
      • 2. 섹터와 사본 이미지 생성
        • 2-1. FTK Imager 활용 물리이미징(Registry 쓰기방지)
        • 2-2. EnCase 활용 물리이미징(EnCase 쓰기방지)
        • (연습용) 가상디스크 만들기
      • 3. 파티션과 파일시스템 복구
        • 3-1) 파티션과 파티션 테이블
          • 3-1.1) GPT 헤더, 파티션 Entry 복구
        • 3-2) 파일시스템과 파일시스템 복구
        • 3-3) 파일시스템 복구 실전 연습
      • 4-1. 무료도구 활용 분석연습
        • 0) 이미지 획득 및 파일시스템 복구
        • 1) 저장매체와 파일시스템 분석
        • 2) 파일과 친해지기
        • 3-1) 파일 관련 분석 1
        • 3-2) 파일 관련 분석 2
        • 4-1) 윈도우 아티팩트1
        • 4-2) 윈도우 아티팩트2
        • 5) 주요 응용 프로그램 아티팩트
          • 5-1) Sqlite 열어보기
        • 6) 키워드 검색 / Base64 Decode
        • 7) bitlocker
        • 8) 가상머신(참고)
        • 무료도구 활용 분석연습 정리
      • 4-2. EnCase 활용 분석연습
        • 0) 이미지 획득 및 파일시스템 복구
        • 1) 저장매체와 파일시스템 분석
        • 2) 파일과 친해지기
        • 3-1) 파일 관련 분석 1
        • 3-2) 파일 관련 분석 2
        • 4-1) 윈도우 아티팩트1
        • 4-2) 윈도우 아티팩트2
        • 5) 주요 응용 프로그램 아티팩트
          • 5-1) Sqlite 열어보기
        • 6) 키워드 검색 / Base64 Decode
        • 7) bitlocker
        • 8) 가상머신(참고)
        • EnCase를 활용한 분석연습 정리
      • 5. 주관식 - 기본 절차 및 증거법 관련
        • (정리 중) 디지털 증거관련 주요 판례
      • 6. 답안 제출 및 보고서 작성
      • 7. 요령 및 주의사항
    • 2. 실력 다지기
      • 1. 문제 저장매체 만들고 풀어보기
        • 기초 연습문제1-분석해보기(무료도구)
        • 기초 연습문제1-분석해보기(EnCase)
      • 2. 파일시스템 복구 연습
      • 3. NTFS 로그 분석 연습
    • 3. 실전 연습 문제
      • 2018 실전 연습 문제
        • 2018 실전 연습 - 분석해보기(무료도구)
        • 2018 실전 연습 - 분석해보기(EnCase)
      • 2019 실전 연습 문제
        • 2019 실전 연습 - 분석해보기(무료도구)
        • 2019 실전 연습 - 분석해보기(EnCase)
      • 2020 실전 연습 문제
        • 2020 실전 연습 - 분석해보기(무료도구)
        • 2020 실전 연습 - 분석해보기(EnCase)
      • 2023 실전 연습 문제(종합유형)
        • 2023 실전 연습 - 분석해보기(무료도구)
        • 2023 실전 연습 - 분석해보기(EnCase)
      • 2024 실전 연습 문제
        • 2024 실전 연습 - 분석해보기(무료도구)
        • 2024 실전 연습 - 분석해보기(EnCase)
    • 4. 기출 유형
  • 디지털포렌식과 친해지기
    • 1. BIT의 저장
      • 0) 준비사항!
        • 0-1) 주요 분석 도구 간단 소개 및 설정
        • 0-2) Python 을 이용한 개발 환경 구성
        • 0-3) Python 소스로 실행파일 만들기
      • 1) BIT, BYTES와 파일 그리고 Hash
        • 1-1) Hex Viewer 만들기
        • 1-2) BIT의 저장(참고)
      • 2) 저장매체와 섹터 그리고 물리이미징
        • 2-1) 가상 디스크 설정
        • 2-2) 물리이미징(raw) 실습
        • 2-3) 물리이미징 수집 도구 만들기(기초)
      • 3) 파티션
        • 3-1) MBR 파티션 테이블 구조
        • 3-2) GPT(GUID Partition Table) 구조
        • 3-3) 파티션 분석 도구 만들기(기초)
      • 4) 파일시스템 기초 분석
        • 4-1) 파일시스템 직접 만들어 보기
        • 4-2) FAT32 분석
          • 4-2.1) FAT32 분석(BR, Directory Entry - 데이터의 접근)
          • 4-2.2) FAT32 분석 2(FAT, LFN, 삭제)
          • 4-2.3) FAT32 분석 3 (특징과 분석 도구)
        • 4-3) NTFS 기초 분석
          • 4-3.1) NTFS 기초 분석(NTFS BR과 DATA 영역)
          • 4-3.2) $MFT와 MFT Entry
          • 4-3.3) MFT Entry의 주요 속성1($SI,$FILE,$DATA)
          • 4-3.4) MFT Entry의 주요 속성2(인덱스1, resident/Nonresident)
          • 4-3.5) MFT Entry 찾기(인덱스2, $ATTRIBUTE_LIST)
          • 4-3.6) NTFS 에서 파일의 접근 정리
          • 4-3.7) NTFS 주요 메타데이터 파일
          • MFT Entry 분석용
      • 5) 파티션과 파일시스템
      • 6) 사본 이미지 생성(논리/물리이미징)
      • 7) 파일과 친해지기
Powered by GitBook
On this page
  1. 디지털포렌식과 친해지기
  2. 1. BIT의 저장
  3. 4) 파일시스템 기초 분석
  4. 4-3) NTFS 기초 분석

4-3.6) NTFS 에서 파일의 접근 정리

Previous4-3.5) MFT Entry 찾기(인덱스2, $ATTRIBUTE_LIST)Next4-3.7) NTFS 주요 메타데이터 파일

Last updated 11 months ago

아래 실습은 NTFS 가상디스크를 만들어서 분석하였습니다.

실습을 직접 따라 해보고 싶으신 경우 NTFS 분석 처음부터 따라오시는 것을 추천 드립니다. > 4-3) NTFS 기초 분석

지금까지 분석 한것을 빠르게 필요한것만 정리한번 해보도록 하겠습니다.

2-11) NTFS에서의 파일 접근 정리

  • NTFS에서 MFT Entry, 속성, 인덱스 등을 살펴봤는데 뭔가 구조가 많고 분석할게 너무 많습니다. 꼭 필요한 부분만 빠르게 정리 해보고 가보도록 합시다.

  1. 먼저 파티션에 접근하면 가장 먼저 보이는 것은 NTFS BR(Boot Record)입니다. - Bytes per sector : 00 02 -> 20 00(16진수) => 512 bytes - Cluster per Sector : 08 (8섹터의 1 클러스터 = 8 X 512 = 4,096 bytes) - Reserved Sector : 00 00 (대부분 할당 안함) - Total Sectors : FF 1F 03 00 00 00 00 00 -> 00 00 00 00 00 03 1F FF => 204,799 섹터 - $MFT Cluseter Number : 55 21 00 00 00 00 00 00 -> 00 00 00 00 00 00 21 55 => 8,533 - Volumn Serial : 64 54 77 E8 6D 77 E8 4C - MFT Entry Size : F6 => 1111 0110 -> 0000 1001 (1의 보수) + 1= 0000 1010(2의 보수) => 10 2의 10승 2102^{10}210= 1,024 bytes (2섹터) MFT Entry 크기 - Signature : 55 AA

    NTFS 의 Boot Record Backup 위치 : 파티션의 마지막 섹터번호 NTFS의 Total Sector 가 파티션의 크기보다 1 작은 이유 > 파티션 전체크기로 할 경우 클러스터가 모두 할당되면, 백업 NTFS BR레코드에 영향을 줄 수 있음

  2. BR분석으로 알 수 있는 주요 추가 내용 - 파일시스템 전체크기 : 전체 섹터 수X 512 = 204,799 X 512 = 104,857,088 bytes = 102,399 Kbytes - 전체 클러스터 수 : Total Sector / 클러스터 당 섹터 수 = 204,799 / 8 = 25,599 - 사용 데이터 크기 : 25,599 X 4,096(클러스터 크기) = 104,853,504 bytes = 102,396 Kbytes

  3. 주요 MFT Entry 사실 다 중요하지만 파일 접근에 가장 중요한 2가지만 먼저 살펴보도록 하겠습니다.

  4. 0번 MFT 가 왜 중요할까요!!? NTFS의 모든 파일에 대한 정보를 담고 있기 때문에 매우 중요한 파일입니다. NTFS BR에서 확인한 MFT 파일의 위치인 8,533 클러스터로 가서 살펴 봅시다. 128 (파티션 시작 위치) + 8,533(클러스터 번호) X 8 (클러스터당 섹터 수) = 68,392 섹터 기본적인 MFT Entry 구조는 MFT Entry Header와 여러가지 속성으로 되어 있고 마지막 End Marker (FF FF FF FF) 를 가지고 있습니다.

  5. 0번 MFT Entry 에는 $MFT 파일의 정보를 가집니다.

    MFT Entry 의 주요 속성을 살펴 봅시다.

    • $STANDARD_INFORMATION : 시간정보 등 정보

    • $FILE_NAME : 파일 이름, 부모 디렉토리 관련 정보

    • $DATA : 데이터 또는 데이터가 있는 클러스터 번호(runlist 방식)

  6. 5번 MFT Entry 에는 루트 디렉토리의 MFT Entry 가 있습니다. $MFT 파일 내에서 5번 엔트리로 이동 해봅시다. $MFT 시작위치에서 MFT Entry Number X 1,024(MFT Entry 크기) 오프셋 이동 68,392 섹터에서 5 X 1,024 = 5,120 오프셋 이동 먼저 파일명을 살펴보면 루트 디렉토리의 이름은 . 인것을 알 수 있습니다.

  7. $ATTRIBUTE_LIST 에서 $INDEX_ALLOCATION의 속성이 있는 MFT Entry 넘버를 찾아보니 112번 MFT Entry 임을 알려주고 있습니다.

    $MFT 파일 위치에서 112 X 1,024 = 114,688 오프셋 이동 해보겠습니다. 36번 클러스터에 Index Node Entries 가 위치하게 될 것입니다.

  8. 36번 클러스터로 가보겠습니다. 128(파티션 시작 위치) + 36 X 8(클러스터 당 섹터 수) = 416 섹터 해당 섹터부터 Index node entries가 위치합니다. 파일 내 검색이 쉬운 FTK Imager에서 한번 살펴보겠습니다. 루트디렉토리에 있는 test.txt 파일을 다시 찾아보도록 하겠습니다.

    Index Node Entry에 있는 해당 파일의 MFT Entry Number를 찾아보도록 하겠습니다.

    - File Reference Address : 27 00 00 00 00 00 / 01 00 => MFT Entry Number : 00 00 00 00 00 27 -> 39 번 / Sequence Number :01 00 > 39번 MFT Entry 가 test.txt 파일의 MFT Entry Number가 됩니다.

  9. $MFT(68,392)에서 39번 MFT Entry 로 가봅시다. 68,392 섹터에서 39 X 1,024 = 39,936 오프셋 이동

    속성을 분석하면 아래와 같은 항목을 확인할 수 있습니다. - $STAND_INFORMATION : 파일 속성, 시간 관련 정보 - $FILE_NAME : 파일 이름 - $DATA : 데이터 영역

  10. 데이터 영역이 어디 있는지 살펴 봅시다. test.txt의 경우 파일의 크기를 늘렸다가 줄였기 때문에 $DATA 속성이 Non-Resident 속성으로 되어 있기 때문에 runlist 구조로 되어 있습니다.

    runlist 구조를 분석하면 1,941 클러스터를 나타내기에 해당 클러스터로 이동해봅시다. 128 + 1,941 X 8 =15,656 섹터 입니다.

  • 파일 접근 과정 정리