본문 바로가기

디지털 포렌식 (Forensic)

(64)
[디지털포렌식전문가 2급 필기] 제 1회 오답노트 보호되어 있는 글입니다.
[디스크 포렌식] GPT 파티션 분석 GPT 파티션 - 최근 많이 사용되는 EFI 시스템에서 사용되는 디스크 형식 - MBR과 마찬가지로 디스크 정보 포함 - LBA 방식 사용 - 파티션 생성 시 처음 부분과 마지막 부분에 여유 공간을 두어 MBR -> GPT 변환을 지원 - 0번 섹터에 MBR 구조를 가지지만 GPT 파티션 시작 위치가 저장 - 저장되는 주소 형태는 MBR과 같음 - GPT 파티션은 파티션 타입에 0xEE 사용 - 보통 GPT 파티션의 경우에는 1번 섹터에 정보가 저장 Primary GPT Header - 1번 섹터에 위치 - GPT에 대한 설정 정보를 저장 - GPT 헤더 정보는 92바이트로 구성 의미 byte 내용 Signature 8 "EFI PART" 기록 Revision 4 버전 1.0을 의미 Header Size..
[디스크 포렌식] NTFS 파일 시스템 Non-Resident 파일 시간 정보 알아보기 FAT32 파일 시스템과 달리 NTFS 파일 시스템에서 시간에 대한 정보는 또 다른 하위 MFT Entry에 저장하게 됩니다. 시간 정보를 저장하는 속성은 $Standard_Information 속성과 $File_Name 속성 두 가지가 있습니다. $Standard_Information 의미 내용 Attribute Type ID 속성 타입 식별 값으로 [10 00 00 00]을 찾으면 됨 Time 각각의 8바이트로 구성되어 있으며 생성, 수정, MFT 수정 시간, 마지막 접근 시간이 저장되어 있음 $File_Name 의미 내용 Attribute Type ID 속성 타입 식별 값으로 [30 00 00 00]을 찾으면 됨 Time 각각의 8비트로 구성되어 있으며 생성, 수정, MFT 수정 시간, 마지막 접근..
[디스크 포렌식] NTFS 파일 시스템 Non-Resident $DATA 속성 NTFS 파일 시스템 Non-Resident $DATA 속성 Non-Resident 속성의 경우 해당 Index Entry에서 0x80($DATA) 속성을 찾아 분석하여 수동으로 해당 데이터의 실제 위치를 알아낼 수 있습니다. 위 그림은 $DATA 속성의 구조입니다. 의미 내용 Attribute Type ID 속성 타입 식별 값을 나타냄. $DATA는 [80 00 00 00] (0x10, 0x30, 0x80, 0xA0 등 하위 MFT Entry) Length of Attribute 속성 헤더를 포함한 속성 전체의 길이를 나타냄 N-R Flag Non-Resident 속성 여부를 나타냄 (0x01은 N-R 속성) Flags 속성 상태를 나타냄 (0x0001은 압축, 0x0002는 숨김, 0x0020은 압축..
[디스크 포렌식] NTFS 파일 시스템의 Resident 속성, Non-Resident 속성 NTFS 파일 시스템의 Resident 속성, Non-Resident 속성 Resident 속성 NTFS 파일 시스템의 경우 파일의 용량이 700byte 이하일 경우 하나의 Index Entry(1024byte)에 속성 정보(메타데이터)와 파일의 내용이 저장됩니다. 이를 Resident 속성이라고 부릅니다. Non-Resident 속성 NTFS 파일 시스템에서 파일의 용량이 700byte 이상일 경우 클러스터를 다시 할당받아 다른 곳에 연속적으로 저장하게 됩니다. 이를 Non-Resident 속성이라고 부릅니다.
[디스크 포렌식] NTFS 파일 시스템 NTFS 파일 시스템 NTFS 파일 시스템의 구조는 위와 같습니다. 1. Boot Sector (BR) 영역 NTFS 파일 시스템의 BR 영역도 FAT32와 같이 특정 오프셋 별로 의미하는 바가 다릅니다. 0byte ~ 2byte : Boot Code 3byte ~ 83byte : BIOS Parameter Block 84byte ~ 509byte : Boot Code와 Error Message 510byte ~ 511byte : 시그니쳐 2바이트 위는 NTFS 파일 시스템의 BR 영역 구조입니다. FAT32 파일 시스템보다 구조가 간단해졌다는 점을 확인할 수 있습니다. 이는 FAT32 파일 시스템은 모든 파일을 클러스터에서 직접 관리하지만, NTFS 파일 시스템은 파일에 대한 메타데이터를 파일에 기록하..
[디스크 포렌식] 긴 파일 이름을 가진 FAT32 파일시스템 긴 파일 이름을 가진 FAT32 파일시스템 위 파일 목록을 보면 이름이 긴 파일 하나가 있음을 확인할 수 있습니다. 이름이 긴 파일은 FAT32 파일시스템에서 루트 디렉토리에 새로 32바이트의 영역을 할당한 후에, 이름만을 저장하게 됩니다. 실제 파일 정보가 있는 루트 디렉토리는 Name 오프셋 영역에 저장할 수 있는 바이트 제한으로 파일 이름이 ~로 축소되어 저장됩니다.
[디스크 포렌식] 루트 디렉토리의 CreateTime, CreatedDate 계산 루트 디렉토리의 CreateTime, CreatedDate 계산 CreateTime은 파일이 생성된 시간을, CreatedDate는 파일이 생성된 날짜를 나타냅니다. 루트 디렉토리에는 16진수 형태로 저장되어 있기 때문에, 이를 계산해 보겠습니다. 예시 파일입니다. CreateTime 영역은 93 A6으로 적혀있고 CreatedDate 영역은 82 48로 적혀있습니다. 1. CreateTime 계산 CreateTime 영역이 93 A6으로 적혀있으므로, 리틀엔디안 방식으로 변경하면 A6 93으로 읽을 수 있습니다. 이를 2진법으로 변환하면 1001 0011 1010 0110 이 나옵니다. 이 2진수 16자리를 5-6-5로 끊어 읽어주고, 이를 다시 10진수로 변환해주면 됩니다. (초 단위는 *2 해주어야..
[디스크 포렌식] 루트 디렉토리 추적 FAT32 파일 시스템을 가진 실습 파일을 HxD로 열고, 첫 번째 파티션의 시작 위치로 이동해 보겠습니다. 첫 번째 파티션의 시작 섹터입니다. 이 정보를 통하여 루트 디렉토리의 위치를 알아내 보겠습니다. 루트 디렉토리의 위치를 알아내기 위해서 FAT Area의 주소를 알아야 합니다. 위의 BR 영역의 Reserved Sector 영역을 보면 10 1A로 되어 있습니다. 즉 BR 주소 (128) + Reserved Sector (4122)를 더해주면 FAT Area (4250번째) 섹터가 나옵니다. 루트 디렉토리로 가기 위해서는 FAT 주소에 FAT 크기*2를 한 값을 더해주면 됩니다. (FAT의 개수가 기본적으로 2개) FAT 크기는 BR 영역을 보면 07 F3으로 적혀 있습니다. 4250 (FAT A..
[디스크 포렌식] FAT32 파일 시스템 FAT32 파일 시스템 먼저 FAT32 파일 시스템의 파티션 구조를 알아보겠습니다. FAT32 파티션 구조는 위와 같이 이루어져 있습니다. 1. Boot Sector (BR) Boot Sector는 MBR 구조와 같이 특정 오프셋 별로 의미하는 바가 다릅니다. 0byte ~ 2byte : Boot Code 3byte ~ 89byte : BIOS Parameter Block 90byte ~ 509byte : Boot Code와 Error Message 510byte ~ 511byte : 시그니쳐 2byte 위는 FAT32 파일 시스템의 BR 영역 구조입니다. 의미 내용 Jump Boot Code Boot Strap Code로 점프하기 위한 부분 OEM Name OEM 회사를 나타내는 문자열 (FAT32는 ..