naroSEC
article thumbnail

개요

디지털 포렌식 전문가 2급 실기 시험 대비를 위한 파티션 복구 방법에 관해 작성하고자 한다.

 

실습에서 사용되는 HxD 파일은 아래의 링크에서 다운로드 가능하다.

 

Downloads | mh-nexus

Downloads I am looking for new translators, if you want to help, here is a list of unmaintained translations. Note: Starting with HxD 2.3, the portable edition is available as separate setup program, and can be run with minimal privileges (no admin rights

mh-nexus.de


손상된 파티션 유형

[그림 1] 손상된 파티션 유형

먼저 EnCase 분석을 위해 증거용 USB를 "E01" 타입의 이미지 사본을 생성했다면, FTK Imager로 파티션이 손상되었는지 확인이 필요하다. 손상된 파티션 유형에는 아래와 같은 두 가지가 있으며, [그림 1]을 참고하자

  • Unrecognized file system : 특정 디스크 또는 이미지 파일에서 파일 시스템을 인식하지 못하는 경우
  • Recovered : 파티션이 손상되거나 삭제된 경우

또한, 이러한 손상된 파티션은 파일 시스템 유형 별로 복구 절차가 다른데 이 중 FAT32 파일 시스템에서 Unrecognized file system 파티션이 손상 됐을 경우 복구 방법을 먼저 살펴보겠다.


파티션 복구 방법

[그림 2] FAT 32 파티션 복구 과정(1/10)

EnCase 분석을 위해 생성한 "E01" 타입의 사본 이미지를 FTK Imager로 불러와 손상된 파티션인지 확인한다.

[그림 2]를 보면 FTK Imager로 불러온 이미지 파일의 파티션이 "Unrecogrized file system" 라고 표기된 것을 볼 수 있으며, 이는 이미지 파일에서 해당 파티션을 인식하고 있지 못하는 경우이다. 따라서, HxD 프로그램을 통해 파티션을 인식할 수 있도록 수정 작업이 필요한데 이를 위해서는 E01이 아닌 dd(RAW) 타입의 이미지 파일이 필요하며, 만약 시험에서 이와 같은 파티션 인식 문제가 생기면 바로 dd(RAW) 타입의 이미지를 다시 생성해야 한다.

 

[그림 3] FAT 32 파티션 복구 과정(2/10)

dd 타입의 이미지를 생성했다면, HxD 프로그램을 실행한 후 [도구 - 디스크 이미지 열기]를 통해 생성한 이미지를 불러온다.

 

[그림 4] FAT 32 파티션 복구 과정(3/10)

디스크 0번 섹터에는 MBR(Master Boot Recoder) 또는 BR(Boot Recoder)가 존재하며, 0번 섹터가 MBR인지 BR인지에 따라 접근 방법이 달라진다. 여기서는 MBR로 판단하고 분석을 진행하겠다. (실제로 MBR이다.)

 

[그림 5] FAT 32 파티션 복구 과정(4/10)

MBR의 구조는 446 Byte의 Boot Code 영역, 16Byte 총 4개의 파티션 영역과 2Byte의 시그니처 영역으로 나누어진다.

그리고 이 중 파티션 복구를 위해 분석할 영역은 Partition Table Entry 영역이다.

 

[그림 6] MBR Partition Table Entry 구조

Partition Table Entry 구조는 다음과 같다.

  • Boot Flag : 1Byte, 해당 파티션의 부팅 가능 여부(0x80 : 부팅 가능한 파티션, 0x00 : 부팅 불가능 파티션)
  • CHS Start : 3Byte, CHS 방식의 시작 주소
  • Part Type : 1Byte, 해당 파티션의 종류를 의미(0x0B : FAT32 , 0x0C : FAT32, 0x7C : NTFS )
  • Ending CHS Addr : 3Byte, CHS 방식의 종료 주소
  • Starting LBA Addr : 4Byte, LBA 방식의 시작 주소
  • Size in Sector : 4Byte, LBA 의 총 개수

이 중에서 우리가 중요하게 봐야할 것은 Part Type, Starting LBA Addr로 Part Type을 통해서 파일 시스템 유형을 파악하고 Starting LBA Addr을 통해 파티션의 섹터를 확인할 수 있기 때문이다. 추가로 NTFS에서는 Size in Sector까지 봐야하는데 이는 NTFS 파티션 복구 포스팅에서 살펴보겠다.

 

[그림 7] FAT 32 파티션 복구 과정(5/10)

위에서 살펴본 MBR 구조를 통해 이미지를 분석해보면 첫 번째 파티션의  Part Type이 "0C"인 것을 통해 FAT32 파일 시스템인 것을 알 수 있으며, 파티션의 시작 센터가 "80 00 00 00"으로 이를 빅 엔디안으로 바꾸면 "0x80"이고 10진수로 변형하면 파티션의 시작 섹터가 128번 섹터인 것을 알 수 있다.

 

[그림 8] FAT 32 파티션 복구 과정(6/10)

[그림 7]에서 확인한 첫 번째 파티션의 시작 섹터인 128번으로 오면 [그림 8]과 같이 해당 섹어틔 데이터가 모두 비워져있는 것을 볼 수 있으며, 이와 같은 이유로 FTK Imager에서 이미지 정보를 불러오지 못하는 것이다.

이제 이 비워져있는 섹터에 원래의 데이터 정보를 삽입해줘서 이미지를 복구해야 하는데 NTFS, FAT32 등의 모든 파일 시스템들은 특정 섹터에 이미지의 부트 레코더 백업 데이터 정보를 저장해둔다. 그리고 FAT 32는 시작 섹터에서 6번 째 이후 섹터에 백업 정보가 저장되어 있다.

 

[그림 9] FAT 32 파티션 복구 과정(7/10)

① 134번 섹터로 이동하면 ② "MSDOS5.0" 아스키 값을 통해 FAT32 이미지의 부트 레코 백업 데이터가 저장되어 있는 것을 확인할 수 있다. ③ 복구를 위해 해당 섹터의 헥스 값을 전체 복사한다.

 

[그림 10] FAT 32 파티션 복구 과정(8/10)

첫 번재 파티션의 시작 섹터인 128번 섹터로 돌아와 섹터의 시작 부분에서 마우스 오른쪽을 클릭하고 "붙여넣기 쓰기"를 클릭해준다. 이때, 주의할 점은 붙여넣기 쓰기가 아닌 삽입을 하게 될 경우 데이터를 128번 섹터가 아닌 새로운 섹터를 생성하여 데이터를 쓰기 때문에 반드시 "붙여넣기 쓰기"를 해줘야 한다.

 

[그림 11] FAT 32 파티션 복구 과정(9/10)

① 상단의 [파일] 탭을 클릭 후 "다른 이름으로 저장" 버튼을 클릭하여 복구한 이미지를 저장해준다.

 

[그림 12] FAT 32 파티션 복구 과정(10/10)

복구한 이미지를 FTK Imager를 통해 불러오면 [그림 12]와 같이 이미지가 정상 복구된 것을 확인할 수 있다.


 

profile

naroSEC

@naroSEC

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...