디지털포렌식과 친해지기
  • 디지털포렌식전문가 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. 파일시스템 기본 이론
  • 1-1) NTFS 구조
  • 1-2) FAT32 구조
  • 1-3) exFAT 구조
  • 2. VBR의 복사본을 이용한 파일시스템 복구
  • 2-1) 기본 개념
  • 2-2) NTFS 파일시스템 복구 연습
  • 2-3) FAT32 파일시스템 복구 연습
  • 2-4) 파티션이 있는 파일시스템 복구
  • 3. 정리
  • + @(시험 외 공부용)
  1. 디지털포렌식전문가 2급 실기와 친해지기(실기)
  2. 1. 디지털 포렌식 실기 준비하기
  3. 3. 파티션과 파일시스템 복구

3-2) 파일시스템과 파일시스템 복구

Previous3-1.1) GPT 헤더, 파티션 Entry 복구Next3-3) 파일시스템 복구 실전 연습

Last updated 10 days ago

파일시스템 분석은 모든 시험에서 항상 출제되는 문제로 필수로 알아야 할 항목입니다.(다, 배점은 많이 낮아졌습니다.) 또한 파일시스템 복구를 하지 못하면, 뒤에 문제를 해결할 수 없기 때문에 합격할 수 없습니다. 따라서 무조건 연습하고, 중요한 용어는 확실하게 이해해야 합니다. (답안작성에 활용 됩니다.)

1. 파일시스템 기본 이론

  • 시험에서는 주로 NTFS, FAT32, exFAT 정도가 나오고 있습니다. 다만 포렌식 도구에서 대부분 잘 분석해주고 시험에서 요구하는 부분은 도구의 어떤 부분을 살펴봐야 하는지 연습이 되어야 합니다.

  • 파일시스템의 시작 위치는 항상 파티션의 시작 위치입니다. 따라서 파티션의 위치로 이동했는데 파일시스템의 시작 데이터(BR)이 훼손되어 있으면, 파일 구조를 확인할 수 없습니다. 즉, 파티션이 없거나 훼손되어 있는 것입니다.

  • 연습용 이미지

  • FTK Imager에서 "파일시스템 연습용.zip" 압축 해제 후 이미지를 열어봅시다.

1-1) NTFS 구조

  • NTFS Boot Record 기본 구조

    - Bytes Per Sector : 00 02 -> 02 00(16진수) => 512 (10진수) - Sector per Cluster : 08 => 8섹터 (1클러스터에 1섹터: 8 X 512 = 4,096 bytes) - Total Sector 32 : FF 8F 01 00 -> 00 01 8F FF => 102,399 섹터 - Serial Number : 7D AA 9A 08 8F FF 79 19 => 19 79 FF 8F 08 9A AA 7D

  • NTFS의 경우 복사본 BR은 해당 파티션, 저장매체의 맨 마지막 섹터에 위치합니다.

  • 기존에 시험에 출제된 문제 유형으로는 아래와 같이 나옵니다.

    1. 클러스터 크기를 구하라.

    2. 전체 가용 용량을 구하라

    3. 볼륨시리얼을 구하라

  • 이런 문제는 포렌식 도구로 확인이 가능합니다.

    • FTK Imager - 클러스터 크기 : Cluster Size - 가용용량 : Cluster Count X Cluster Size - 전체 클러스터 수 : Cluster Count - Volume Serial Number : Volume Serial Number

    • EnCase - 클러스터 크기 : Sectors per cluster X Bytes per sector = 8 X 512 = 4,096 - 가용용량 : Total Capacity - 전체 클러스터 수 : Total Clusters - Volume Serial Number : Serial Number

1-2) FAT32 구조

  • FAT32 Boot Record기본 구조 아래와 같으나 포렌식 도구가 분석해 주기 때문에 이런게 있다 정도로만 한번만 보시면 됩니다.

    - Bytes Per Sector : 00 02 -> 02 00(16진수) => 512 (10진수) - Sector per Cluster : 01 => 1섹터 (1클러스터에 1섹터: 1 X 512 = 512 bytes) - Total Sector 32 : 00 90 01 00 -> 00 01 90 00 => 102,400 섹터 - Backup Boot Sec : 06 (백업본 위치 6번 섹터) - Volume ID : 93 B1 67 76 -> 76 67 B1 93

  • FAT32의 경우 복사본 BR은 6번 섹터에 위치합니다.

  • 기존에 시험에 출제된 문제 유형으로는 아래와 같이 나옵니다.

    1. 클러스터 크기를 구하라.

    2. 전체 가용 용량을 구하라

    3. 볼륨시리얼을 구하라

  • 이런 문제는 포렌식 도구로 확인이 가능합니다.

    • FTK Imager - 클러스터 크기 : Cluster Size - 가용용량 : Cluster Count X Cluster Size - 전체 클러스터 수 : Cluster Count - Volume Serial Number : Volume Serial Number

    • EnCase - 클러스터 크기 : Sectors per cluster X Bytes per sector - 가용용량 : Total Capacity - 전체 클러스터 수 : Total Clusters - Volume Serial Number : Serial Number

1-3) exFAT 구조

  • exFAT의 경우 FAT32와 동일 한 방식으로 FTK Imager, EnCase 등을 이용하면 됩니다. 구조 분석의 경우 참고로만 살펴보시길 바랍니다.

exFAT 기본 구조
  • exFAT 기본 구조

    - OEM Name : 파일 시스템 생성자 이름 (ex: EXFAT ) - Total Sector : 전체 섹터 수 - FAT First Sector : FAT 시작 섹터 - FAT Total Sectors : FAT 전체 크기 - Reserved Sectors : 예약영역 - Root Cluster : 루트 클러스터 위치 - Serial Number : 볼륨시리얼 넘버 - Bytes per Sector shift(섹터 당 바이트 수) : [예] 9 -> 2의 9승 = 512 bytes - Sectors per Cluster(클러스터 당 섹터 수) : [예] 3 -> 2의 3승 = 8 섹터 => 4,096 Bytes

  • exFAT 구조 분석

    - 예약영역 : 00 01 00 00 -> 00 00 01 00 = 256 섹터 - 루트 클러스터 : 05 00 00 00 -> 00 00 00 05 = 5번 클러스터 - 클러스터 크기 : 03 -> 2의 3승 = 8 섹터 = 4,096 bytes 예약영역 + {루트 클러스터- 2(미사용 클러스터 2개) X 클러스터 당 섹터 수}=> 루트 디렉토리 > 256 + (5-2) X 8= 256 + 24 = 280 섹터

사실 시험을 위해서 파일시스템의 상세한 구조를 모두 외우거나 확인 하는 것 보다는 도구의 사용법이나 시험에서 주로 나오는 부분과 용어 위주로 정확히 알고 있으면 됩니다. 파일시스템의 시리얼넘버와 USB의 시리얼넘어 차이, 전체용량과 가용용량의 차이 등 몇 가지 주요 용어만 확실하게 정리하면 됩니다. 다만 이러한 부분도 추후에 연습문제를 풀다보면 반복적으로 확인하기에 금방 익숙해 질 것입니다. 처음 공부할 때는 이런 식으로 보는구나 정도로만 보고 넘어갑니다.

2. VBR의 복사본을 이용한 파일시스템 복구

  • 시험에 주로 나오는 파일시스템 복구 문제는 기본적으로 파일시스템의 VBR영역을 훼손하게 됩니다. 이를 복사본 VBR을 이용하여 복원하게 되면 정상적으로 파일시스템 복구합니다.

  • 복구 방법은 여러가지가 있으나, FTK Imager를 이용하여 최대한 쉽게 복구하는 연습을 해보도록 하겠습니다.

  • 기본적으로 NTFS의 BR복사본은 파티션, 저장매체 마지막 섹터에 위치합니다. 이를 이용한 연습을 해보도록 하겠습니다.

2-1) 기본 개념

  • 먼저 VBR은 Volume Boot Record 또는 BR(Boot Record) 라고 하며 파일시스템의 가장 처음에 위치하고 있습니다. 이 VBR은 파일시스템의 크기가 얼마인지, 몇 번 섹터부터 파일을 저장 하는지에 대한 정보를 가지고 있는 가장 중요한 부분입니다.

  • VBR은 매우 중요한 부분이기에 VBR을 복사본을 만들어 둘 필요가 있습니다. FAT32 파일 시스템의 경우 6번 섹터, exFAT 파일 시스템의 경우 12번 섹터, NTFS 파일 시스템의 파티션의 마지막 섹터에 저장 합니다. 이외에도 Ext4와 같은 파일시스템 등이 있으나, 시험에는 주로 FAT32, NTFS가 출제되고 있습니다.

  • 단순하게 생각한다면 원래 VBR이 위치해야 할 0번 섹터에 문제가 있다면, 복사본을 복사하여 덮어써 복구가 가능한 것입니다.

  • 연습 이미지 다운로드 - 다운로드 후 압축 해제 후 아래 실습에 사용하시길 바랍니다.

2-2) NTFS 파일시스템 복구 연습

  1. FTK Imager를 이용하여 NTFS.001 파일을 열어보도록 하겠습니다.

    우선 파티션 넘버가 보이긴 하나, 용량도 그렇고 내용을 확인하려고 하면 아래와 같이 에러가 발생합니다. 이 경우 파일시스템 훼손된 것으로 보면 됩니다.

  2. 추가로 0번 섹터를 보면 상단이 비어있고 조금 내려서 1번 섹터를 보면 BOOTMGR 이란 글자가 보이면 0번 섹터가 사실상 NTFS BR위치에 해당합니다. 즉, NTFS BR이 훼손되어 복원이 필요한 상황입니다.

  3. 그럼 이제 NTFS의 BR의 복사본의 위치를 알고, 0번 섹터에 복사본을 붙여넣으면 되는 것입니다. 먼저 해당 저장매체의 가장 마지막으로 이동해보도록 하겠습니다. (용량이 큰 경우 스크롤만 내려서는 마지막 까지 안가는 경우가 있으니 PageDown 버튼을 활용하여 끝 지 내려봅니다.) 해당 위치로 이동하면 NTFS가 보이고, 마지막에 55 AA가 보입니다. 즉, BR의 복사본이 위치 합니다. 섹터 번호는 163839번 임을 알게 되었습니다.

  4. 이제 HxD를 이용하여 복원을 해보도록 하겠습니다. 도구 - 디스크 이미지 열기를 통해 NTFS.001을 열어보도록 하겠습니다. 디스크 이미지로 열어야 섹터 단위로 이동이 가능합니다.

    맨 마지막으로 가면 163839섹터가 보이고, 이 부분을 복사하여 봅시다.

  5. 복사한 영역을 0번 섹터의 가장 첫 부분에 우클릭 - 붙여넣기 쓰기 하여 덮어쓰도록 합시다. 해당 이미지를 저장합니다.

  6. 이 후 FTK Imager를 이용하여 NTFS.001을 불러오면 아래와 같이 파일 구조를 확인할 수 있습니다.

  7. 이렇게 내부 구조를 볼 수 있을 경우 이후에 포렌식 분석 도구들로 분석을 할 수 있습니다.

2-3) FAT32 파일시스템 복구 연습

  1. FTK Imager를 이용하여 FAT32.001 파일을 열어보도록 하겠습니다. 파일시스템이 훼손되어 있습니다.

  2. FAT32의 경우 파일시스템의 6번 섹터에 복사본 BR이 위치합니다. (exFAT의 경우 12번 섹터에 복사본 BR이 위치합니다.) 이 6번 섹터의 데이터를 0번 섹터로 덮어쓰면 복구가 되는 것입니다.

  3. HxD를 이용하여 도구 - 디스크 이미지 열기를 통해 FAT32.001을 열어보도록 하겠습니다. 6번 섹터를 복사하여 봅시다.

    0번 섹터에 가장 앞 부분에서 우클릭 - 붙여넣기 쓰기 한 뒤 저장하여 봅시다.

  4. 이 후 FTK Imager를 이용하여 FAT32.001을 불러오면 아래와 같이 파일 구조를 확인할 수 있습니다.

2-4) 파티션이 있는 파일시스템 복구

MBR(0번 섹터) 에서 얻을 수 있는 정보

  • MBR(Master Boot Record)라 함은 가장 처음 위치(0번 섹터)에 파티션이 몇 번 섹터에 위치 하는지, 크기는 몇 인지를 저장하고 있습니다. 이 파티션 범위에 파일시스템이 구성됩니다. (파티션 복구 = 파일 시스템 복구 : 파티션이나, 파일시스템은 거의 같은 의미로 사용되나 파티션은 구분의 목적, 파일시스템은 실제 데이터가 구성된 차이점이 있으나 혼용에서 사용하기에 동일한 용어로 이해하시는 것이 편리할 것입니다.)

  • 2개의 파티션이 있고 두 파티션이 모두 VBR이 훼손 되었다면, 아래 그림과 같이 파일시스템의 종류에 따라서 VBR의 복사본을 찾고, 그것을 정상 VBR 위치에 덮어쓴다면 복구가 가능하게 되는 것입니다.

  • 복구 연습을 해보도록 하겠습니다.

  1. 파티션 별로 파일시스템을 복구 하기 위해선 파티션 마다 시작 위치와, 복사본의 위치를 알아야 할 필요가 있습니다. FTK Imager를 이용하여 쉽게 분석할 수 있습니다. 먼저 FTK Imager를 이용하여 "파티션2개 훼손.001" 이미지 파일을 열어보도록 하겠습니다. 파티션 1, 파티션 2번에 대해서 파일시스템의 파일시스템이 훼손되어 있어 보이지 않고 있습니다.

  2. 파티션 1번을 선택하면 파일시스템 시작 위치 섹터 번호를 확인할 수 있습니다. 그리고 파티션 1번의 0번 섹터에 FAT32 또는 NTFS 파일시스템의 BR이 없기 때문에 내부 구조가 보이지 않는 상태인 것 입니다.

  3. 우리는 FAT32의 경우 6번 섹터, 마지막 섹터에는 NTFS의 복사본이 있는 것을 알고 있습니다. 아직은 우리는 파티션 1번이 어떤 파일시스템인지 알 수 없습니다. 따라서 6번 섹터, 그리고 마지막 섹터를 확인해서 복사본이 위치하는 것을 보고 어떤 파일시스템인지 알 수 있는 것입니다. 그래서 128 + 6 = 134번 섹터를 확인해보도록 합니다. FAT32의 복사본이 있는 것을 알 수 있습니다.

    즉, 파티션 1번의 134번 섹터의 값을 -> 128번 섹터에 덮어 쓸 수 있습니다.

  4. 파티션2 또한 동일하게 살펴보도록 하겠습니다.

    • 파티션 2번이 FAT32라면, 6번 섹터에 복사본이 있겠지만, 6번 섹터를 살펴보면 FAT32, NTFS의 BR이 없는 것을 알 수 있습니다.

    • NTFS 라면 파티션의 가장 마지막 섹터에 NTFS의 복사본 BR이 위치합니다. 즉, 마지막섹터 327807-> 163968 섹터에 복사, 붙여넣기 하면 복원되는 것입니다.

  5. 정리하면 아래와 같습니다. HxD를 이용하여 저장하도록 하겠습니다. - 파티션 1번은 134번 -> 128번

    - 파티션 2번은 327807 -> 163968번

  6. 위의 파일시스템의 VBR영역을 정상적으로 복구 한다면 아래와 같이 내용을 확인할 수 있습니다.

3. 정리

  • 파일시스템 복구는 결국 파일시스템의 시작, 복사본의 섹터번호를 정확하게 알면 복원이 가능합니다. 추가적인 복구 방법으로 BR의 복사본을 검색하는 방법도 있습니다. 추후에 검색 방법을 이용한 방법도 확인해보도록 하겠습니다.

  • 파일시스템 복구를 위해 파티션 엔트리 등을 계산하여 섹터 번호를 확인하는 방법도 있으나, 도구를 이용하여 쉽고 빠르게 접근하여 봅시다.

  • 앞으로 연습 문제에는 항상 파일시스템 복구 문제가 포함될 것이니 반복해서 연습해보도록 하겠습니다. 이번 장에서는 기본적인 개념만 확인하였습니다. 다음장, 그리고 실력 다지기에서 계속해서 복구 연습을 할 수 있습니다.

  • 파일시스템 복구가 되면 포렌식 분석 도구를 이용하여 시험 문제를 해결할 수 있게 됩니다.

3줄 요약

  1. 파티션과 파일시스템은 엄연히 다른 명칭입니다. - 파티션 : 나눠진 구역 - 파일시스템 : 파일을 저장하기 위한 구조 대부분 파일시스템은 파티션 영역에 저장되기 때문에 파티션 복구, 파일시스템 복구 혼용해서 사용하는 경우가 많습니다.

  2. NTFS는 파티션의 마지막 섹터, FAT32는 6번 섹터에 파일시스템 BR 복사본이 위치합니다. (참고로 최근 많이 사용되는 exFAT는 12번 섹터에 파일시스템 BR 복사본 위치)

  3. 파일시스템 복구 시 raw 이미지를 획득 후 HxD를 이용하여 복구 합니다.

+ @(시험 외 공부용)

파일시스템 관련하여 보다 상세히 알아보고 싶은 경우 아래 내용을 참고해보는 것을 추천합니다. > 4-1) 파일시스템 직접 만들어 보기 > 4-2) FAT32 분석 > 4-3) NTFS 기초 분석

26MB
파티션 복구 연습.zip
archive
34MB
파일시스템 연습용.zip
archive