Disk Forensic #30 (복구 된 키 이미지 파일의...)

 

디스크 포렌식 30번 문제

 

해당 문제 파일을 다운 받아서 FTK Imager 도구를 통해 확인해보면 특이한 점은 존재하지 않는다.

 

FTK Imager : 포렌식의 가장 기본 도구로, 디스크 이미징 작업에 많이 활용

 

다운로드 사이트 : https://accessdata.com/product-download/ftk-imager-version-4-2-1

 

FTK Imager version 4.2.1

AccessData provides digital forensics software solutions for law enforcement and government agencies, including the Forensic Toolkit (FTK) Product.

accessdata.com

그래서 혹시나 삭제된 파티션이 존재하는지 확인을 위해 R-Studio 프로그램을 통해서 문제 이미지 파일을 열어 확인해 보자.

 

R-Studio : 하드디스크 파티션 파일 복구 프로그램

 

참조 사이트 : https://www.r-studio.com/

 

Disk Recovery Software and Hard Drive Recovery tool for Windows, Mac, and Linux

Empowered by the new unique data recovery technologies, R-STUDIO is the most comprehensive data recovery solution for recovery files from NTFS, NTFS5, ReFS, FAT12/16/32, exFAT, HFS/HFS+ and APFS (Macintosh), Little and Big Endian variants of UFS1/UFS2 (Fre

www.r-studio.com

[그림 1] R-Studio -> 이미지 파일 오픈

 

문제 파일을 열어 실행시킨 다음, 각 파티션 내용을 보면 Empty Space19에서 [마우스 우클릭] - [Scan] 기능을 사용하여 Recognized0과 Recognized1이 생성되는 것을 확인할 수 있다. (그림 1 참고)

 

FTK Imager로 확인했을 때는 다른 용량의 파티션이 있음을 알 수 있으므로 Recognized1이 50MB의 용량으로 의심스러운 점을 확인할 수 있다.

 

[그림 2] 파티션 정보

 

의도적으로 삭제된 파티션이 있을 거란 추측을 해볼 수 있으며, MBR을 분석해보자.

 

MBR영역은 부트 코드와 파티션 테이블, 시그니처(AA 55)로 나뉘게 된다.

 

문제에서 주어진 evidence.001 파일을 HxD로 열어보면 파티션 테이블 영역에 총 3개의 파티션 정보가 있음을 확인할 수 있다.

 

[그림 3] 3개 파티션 정보 확인

 

위 [그림 2]에서는 보이는 파티션 정보가 4개이지만 [그림 3]에서는 파티션 테이블에 파티션이 3개만 존재하는 것을 확인할 수 있다.

 

또한 한 개의 파티션 정보가 확장 파티션임을 확인할 수 있다. (타입 오프셋 : 0x05)

 

그리고 [그림 2]의 FTK Imager에서 마지막 파티션이 Recovered로 나오는 점으로 보아 파티션에 대한 오프셋 정보만 삭제 되어 자동으로 복구가 되어 보여주는 것 같다.

 

하지만 R-Studio를 통해 확인했던 50MB 파티션 정보는 아니므로 추가적 분석을 진행해야 한다.

 

50MB의 삭제된 파티션 정보를 찾기 위해서 NTFS VBR 시그니처 (EB 52 90 4E 54 46 53)로 검색하여 분석해보면 다음과 같이 파티션 테이블에 있는 3개의 파티션 외에 112896 섹터에 파티션이 있음을 확인할 수 있다.

 

[그림 4] 112896 섹터

 

이렇게 해서 파티션 테이블에서 112896 섹터에 해당하는 파티션 정보를 의도적으로 삭제했음을 알 수 있다.

 

해당 파티션 정보를 파티션 테이블에 입력한 다음, 복구를 통해 문제를 해결할 수 있을 것 같다.

 

복구하기 이전 MBR 파티션 테이블 오프셋 구조와 NTFS BR 오프셋 구조를 파악해야 한다.

 

※ 파티션 테이블 오프셋 구조

 

0-0 : Boot Flag로 0x00은 부팅 불가능, 0x80은 부팅 가능 의미

1-3 : CHS(Cylinder, Head, Sector) 주소 지정 방식 (시작 위치 정보)

4-4 : 해당 파티션 파일 시스템 타입 (0x07은 NTFS, 0x0B는 FAT32를 의미)

5-7 : CHS 주소 지정 방식 (끝 위치 정보)

8-11 : LBA 주소 지정 방식 (파티션 시작 위치)

12-15 : 해당 파티션 총 섹터 개수

 

 

현재의 하드디스크는 LBA 주소 지정 방식을 취하고 있으므로 CHS 주소 지정 방식 내용을 제외하고는 복구를 진행할 수 있다.

 

112896 섹터의 VBR 정보를 분석하여 파일 시스템 타입은 NTFS(0x07)임을 확인할 수 있으며, 8-11 오프셋에 해당하는 LBA 주소 지정 방식 파티션 시작 위치는 112896 섹터임을 알 수 잇다.

 

112896 섹터를 파티션 테이블에 입력할 때는 16진수로 변환한 다음, 리틀 엔디안 방식으로 입력해야 한다.

 

112896은 16진수로 0x1B900이다.

 

따라서 12-15 오프셋에 해당하는 파티션의 총 섹터 개수는 NTFS BR 오프셋 구조를 통해 확인할 수 있다.

 

[그림 5] NTFS BR 구조

 

오프셋 구조 중에서 Total Sector 영역이 파티션 상의 총 섹터 개수를 의미한다.

 

NTFS는 파티션 정보의 마지막 섹터에 BR 백업본이 존재한다.

 

BR 백업본 섹터까지 포함하여 Total Sector + 1값을 파티션 테이블 12-15 오프셋에 입력한다.

 

[그림 6] Total Sector 영역

 

위 [그림 6]에서 표시한 부분이 112896 섹터 NTFS BR의 Total Sector 영역이다.

 

Total Sector는 0x18FFF이며 +1을 해주게 되면 0x19000이다.

 

지금까지 파티션 테이블에 입력할 정보를 리틀 엔디안 방식으로 정리하면 다음과 같다.

 

내용

오프셋

부팅 정보

80

CHS 시작 주소

00 00 00

파티션 타입

07

CHS 마지막 주소

00 00 00

BR 시작 주소

00 B9 01 00

총 섹터 개수

00 90 01 00

 

문제 파일을 HxD로 열어 위 표의 내용을 4번째 파티션 테이블 정보에 입력해보자.

 

[그림 7] 정보 입력

 

위 [그림 7]과 같이 수정한 다음 FTK Imager로 문제 파일을 다시 열어보면 Partition 4가 새로 생성된 것을 확인할 수 있다.

 

[그림 8] 복구된 파티션 4

 

파티션 4에는 NTFS 볼륨이 있으며, 하위 root 폴더에는 문제와 관련 있어 보이는 JPG 파일이 존재한다.

 

이제 FTK Imager에서 [마우스 우클릭] - [Export Files...] 메뉴를 통해 해당 파일 을 추출하여 내용을 확인해보자.

 

[그림 9] JPG 파일 내용

 

내용을 확인해보면 문제에서 언급한 KEY 이미지를 확인할 수 있다.

 

이제 해당 파일의 MD5 Hash 값을 계산하여 플래그로 입력해주면 된다.

 

MD5 Hash 값 계산을 위해 HashCalc라는 도구를 이용하여 계산해보자.

 

HashCalc : 다양한 해시값 추출 프로그램으로, 파일 무결성 검사 도구

 

설치 사이트 : https://www.slavasoft.com/hashcalc/

 

SlavaSoft HashCalc - Hash, CRC, and HMAC Calculator

SlavaSoft HashCalc HASH, CRC, AND HMAC CALCULATOR HashCalc 2.02     FREE A fast and easy-to-use calculator that allows to compute message digests, checksums and HMACs for files, as well as for text and hex strings. It offers a choice of 13 of the most popu

www.slavasoft.com

[그림 10] HashCalc 실행 > 플래그 확인

 

HashCalc를 통해 해당 파일에 대한 MD5 Hash 값을 얻을 수 있으며, 플래그로 입력해주면 된다.

 

해당 문제는 다른 방법으로 $MFT 구조를 분석하여 $DATA 영역에서 실제 파일이 저장된 주소를 얻어 수동으로 파일을 카빙하여 답을 얻을 수도 있다.

 

이렇게 해서 위 과정을 통해 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts