For3nsic/Forensic

파티셔닝과 디스크레이아웃 등

𝓛𝓾𝓬𝓮𝓽𝓮_𝓢𝓽𝓮𝓵𝓵𝓪 2015. 11. 10.
728x90
반응형

파티셔닝과 디스크 레이아웃

 

오늘날 가장 많이 사용하는 두 가지 주요 파티셔닝 방식은 MBR(Master Boot Record) 방식과 GUID Partition Table(GPT)이다. MBR 파티셔닝 기법은 기본적으로 오직 네 개의 프라이머리 파티션과 최대 2테라바이트 크기의 디스크만 지원한다. GPT 형식은 8 제타바이트 크기의 디스크까지 지원하며 128개의 프라이머리 파티션을 만들수 있다.

 

파티션 식별 및 복구

삭제되거나 사라진 파티션을 식별할 때는 앞에서 언급한 sigfind 명령을 사용할 수 있다. 이 도구는 파티션 테이블이나 파일 시스템 헤더의 숨길 수 없는 흔적을 찾아주는 사전 정의된 여러 데이터 구조 템플레이트를 가지고 있다.

 

RAID

Redundant Array of Inexpensive Disks(RAID)는 여러 개의 물리적 디스크를 하나의 논리적 디스크로 만들기 위해 만들어 졌다.

가장 일반적으로 사용하는 기본 RAID레벨은 다음과 같다.

RAID 0 – 최소 두 개 이상의 디스크로 구성되며 블로 수준에서는 스트라이프가 된다.

RAID 1 – RAID 0의 반대이다. 블록은 두 드라이브에 각각 저장된다.

이것은 읽기 속도와 신뢰성을 향상시켜 주지만 물리적 디스크 용량이 반으로 줄어들게 됨

RAID 5 – 최소한 세 개 이상의 디스크가 필요하며 다수의 디스크에 걸처 스트라이핑을 수행하는 동시에 추가로 패리티 블록을 만든다.

 

FAT 복구 -> 유닉스기반 ->fatback

 

NTFS

MFT(Master File Table) – 시작 섹터 위치는 디스크의 부트 섹터에서 찾을수 있으며 볼륨에 있는 모든 파일과 디렉터리는 MFT에 엔트리를 가지고 있다. 엔트리 크기는 1024바이트이다.

MFT 엔트리의 처음 42 바이트는 12개의 요소로 이루어진 헤더가 차지하고 있으며 나며지 982 바이트는 헤더의 값과 엔트리에 있는 다양한 어트리뷰트에 의해 크게 좌우 된다.

레코드의 시작 부분에서 FILE 시그니처를 찾을 수 있으며, 그 다음에 엔트리가 할당되거나 비할당될 때마다 증가하는 순서 번호 또는 값이 나온다. MFT 엔트리는 사실 MFT의 첫 번째 레코드이고, $MFT 파일을 가리키기 때문에 순서 번호가 1인 것은 당연하다. 다음은 링크 총계로 이 레코드에 대한 엔트리를 가지고 있는 디렉터리의 수를 의미한다.  그 다음은 첫 어트리뷰트까지의 오프셋이다. 레코드에서 오프셋 0x38을 찾으면 구분자가 0x10또는 0x16인 첫 번째 어트리뷰트를 볼 수 있을 것이다. 마지막에는 플래그 값인데. 엔트리가 할당되어있으면 0x01을 알려준다.

플래그 값은  0x01 할당된 파일 0x00은 삭제된 파일 0x03은 할당된 디렉터리

0x02는 디렉터리

MFT엔트리에서 $STANDARD_INFORMATION$FILE_NAME 어트리뷰트를 찾을수 있을 것이다. 여기서 분석가에게 매우 가치있는 타임 스탬프 정보를 제공해준다.

 $STANDARD_INFORMATION은 항상 resident 타입이고 모든 파일과 디렉터리 엔트리에 존재하며 구분자 0x10(십진수 16)을 갖는다.

$FILE_NAME (구분자 0x30 or 0x48)도 대부분의 파일과 디렉터리 MFT엔트리에서 발견되지만, 사실 많은 MFT엔트리가 하낭 이상의 $FILE_NAME 어트리뷰트를 가지고 있다. 이또한 레지던트(resident)타입이며 네 가지 시간 정보를 가지고 있다.





위의 사진 처럼 레지스트리 키의 구조는 키 크기를 가리키는 4바이트  DWORD로 시작하는데, 이 크기는 부호 있는 정수로 읽지만 그 실제 값은 음수로 나온다. 


상세한 레지스트리 키 셀의 구조

오프셋 (바이트)      크기(바이트)        설명

0                                4                    크기

4                                2                    노드 ID("nk" 또는 0x6B6E)

6                                2                    노드 타입(0x2C 또는 0x20)

8                                8                    마지막 쓰기 시간

20                              4                    이 키의 부모 키까지의 오프셋 

24                              4                     서브키의 숫자

32                               4                   서브키 레코드의 목록까지의 오프셋

36                               4                    벨류의 숫자

44                               4                    벨류 목록까지의 오프셋

48                               4                    SID 레코드까지의 오프셋

76                               2                    키 이름의 길이



이벤트 로그

이벤트 로그 레코드는 모두 "매직 넘버" 또는 유일 식별자(마소는 이걸 시그니처라함)인 "LfLe"(16진수 0x654C664C)를 가진다.

이벤트 레코드 구조는 레코드 그자체에 대한 정보와 거기까지의 오프셋, 문자열의 길이, SID 그리고 해당되는 경우 이벤트 레코드 안에 있는 데이터를 가지고 있다.


윈도우즈 실행파일

윈도우즈의 파일들을 보면 많은 시그니처가 있는 것을 확인할수 있다. 

MZ, PE 등등

파일 시그니처 [참조] http://forensic-proof.com/archives/300 


파일 시스템 레이어 파일

파일 시스템은 파일 시스템 레이어 구조를 만드는 두 가지 중요 요소를 가지고 있다.

하나는 수퍼 블록 이고 다른 하나는 그룹 디스크립터 테이블이다.

수퍼 블록은 Ext 파일 시스템의 시작점에서 1024 바이트 떨어진 곳에 있는 데이터 구조다. 파일 시스템의 레이아웃 정보와 블록, 아이노드 할당 정보 그리고 파일 시스템이 마운트 되거나 읽혀진 마지막 시간을 의미하는 메타데이터를 가지고 있다.


파일분석

exiftool 파일명

exiftool -pa - GPS위치


pdf 분석 

pdfresurrect를 사용하는데 

i - 보다 자세한 시간순 정보를 표시

w - 복구 가능한 모든 문서 버전을 디스크에 저장

q - 현재 존재하는 버전의 총 개수

s - 문서에서 시간 흐름과 관련된 데이터를 삭제




728x90
반응형

'For3nsic > Forensic ' 카테고리의 다른 글

포렌식 기초  (0) 2015.11.11
디지털 포렌식이란?  (0) 2015.11.10
포렌식을 더깊게...  (0) 2015.11.10
FTK Imager 이용한 삭제된 파일 살리기  (1) 2015.11.09
파티션 테이블 확인하는 방법  (2) 2015.11.03

댓글0

💲 추천 글