3-3) 파일시스템 복구 실전 연습
Last updated
Last updated
파일시스템 복구는 매우 중요합니다. 복구가 되지 않으면 시험에 합격이 불가능 하기에 다시 한번 살펴봅시다. 개념만 이해하면 충분합니다. 연습문제를 풀다보면 반복적으로 익혀지기 때문에 파일시스템 복구 연습에 너무 많은 시간을 투자할 필요는 없습니다. 처음에는 시간이 좀 걸릴 수 있으나 충분히 이해가 되고 나면 실제 복구하는 과정 자체는 매우 짧은 시간에 가능하기에, 연습 자체를 많은 시간을 투자할 필요는 없습니다.
먼저 파일시스템을 훼손을 직접 해보면서 실제 시험 문제가 어떻게 만들어 지는지를 살펴보면 복구를 하는게 어떤 의미인지 이해가 될 것입니다.
가상디스크를 한번 만들어 봅시다. Win + X 누른 뒤 디스크 관리에서 동작 - VHD 만들기를 선택합니다. 이후 용량을 입력 후 만듭니다. (용량을 크게 하지 않아도 됩니다.)
아래와 같이 생성이 되면 디스크가 연결됩니다. 만약 연결되지 않을 경우 동작 - VHD 연결을 하여 생성한 가상디스크 이미지를 선택합니다.
이 후 해당 디스크 우클릭 - 디스크 초기화를 선택합니다. 여기서 MBR 구조, GPT 구조를 선택할 수 있습니다. 처음 연습에서는 MBR 구조로 초기화 하여봅시다.
이후 디스크 영역에 우클릭 - 새 단순 볼륨을 선택합니다. 그리고 적당한 용량을 입력합니다. 다음 다음 하면 파일시스템을 선택할 수 있습니다. NTFS 구조를 선택하여 보겠습니다.
이번에 남은 영역 전체에는 FAT32로 선택해보도록 하겠습니다.
볼륨이 추가되었는데 드라이브 문자가 없다면 아래와 같이 해당 볼륨 우클릭 - [드라이브 문자 및 경로 변경] 을 선택 후 추가합니다.
추가한 디스크가 탐색기에서 확인이 됩니다. 속성을 눌러보면 우리가 설정한 용량 내에서 파일시스템이 생성되어 있고, 해당 파일시스템을 실제로 분석해보면 용량 확인도 가능합니다.
자 그럼 이제 이 저장매체의 파일시스템을 훼손해보도록 하겠습니다. 우선 FTK Imager를 이용하여 훼손해야 할 파일시스템의 VBR 섹터번호를 확인해봅시다.
먼저 파티션 1번의 시작 섹터 번호를 확인해봅시다. (설정 용량, PC마다 섹터 번호 다를 수 있습니다.) 파티션 1 시작 섹터 번호 : 128
파티션 2번의 시작 섹터 번호도 확인하여 봅시다. 파티션 2 시작 섹터 번호 : 102,528
정리하면 128번, 102,528번 섹터를 훼손하면 됩니다.
이제 HxD를 관리자 모드로 열고 가상디스크 저장매체를 [디스크 열기]로 열어보도록 합시다. 이때, FTK Imager는 종료해야 합니다. 켜져 있으면 수정이 되지 않습니다.
먼저 파일시스템 1번 시작 위치인 128번으로 가서 해당 섹터 부분의 데이터를 수정해보도록 하겠습니다. 128번 섹터 전체를 훼손해도 되지만 중요 부분만 훼손해도 됩니다.
파티션 2번의 시작 위치인 102,528번 섹터도 동일하게 훼손 후 저장하도록 하겠습니다.
디스크 관리에서 F5를 눌러 새로고침 후 훼손한 디스크를 선택한다면 아래와 같이 정상적인 파일시스템이 아니기 때문에 "포맷해야 합니다."라고 표시가 됩니다.
이제 VHD를 분리하여 봅시다.
위에서 만든 것과 동일한 구조로 실습하고자 한다면 다운 받은 후 압축 해제하여 활용할 수 있습니다.
다시 한번 VHD를 연결하여 봅시다. 이번에 연결 할 때에는 읽기 전용으로 열어봅시다. (파일시스템 복구연습1.vhd) > 이것은 실제 시험장에서 분석용 USB를 받고 쓰기 방지 후 연결하였을 때와 동일하게 진행됩니다.
파일시스템이 정상이 아니기 때문에 포맷할 것인지를 물어봅니다. 당연하게도 읽기 전용이기 때문에 포맷이 안되겠지만, 실제 시험장에서도 포맷을 하면 안됩니다. *연습이 안된 분들은 포맷을 누르거나 USB를 바꿔 달라고 합니다. 시험장 감독관들도 이 부분을 모를 수 있어 교체해줄 수도 있고, 그렇지 않을 수도 있습니다. 그러나 바꾼다고 하더라도 동일한 증상을 보이게 되는 것입니다. 이 부분이 연습 및 준비가 되지 않아 시험을 포기하고 나가시는 분들이 정말 많습니다. 따라서 확실하게 이해하여야 합니다.
FTK Imager를 이용하여 저장매체의 이미지를 획득하여 봅시다.
파티션 1번, 파티션 2번을 살펴보면 파티션이 훼손되어 있어 내용 확인이 불가능 합니다.
먼저 파티션 1번을 복구하여 봅시다.
우리는 우리가 파일시스템을 만들고 훼손하였기 때문에 무슨 파일시스템이였는지 알고 있습니다. 그러나 실제 시험에서는 무슨 파일시스템이였는지 알 수 없습니다. 따라서 NTFS, FAT32 복구 기법을 모두 시도해야 합니다.
NTFS의 파일시스템 복구를 위해선 파티션 마지막 섹터 번호를 찾아가서 NTFS VBR의 복사본이 있는지 확인합니다.
마지막에 없다면 FAT32 복구를 위해 파티션 시작섹터 + 6번 섹터를 찾아가서 FAT32 VBR의 복사본이 있는지 확인합니다.
6번 섹터도 적절한 VBR이 안보인다면 시작섹터 + 12번 섹터로 가서 exFAT의 VBR 복사본을 확인합니다.
파티션 1번의 마지막 섹터를 갔더니 NTFS 파일시스템의 BR 복사본이 위치합니다. 102,527 번 섹터를 파티션 시작 위치인 128번 섹터에 복사 덮어쓰기 합니다. 파티션1 : 102,527 -> 128 * 섹터 끝에 55 AA 있는지 확인
파티션 2의 경우 마지막 섹터를 갔더니 아무런 데이터가 없습니다. 그렇다면 FAT32 일 수 있으니 시작 섹터 + 6번 섹터로 가보겠습니다. 102,528 + 6 = 102,534 섹터 >> FAT32의 파일시스템 BR이 위치합니다. 파티션2 : 102,534 -> 102,528 섹터로 복사 덮어쓰기 하면 됩니다. *섹터 끝에 55 AA 있는지 확인
Raw 이미지를 추출 한 뒤 파일시스템 복구를 시도해보겠습니다. 먼저 FTK Imager에서 최상위에서 Export Disk Imager 후 Raw(dd)를 선택 후 이미지를 생성합니다.
HxD에서 디스크 이미지 열기 후 102,527 번 섹터를 복사한 뒤 128번 섹터에 [붙여넣기 쓰기]를 선택합니다. (삽입하면 절대 안됨, 전체가 1섹터 밀려남) - 파티션1 : 102,527 -> 128
파티션 2번의 복사본에서 파티션 2번 시작 위치로 복사 붙여넣기 하도록 합시다. 102,534 섹터를 복사 한 뒤 102,528번 섹터에 [붙여넣기 쓰기]를 선택합니다. - 파티션2 : 102,534 -> 102,528
큰 고민 없이 복사본 섹터 전체를 복사하여 덮어쓰면 됩니다.
이미지를 저장 한 뒤 해당 이미지를 FTK Imager에서 불러오도록 하겠습니다. 정상적으로 복구가 되었다면 아래와 같이 파일시스템 내부 구조를 확인할 수 있습니다.
일반적인 USB의 경우 파일시스템을 여러개 나눌 필요가 없습니다. 파티션이 없이 처음부터 파일시스템이 1개로 시작할 수도 있습니다. 실제 시험에서도 이러한 출제 유형이 있기 때문에 파일시스템 복구 연습을 해보도록 하겠습니다.
아래 압축파일을 다운로드 후 압축해제하여 연습하시면 됩니다.
혹시나 동일하게 만들어보고자 하는 경우 아래를 펼쳐서 참고하여 만들어서 연습해볼 수 있습니다.
먼저 MBR 없는 NTFS 연습.vhd를 연결/탑재 한 뒤 FTK Imager로 살펴보도록 하겠습니다.
먼저 처음 저장매체를 살펴보면 파티션이 있는 것처럼(?) 보입니다. 그러나 실제로는 정확한 파티션 엔트리가 아닌, 파일시스템 VBR에 있는 값을 그냥 그대로 파티션 엔트리라고 생각하고 해석해준 것입니다.
[참고] 만약 파티션 엔트리 부분에 아무런 값이 없다면, 아래와 같이 아무것도 표시해주지 못합니다.
그렇다면 이 저장매체 복구를 위해선 어떤 힌트 등을 통해서 어떤 파일시스템인지 어떻게 시작해야 할까요? - 기본적으로 MBR의 파티션 엔트리는 복사본이 존재하지 않습니다. 따라서 파티션 엔트리 복구는 제외 - NTFS 파일시스템의 복사본이라면 파일시스템 끝에 복사본 존재 - FAT32 파일시스템의 복사본 이라면 6번 섹터에 파일시스템 BR 복사본 존재합니다. 가장 만만해보이는 FAT32 복구를 위해 6번 섹터로 가보겠습니다. 우선 55 AA 로 끝나지도 않았고, FAT32 BR과는 상관 없어 보입니다. 12번 섹터도 VBR 스러운건 보이지 않습니다.
NTFS의 BR 복사본을 찾아보겠습니다. 우선은 우리가 아는 것은 파티션의 마지막 섹터에 NTFS BR 복사본이 존재합니다. 다만 지금 여기는 파티션이 없습니다. 따라서 저장매체의 가장 마지막 섹터로 가보겠습니다. > 실제 시험에서는 이 부분에 복사본이 있어서 복구가 가능했던 경우도 있습니다. >> 다만 가짜 NTFS BR이 존재해서 복구가 불가능한 경우도 있었습니다.(정확한 복사본이 아닐 경우)
그렇다면 NTFS 의 복사본이 존재한다면 이 저장매체 어딘가에 있을 것입니다. NTFS의 고유 값을 우리가 알고 있다면 검색을 시도해봐야 합니다. 그런데 우리는 항상 고유 값을 외우고 다닐 수 없습니다. 따라서 다른 NTFS 파일시스템의 BR을 이용하여 고유 값을 한번 가져와서 검색에 활용해보겠습니다. 먼저 여러분들의 저장매체를 아무거나 한번 선택해서 열어보겠습니다.
MBR일수도 있고 GPT 일수도 있지만 아무거나 열다보면 NTFS 파일시스템이 존재할 것입니다. 윈도우가 설치된 경우라면 무조건 NTFS 파일시스템이 존재합니다. 이중에서 가장 처음 8bytes를 우클릭 [Copy hex]로 선택하여 복사합니다.
이제 돌아와서 우클릭 Find (Ctrl + F)를 하여 검색해보도록 하겠습니다. Binary(Hex) 선택 후 복사한 hex 를 붙여넣어 검색합니다.
섹터를 검색하다 보면 아래와 같이 가장 처음 부분에 해당 영역이 찾아지면, 거의 대부분 NTFS VBR 또는 NTFS VBR 복사본이 위치합니다. 만약 용량이 크거나 데이터가 많아 계속 찾아야 할 경우 F3을 눌러서 이어서 검색합니다. 그렇다면 이게 정확히 NTFS BR의 복사본임을 확인하는 방법으로는 NTFS의 전체 섹터 수를 저장하는 영역을 확인하면 됩니다.
3번째 줄 뒤에 8자리가 Total Sector 이며 이를 계산기로 계산해보겠습니다. > FF 8F 01 00 00 00 00 00 (리틀엔디안) > 00 00 00 00 00 01 8F FF (16진수) => 102,399 복사본이 위치하는 섹터 번호와 전체 섹터 수가 동일하다면 정확한 NTFS BR의 복사본입니다.
이제 Raw 이미지 추출 후 HxD를 이용하여 102,399 섹터를 0번 섹터에 복사해서 복구를 시도해보도록 하겠습니다.
파일시스템 복구가 정상적으로 되었다면 아래와 같이 내부 구조를 파악할 수 있습니다. (파티션 구조는 보이지 않고 바로 파일시스템이 시작됩니다.)
FAT32 연습 가상디스크를 탑재 후 FTK Imager에서 Physical로 불러오도록 하겠습니다. 우선 여기도 파티션이 있는 것처럼 보입니다. 그러나 실제로 NTFS와 같이 파일시스템의 BR영역을 해석해서 보여주고 있을 뿐입니다.
이번엔 FAT32 파일시스템 BR이 위치할 것으로 보이는 6번 섹터로 가보도록 하겠습니다.
6번 섹터를 갔더니 FAT32의 BR 백업본으로 보이는 섹터가 있습니다. FAT32의 복사본의 경우 고유값이 중간에 FAT32가 있습니다. (다만 필수값으로 보기는 어려워 무조건은 아니나, 실제 시험에서는 마땅히 파일시스템 BR이 보이지 않을 경우 6번 섹터로 시도를 해볼 필요는 있습니다.)
6번 섹터를 복사하여 0번 섹터에 덮어쓰기 하여 복원 시도를 해보겠습니다. FTK Imager를 이용하여 raw 이미지 추출 후 HxD를 이용하여 복원을 시도해봅시다.
raw 이미지를 HxD 디스크 이미지 열기 후 6번 섹터를 0번 섹터에 붙여넣기 쓰기(덮어쓰기)를 합니다.
정상적으로 복원이 될 경우 아래와 같이 root 폴더 내에 폴더 구조 등이 확인됩니다.
[참고] 파일시스템 복구 전에 이미지를 살펴보면 [Recovered] 파티션을 발견할 수 있습니다. Root 디렉토리 섹터번호를 한번 보면 8198번 섹터를 가리키고 있고, 아무런 내용이 없습니다.
정상 복구한 경우 Root 디렉토리를 보면 8192 섹터로 Recovered 파티션 섹터와 6섹터 차이가 나고, 내용도 포함됩니다.
즉, FTK Imager에서는 FAT32 복사본을 기준으로 파일시스템이 시작되었다고 구조를 짜서 보여주고 있는 것입니다. 따라서 전체 섹터가 6섹터가 밀리게 되며, 정확한 복구가 아니게 되는 것입니다. 실제 시험에서도 이 부분을 주의하여 정확히 복구 후 활용하여야 합니다.
GPT 파티션 내에 파일시스템 복구와 GPT 파티션 복구는 구분됩니다. 시험에서도 GPT 파티션 내의 파일시스템 복구인지, GPT 파티션 구조를 복구해야 하는지 정확히 인지하고 접근해야 합니다.
GPT 파티션 내 파일시스템 복구는 꾸준히 나오고 있으니 충분히 연습이 되어야 합니다. 위에서 연습한 FTK Imager를 이용하여 파티션의 시작 섹터번호를 알고, 파일시스템의 복사본을 이용하여 복구하는 것은 완전히 동일합니다.
"GPT내 파일시스템 복구 연습용.zip" 압축 해제 후 vhd를 탑재 한 뒤 FTK Imager로 Physical Drive를 선택하여 열어보겠습니다. (*실제 시험에서는 GPT의 경우 보다 많은 파티션들이 보이나 Basic data partition을 필수로 살펴봅니다. 나머지 파티션은 대부분 의미 없는 파티션입니다.)
파티션을 살펴보니 내부구조가 보이지 않고 VBR이 훼손되어 있습니다.
NTFS 일 수 있으니 맨 마지막 섹터로 가보겠습니다. NTFS의 VBR이 바로 발견되네요! 파티션 시작 섹터와 NTFS VBR 복사본 섹터번호를 확인합니다. - 파티션 1 시작섹터 : 128 / NTFS VBR 복사본 : 102527
2번째 파티션도 동일하게 파악하면 파티션 2번 시작섹터에서 6번 섹터에 FAT32 VBR 복사본이 위치하는 것을 확인할 수 있습니다. 2번 파티션 시작 섹터와, FAT32 VBR 복사본 섹터번호를 확인합니다. - 파티션 2 시작섹터 : 102528 / NTFS VBR 복사본 : 102534
Phsical Drive를 Raw 이미지 추출 후 파티션 1, 파티션2에 있는 파일시스템 VBR을 모두 복구 해봅시다. - 파일시스템 1 : 102527섹터 -> 128 섹터로 덮어쓰기 - 파일시스템 2 : 102534섹터-> 102528 섹터로 덮어쓰기
복구한 이미지를 FTK Imager로 열 경우 아래와 같이 내부 구조를 확인할 수 있습니다.
GPT 파티션 구조에 대한 복구도 시험에서 매우 적은 빈도로 출제 되었다고 합니다. MBR 파티션 테이블 구조에 비해 복잡해 보이지만 조금만 연습하면 할 수 있습니다.
GPT는 파티션만 복구해주는 것입니다. 파일시스템을 복구해주는 것이 아닌 파티션을 복구해주는 것으로, 파티션이 정상 복구 된 이후에 파일시스템이 훼손되어 있다면 파일시스템 복구를 진행하여야 합니다.
다만 GPT 파티션의 경우 시험 출제 빈도가 매우 적어 충분히 파티션 복구가 연습 된 경우 연습해보시는 것을 추천합니다. 파일시스템 복구, GPT 파티션 복구가 많아 보이기는 하나, 개념만 이해하고 있다면 실제로 복구에는 매우 짧은 시간에 복구를 할 수 있습니다.
Win + X 누른 뒤 디스크 관리에서 동작 - VHD 만들기를 선택합니다.
새로 생성된 디스크 우클릭 - 디스크 초기화 선택 후 GPT 구조를 선택하여 봅시다.
새 단순 볼륨을 생성하여 봅시다. 용량을 작게하여 설정하여 봅시다.
남은 용량에도 파일시스템을 생성하여 봅시다.
FTK Imager로 가상디스크 구조를 열어봅시다.
FTK Imager에서는 GPT 구조와 관련된 영역을 확인할 수 있습니다.
동일한 가상디스크로연습해보고 싶다면 다운 받아서 압축 해제 후 사용하시면 됩니다.
GPT 구조에서 시험에 나올만한 것 중 하나인 GPT 헤더 부분을 훼손하여봅시다.
먼저 FTK Imager가 분석해주는 GPT Header를 살펴보겠습니다. Primary GPT Header를 살펴보면 1번 섹터에 위치하며 "EFI PART"로 시작하는 것을 알 수 있습니다. 이 부분이 훼손된다면 FTK Imager에서도 GPT 관련된 영역의 정보가 없어지기 때문에 파일시스템 분석을 할 수 없게 됩니다.
FTK Imager를 종료한 뒤 관리자 모드로 HxD를 실행합니다. 저장매체 (Msft Virtual Disk)를 선택 후 읽기전용을 체크 해제 합니다.
이후 1번 섹터를 훼손하여 봅시다.
다시 FTK Imager를 이용하여 해당 저장매체를 열게 되면 아래와 같이 GPT 구조를 확인할 수 없습니다.
그러나 파티션 1번이 있는 것처럼 보입니다. 파티션 테이블 1번을 분석을 조금 해보면 - 파티션 종류 : EE - 시작 위치 : 01 00 00 00 (리틀엔디안) -> 00 00 00 01 (1번 섹터 시작) - 파티션 1 전체 섹터 수 : FF FF FF FF -> 4,294,967,295 섹터 X 512 = 2,199,023,255,040 bytes = 2,097,151 MBytes *FTK Imager는 파티션 엔트리를 그대로 해석해서 보여주고 있습니다. 이유가 1번 섹터에 GPT 영역이 훼손되어 있기 때문에 GPT 라는 것을 모르고 있기 때문입니다.
자 이제 만약 실제 시험에서 USB를 연결하고 FTK Imager로 열었는데 GPT 헤더가 훼손되었을 경우 복구를 시도해보겠습니다. 먼저 FTK Imager에서 raw로 이미지 획득을 진행합니다.
HxD에서 디스크 이미지 열기를 통해 RAW 이미지를 열고 제일 마지막 섹터를 살펴봅시다. 기본적으로 GPT 헤더 복사본은 가장 마지막 섹터에 위치합니다. 또는 "EFI PART"를 검색합니다. (그럴 일은 없지만 일부로 이미지 뒤에 빈 섹터나 다른 섹터를 추가한 문제가 나온다면 검색을 통해 찾아봐야 할 수도 있습니다.)
[참고] 만약 검색을 통해 "EFI PART"를 찾았을 경우 이 GPT 헤더가 정상적인 GPT 헤더인지 확인을 위해선 2번째 줄 뒤에 8바이트의 값을 계산했을 때 현재 위치하는 섹터 번호와 동일하다면 사실상 정상적인 GPT 헤더의 복사본입니다.
정리하면 마지막 섹터번호 204,799를 복사하여 1번 섹터에 덮어쓰기를 진행 후 GPT 헤더 구조를 정상적으로 수정하여 봅시다.
이 후 2번 줄 뒤에 8바이트와, 3번째 줄 처음 8바이트랑 값을 서로 바꿔줍니다. 3번 줄 처음 8바이트는 거의 대부분 "01 00 00 00 00 00 00 00" 을 가지고 있습니다.
지금 위치를 바꾼 두 값은 현재 GPT Header 섹터번호와 GPT Header 복사본 섹터 번호 입니다.
이 후 4번 줄 뒤에 8바이트 부분을 02 00 00 00 00 00 00 00 00 로 수정해야 합니다. 이 부분은 파티션 테이블이 위치하는 부분으로 2번 섹터를 가리키는 것입니다.
정리하면 1. 마지막 섹터에서 EFI PART 확인 후 복사한 뒤 1번 섹터에 덮어 쓰기 2. 2번 줄 뒤에 8바이트와 3번 줄 앞의 8바이트 위치 바꾸기 3. 4번 줄 뒤에 8바이트 "02 00 00 00 00 00 00 00 "로 덮어 쓰기
이미지를 저장 후 FTK Imager에서 열어보도록 합시다. 파일시스템 내부 구조도 확인이 되고, GPT 구조도 확인이 됩니다.
참고로 이 복구는 GPT의 파티션 엔트리 (2번 섹터)가 정상일 경우 입니다.
먼저 GPT 헤더 복구를 한 것과 동일하게 HxD를 이용하여 가상디스크를 복구 후 진행하도록 합시다.
이번에는 파티션 엔트리 부분을 훼손해보겠습니다. HxD를 관리자 권한으로 디스크 열기 후 가상디스크를 선택합니다.
2번 섹터(파티션 엔트리 부분)를 훼손해보도록 하겠습니다. 데이터를 수정 후 저장합니다.
FTK Imager에서 Physical Drive 선택 후 가상디스크를 선택하여 봅시다. 그런데 FTK Imager에서는 파티션이 모두 보이고 복구되어 보이고 있습니다. 이게 가능한 이유는 파티션 테이블 2번이 훼손되어 있어도 GPT 백업 파티션 테이블을 잘 가리키고 있기 때문입니다.
그렇다면 이미지를 획득하여 EnCase, Autopsy 와 같은 도구에서 인식하면 잘 되는지 살펴보면 FTK Imager 처럼 파티션을 복구하여 인식해주지 못하고 있습니다. (참고만 하세요!) [Encase]
[Autopsy]
실제 시험에서 이런 상황이라면 FTK Imager에서 복구 된 파일시스템을 이미지 획득하여 분석에 사용할 수 있습니다. 아래와 같이 파티션 별로 파일시스템을 따로 export 하여 각각 분석 하는 것 입니다.
그러나 우리는 EnCase, Autpsy에서 분석이 가능하도록 정상 복구를 시도해 보도록 하겠습니다. 먼저 FTK Imager에서 GPT 구역의 Backup Partition Entry Array 섹터번호를 확인합니다.
그리고Primary Patition Entry Array 의 섹터번호를 확인합니다.
정리하면 Backup 섹터는 204,767를 2번 섹터에 복사 붙여넣기 하면 되는 것입니다.
Raw 이미지 추출 후 HxD를 이용하여 복구 시도를 해보겠습니다. 먼저 FTK Imager에서 raw 이미지로 추출합니다.
해당 이미지를 HxD 디스크 이미지 열기 후 204,767 섹터를 복사합니다.
2번 섹터에 붙여 넣기 쓰기 하여 덮어 씁니다.
복구한 이미지를 FTK Imager에서 열면 정상적으로 파일시스템 분석이 가능합니다.
이렇게 복구한 이미지를 EnCase, Autospy 에서 확인해보겠습니다. 정상적으로 파일시스템 구조가 보이고 분석이 가능해 집니다. [EnCase]
[Autopsy]
이번에는 GPT 헤더, 파티션을 모두 복구 시도 해보도록 하겠습니다. 이미 파티션이 훼손되어 있는 가상디스크에서 1번 섹터(GPT Header) 만 다시 훼손하여 저장합니다. 즉, 1번 , 2번 섹터가 모두 훼손되어 있는 상태입니다. (관리자 모드로 HxD실행 뒤 디스크 열기를 통해 가상디스크를 열고 1번 섹터를 수정)
위에서 연습한 GPT 헤더복구 + 파티션 엔트리 복구를 합한 것으로 두 가지를 이어서 진행하면 됩니다.
먼저 FTK Imager에서 가상디스크를 연 뒤 맨 마지막에 EFI PART 가 정상적으로 있다면 GTP 파티션 구조 입니다.
Raw 이미지를 추출 한 뒤 마지막 섹터를 1번 섹터에 복사 붙여넣기 합니다.
GPT Header 복구에 필요한 부분을 수정합니다.
GPT 헤더 백업섹터(마지막 섹터)에서 백업 파티션 엔트리 섹터번호 필드를 직접 계산하여 백업 파티션 엔트리 섹터를 구할 수 있습니다. 그러나 일일이 외우고 다닐 수 없으니 FTK Imager를 이용해서 섹터를 찾아봅시다.
헤더를 복구 한 뒤 FTK Imager를 열어서 백업 파티션 엔트리 섹터번호를 찾습니다.
정상적일 경우 저장되어야 할 파티션 엔트리 번호를 찾습니다.(대부분 2번 섹터)
위에서 찾은 204,767 섹터를 2번 섹터로 복사 붙여넣기 합니다. hxd로 이미지 수정할 때는 FTK Imager를 종료해야 됩니다.
정상적으로 모두 복구가 완료되면 파일시스템 구조를 확인할 수 있으며, EnCase, Autospy 와 같은 분석도구에서도 정상적으로 분석이 가능합니다.
가상디스크 대신 개인 USB을 사용해서 파일시스템 복구 연습을 하셔도 됩니다.
다만 연습하실 때 디스크 열기를 읽기전용을 해제하고 사용할 경우 항상 주의 해야하며 이렇게 파티션을 어떻게 훼손하고, 반대로 어떻게 복구하는지 이해한다면 실제 시험에서도 어떤 경우의 파일시스템 훼손 관련이 나오더라도 해결이 가능할 것입니다.
할게 많아 보여도 결국에는 섹터 번호 찾고, HxD로 복사 붙여넣기가 전부이기 때문에 실제 실습은 금방 됩니다. 따라서 최소 한번은 해보시는 것을 권장합니다. (이전에는 그냥 기출문제 유형만 공개한 적이 많았으나, 이렇게 실제로 만들어보고 복구하는 연습을 하신 분들의 숙련도 상승이 매우 빠른 것을 확인하여 공유 드리게 되었습니다.)
다음장은 무료 도구 또는 EnCase를 활용하여 분석하여 보도록 합시다. EnCase를 사용하는 경우 4-2로 바로 가서 분석연습을 진행하면 됩니다.