파티션 복구 실습을 위해 자주 사용하는 도구에 대한 사용법을 간단히 살펴보자.


1. HxD 에디터


일반 텍스트 타입의 파일은 텍스트 편집기를 이용해서 쉽게 확인할 수 있지만, 대부분 파일 내부에는 텍스트가 아닌 데이터로 존재한다.

HxD는 이진 파일을 읽을 수 있는 무료 에디터 프로그램으로 사용법이 쉽고 간단하여 널리 사용되고 있다. 주로 사용되는 기능으로는 파일이나 이미지의 특정 섹터를 확인하거나 수정할 때 사용된다.


* HxD 에디터 다운로드

https://mh-nexus.de/en/downloads.php?product=HxD


- HxD 인터페이스


•파일: 파일의 열기, 저장, 인쇄가 가능한 메뉴이다.

•편집: 파일의 복사, 붙여넣기, 등이 있는 메뉴이다.

•찾기: 찾기, 찾아 바꾸기, 특정 오프셋으로 이동 등 설정이 가능하다.

•보기: 화면에 표시되는 데이터 표현( 아스키, 16진수 등 ) 설정이 가능하다.

•분석: 파일의 해시값 분석 및 두 개의 파일을 비교할 수 있다.

•기타설정: 물리적인 장치와 이미지 분석할 때 사용되는 메뉴이다.


1) 분석 대상 열기


HxD 에디터는 파일, 물리 디스크, 이미징된 파일을 읽을 수 있다. 먼저, 파일을 분석하려면 '파일 > 열기' 메뉴로 열 수 있지만, 포렌식 분석을 위해서는 '기타설정' 메뉴를 사용한다.


•램: 기타설정 > RAM 열기

•물리디스크: 기타설정 > 디스크 열기

•디스크 이미지: 기타설정 > 디스크 이미지 열기



처음 파일을 열면 1섹터 당 몇 byte인지 묻는데 보통 512byte이기 때문에 512를 선택하고 '수락'을 선택하면 섹터 단위로 이동하기 편리하다. size는 원하는 byte 단위로 바꿔도 된다.



2) Sector 이동과 수정


Sector 이동은 Sector 입력 폼에서 이동하고 싶은 Sector의 숫자를 직접 입력하여 이동할 수 있고, 원하는 위치의 Hex 값으로 수정할 수 있다.


또한, 원하는 섹터를 블록 지정하여 복사한 뒤 '붙여넣기 쓰기'를 통해 덮어쓰기도 가능하고 '붙여넣기 삽입'으로 삽입도 가능하다.



3) 특정 영역 일괄 블록지정


일괄 블록지정은 '편집 > 블록선택'에서 '오프셋 시작'과 '오프셋 종료'로 지정한다. 이 기능은 파일이나 디스크 복구 등 많은 섹터 영역을 지정해야 할 때 유용하게 사용된다.



4) 특정 영역 일괄 바꾸기


일괄 바꾸기는 바꾸고자 하는 영역을 드래그한 후 '편집 > 선택 채우기' 로 지정된 블록 영역을 원하는 값으로 모두 바꿀 수 있다.




2. FTK Imager


포렌식의 가장 기본이 되는 FTK Imager는 디스크 이미징 작업에 많이 쓰인다. 이 밖에도 이미징 작업에 많이 쓰이는 소프트웨어로는 EnCase와 dd라는 도구가 있으며, 물리적인 하드디스크 이미징 전용 장비로는 Road Master, Rapid Image 등이 있다.

논리적인 이미징 방식은 다른 하드디스크에 이미지 파일( .011, .dd 등 )로 저장이 되며, 실제 하드디스크와 같은 용량을 차지한다. 물리적인 이미징 방식은 하드디스크를 다른 하드디스크에 그대로 복제하는 것을 말하며, 복사될 하드디스크는 원본 디스크보다 용량이 같거나 커야 한다. 또한, 소프트웨어 방식과 물리적 방식 모두 복사될 하드디스크는 충분한 와이핑 후 복사를 해야 무결성을 지킬 수 있다.

FTK Imager는 제작사 다운로드 페이지에서 이름과 이메일 주소를 등록하면 다운로드 링크를 등록한 이메일로 보내준다.


* FTK Imager 다운로드

http://accessdata.com/product-download/digital-forensics/ftk-imager-version-3.4.3


- FTK Imager 인터페이스


FTK Imager의 인터페이스는 Evidence Tree, File List, Property, Hex Value Interpreter, Custom Content Sources으로 나뉘어있다.


•Evidence Tree: 계층적 트리구조로 추가한 증거 항목을 보여준다.

•File List: Evidence Tree에서 선택된 항목에 있는 파일과 폴더를 보여준다.

•Viewer: Preview Mode 옵션인 Natural, Text, Hex 선택에 따라 선택된 파일의 내용을 보여준다.

•Custom Content Sources: 이미지에 포함된 내용을 보여준다.

•Properties/Hex Value interpreter: Evidence Tree이나 File List에서 선택된 객체의 다양한 정보를 보여주고, 뷰어에 선택된 16진수 값을 10진수와 가능한 날짜, 시간 값으로 변환한다.


1) 이미징 생성


상단의 'File > Add Evidence Item' 메뉴를 클릭하거나 화면에 보이는 File 메뉴바로 아래에 있는 플러스가 하나인 아이콘을 클릭하면 다음과 같은 화면을 보게 된다.



•Physical Drive: 실제 물리적으로 연결된 하드 드라이브의 목록을 보여준다.

•Logical Drive: 논리 드라이브를 볼 수 있다.

•Image File: 이미징이 된 파일들을 불러올 수 있는 메뉴이다.

•Contents of a Folder: 폴더를 선택할 때 사용된다.


여기에서는 Physical Drive를 눌러 원하는 물리적인 하드 드라이브를 FTK Imager에 마운팅 시켜보면 다음과 같은 화면이 나타난다.




Evidence Tree에 원하는 파티션 또는 물리적인 드라이브를 선택하고 우클릭을 하면 5가지의 메뉴가 나타난다.


•Remove Evidence Item: 추가한 아이템을 제거한다.

•Verify Drive/Image: 검증을 위한 작업이 실행되고 Export

•Disk Image: 이미징 작업을 위한 메뉴이다.

•Image Mounting: 실제 마운팅을 실행시켜주는 작업메뉴이다.

•Export Directory Listing: 해당 드라이브의 모든 파일과 폴더 구조를 추출해주는 메뉴이다.




Export Disk Image 메뉴를 선택하면 다음과 같은 화면이 나타난다.



'Add' 메뉴를 누르기 전 Add 아래에 있는 'Verify images after they are created' 메뉴를 선택하여 이미지 검증을 진행하는 것이 좋다. 디지털 포렌식에서 무결성은 매우 중요하기 때문이다.

Add 메뉴를 누르게 되면 저장할 이미지 타입과 간단한 분석관 이름, 사건번호를 적는 화면이 나타나게 된다. 이후 저장할 이미지 이름과 크기를 입력하는 창이 뜨게 된다. 이때 주의할 점은 크기에 따라 파일이 나뉘게 된다는 것이다.

'NCS보안3기 > 디지털 포렌식' 카테고리의 다른 글

[Forensics] 파티션 복구 실습 III  (0) 2017.04.26
[Forensics] 파티션 복구 실습 II  (0) 2017.04.26
[Forensics] MBR 구조  (0) 2017.04.24
[Forensics] MBR  (0) 2017.04.24
[Forensics] FORENSIC  (0) 2017.04.24
Posted by Imp3rio

* MBR 구조1

- MBR은 크게 3개 부분으로 나뉘어 진다.

- 부트 코드 부분: offset 0 - 445

- 파티션 테이블 부분: offset 446 - 509

- 시그니처 부분: offset 510 - 511



* MBR 구조2 - 디스크 시그니처

- 부트코드에는 디스크 시그니처 값이 포함된다.

- 디스크 시그니처: offset 440 - 443


- 디스크 시그니처는 운영체제가 설치된 디스크를 확인하는 값으로 MBR에 포함되어 있다.

- 디스크 시그니처는 레지스트르에도 그 값을 저장하고 있다.




* MBR 구조3 - 파티션 테이블

- 파티션테이블은 64바이트 크기로 총 4개의 파티션 정보를 가지고 있다.

- 파티션테이블은 총 4개의 엔트리로 구성되며

- 하나의 엔트리는 16바이트 크기로 하나의 파티션 정보를 가지고 있다.



* MBR 구조4 - 파티션 테이블 세부

- 파티션테이블을 하나의 엔트리를 살펴보면

- 부트 플래그, 시작 CHS주소, 파티션 타입, 끝 CHS주소, 파티션 시작 LBA주소, 파티션 총 섹터의 정보를 가지고 있다.

- 부트 플래그: 1바이트

> 해당 파티션이 부팅 가능한지 아닌지의 여부를 알려준다.

> 0x80이면 부팅 가능

>0x00이면 부팅 불가능


- 시작CHS주소: 3바이트

> 시작 CHS주소는해당 파티션의 실린더 / 헤더 / 섹터 방식의 시작 주소를 나타낸다.

> 현재는 디스크 주소체계가 LBA방식을 사용하여 의미가 없다.

> 과거 CHS방식과 호환성을 위해 존재한다.

> 해당 값이 00으로 채워져 있어도 동작에는 관계없음


- 파티션 타입: 1바이트

> 파티션에 설치되어 있는 파일시스템의 종류를 알려준다.

> FAT32, NTFS 등 파일시스템이 어떤 것이 사용되었는지 확인 가능하다.

> FAT32: 0x0B( 0x0C ) / NTFS : 0x07로 사용


- 끝 CHS 주소: 3바이트

> 시작 CHS주소와 같이 현재는 사용되지 않음


- 파티션 시작 위치: 4바이트

> 해당 파티션이 시작하는 처음 LBA주소를 나타내는 것으로

> 해당 위치로 이동하면 BR지점으로 이동 가능


- 파티션 총 섹터: 4바이트

> 해당 파티션이 가지고 있는 총 섹터 수를 나타낸다.

> 파티션의 총 섹터 수를 구하면 파티션에서 사용하고 있는 전체 용량을 계산 가능하다.



'NCS보안3기 > 디지털 포렌식' 카테고리의 다른 글

[Forensics] 파티션 복구 실습 III  (0) 2017.04.26
[Forensics] 파티션 복구 실습 II  (0) 2017.04.26
[Forensics] 파티션 복구 실습 I  (0) 2017.04.25
[Forensics] MBR  (0) 2017.04.24
[Forensics] FORENSIC  (0) 2017.04.24
Posted by Imp3rio

1. MBR( Master Boot Record )


디스크에서 가장 중요한 데이터 구조인 MBR은 디스크가 파티션될 때 만들어진다. MBR은 작은 크기의 master boot code, disk signature, 그리고 디스크에 대한 partition table을 포함한다. 

MBR의 끝에는 signature word 또는 sector marker의 끝이라고 불리는 2바이트 구조를 갖으며, 이는 항상 0x55AA로 세팅된다. signature word는 extended boot record( EBR )과 boot sector의 끝을 표시한다.

offset값이 0x01B8인 고유번호인 Disk signature는 운영체제에 대한 디스크를 식별한다.


2. MBR의 역할


- 부팅 가능한 파티션( 활성 파티션 )을 탐색

- 부팅 가능한 파티션의 시작 섹터 탐색

- 부팅 가능한 파티션의 부트 섹터를 복사해 메모리에 로드

- 부트 섹터에서 실행코드 실행


3. Partition Table ?


- 파티션 테이블은 64바이트의 구조체로 하드디스크에서 파티션의 위치, 타입 정보를 담고 있다.

- 파티션 테이블은 총 4개의 파티션 테이블 엔트리를 가지고 있으며, 각 16바이트의 크기를 갖는다.

- 파티션 테이블 엔트리에는 다음과 같은 정보를 포함한다.

1) 부팅 가능한 파티션 정보: 0x80은 부팅 가능 / 0x00은 부팅 불가

2) 시작 CHS 주소: 지금은 사용하지 않는다.

3) 파티션 타입: 파티션의 파일시스템 종류를 나타낸다.

4) 끝 CHS 주소: 지금은 사용하지 않는다.

5) 파티션 시작 위치: 파티션의 시작 위치로 해당 파일시스템의 BR( Boot Record ) or VBR  ( Volume Boot Record )의 위치를 나타낸다.

6) 파티션의 총 섹터: 파티션에서 사용하는 전체 총 섹터를 나타낸다.


4. 파티션 개수는 몇개까지 가능한가 ?


- 파티션의 개수는 파티션 테이블 엔트리의 개수만큼 가질 수 있다.

- 기본적으로 파티션 테이블 엔트리는 4개 이므로 파티션의 개수도 4개까지 가능하다.

- 하지만 확장 파티션을 사용하면 4개 이상의 파티션을 사용 가능하다.


5. 확장 파티션( 논리 드라이브 )이란 ?


- 확장 파티션은 4개 이상의 파티션을 사용하려고 할 때 생성되는 파티션이다.

- 3개의 파티션까지는 주 파티션으로 생성되지만, 4개 이상의 파티션을 생성하려고 하면 확장 파티션으로 생성된다.


- 녹색으로 테두리가 되어 있는 부분이 확장 파티션 부분이다.

- MBR 파티션 테이블에서는 녹색으로 되어 있는 확장 파티션을 하나의 파티션으로 구분한다.

- 따라서, 위와 같이 파티션이 있는 경우

- 4번째 파티션 테이블 엔트리에는 확장 파티션의 시작위치와 전체 크기만 존재한다.

- 4번째 파티션 테이블 엔트리의 정보만으로는 확장 파티션 내에 실제 몇 개의 파티션이 있는지 파악할 수 없다.

- 이를 확인하기 위해서는 확장 파티션의 시작 위치에 가서 추가적으로 분석이 필요하다.


6. 확장 파티션 BR( EBR )



- 확장 파티션 BR은 주 파티션이 아닌 확장 파티션( 논리 드라이브 )을 생성하면 추가되는 섹터다.

- MBR과 구조는 비슷하나 파티션 테이블과 시그니처( 0x55AA ) 정보만 가지고 있다. 부트코드는 존재하지 않는다.

- 4번째 파티션 테이블의 시작 위치를 참고해 확장 파티션으로 이동하게 되면.

- 1 ~ 3번째 파티션 테이블에서 나오는 시작 위치와 달리 MBR과 비슷한 구조를 확인 가능하다.

- MBR 파티션 테이블은 총 4개의 엔트리를 가지고 있지만, 확장 파티션 BR에서는 처음 2개의 엔트리만 사용한다.

- 3, 4번째 파티션 테이블 엔트리는 사용하지 않는다.

- 2개의 엔트리 중 첫번째 엔트리는 확장 파티션의 첫 번째 파티션 정보를 담고 있으며,

- 두번째 엔트리는 다음 파티션 정보를 바로 가리키는 것이 아니라, 다음 확장 파티션 BR 위치를 알려준다.

- 확장 파티션에는 확장 BR을 하나씩 가지고 있는 것이다.

'NCS보안3기 > 디지털 포렌식' 카테고리의 다른 글

[Forensics] 파티션 복구 실습 III  (0) 2017.04.26
[Forensics] 파티션 복구 실습 II  (0) 2017.04.26
[Forensics] 파티션 복구 실습 I  (0) 2017.04.25
[Forensics] MBR 구조  (0) 2017.04.24
[Forensics] FORENSIC  (0) 2017.04.24
Posted by Imp3rio