안녕하세요 EnIaC 입니다.
[제 2강] 에 이어 바로 3강 진행 하도록 하겠습니다. 이번에 공부할 것은 바로 MBR 이라는 영역 입니다. 포렌식에서 어쩌면 가장 친숙한 영역이라고 볼 수 있겠죠. 고정되어 있는 틀에서 비슷한 값들을 많이 볼 수 있으니까요. 우선 MBR 을 보기 전에 OS 가 어떻게 부팅되는지 부팅 과정을 한번 살펴 보도록 하겠습니다.
1. PC Boot Step
부팅 절차는 기본적으로 BIOS에 의해 POST(Power On Self-Test) 과정이 수행되고, 이후에 추가적인 BIOS(SCSI, Video등)가 로드 됩니다. 그리고 POST 과정에 의해 처리된 데이터들도 로드하게 됩니다. 이러한 하드웨어적인 테스트를 모두 마치게 되면, 주(Primary) 하드디스크 드라이브의 MBR의 부트 코드를 호출합니다. 간단히 말해, MBR의 부트 코드는 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 VBR의 부트 코드를 호출하는 역할을 합니다. VBR의 부트 코드는 운영체제를 로드하게 됩니다.(윈도우는 NT Loader). 이를 간략히 그림으로 나타내면 다음과 같습니다.
[그림 1. Boot Step]
2. MBR, Master Boot Record
우선 포렌식 공부에 가장 기초적인 부분이 PC 부팅 과정입니다. 그중에서 저희는 현재 가장 많이 사용하고 있는 MBR 이라는것에 대해서 공부 하겠습니다.
MBR은 Master Boot Record 의 약자로써 단어 뜻만 보셔도 대충 어떤 역할을 하는지 감이 오실겁니다. MBR 은 하드디스크의 가장 첫번째 섹터에 위치하게 되며 처음 446Byte 는 부트코드(Boot code) 영역이며, 64Byte 는 파티션 테이블(Partition Table), 그리고 마지막 2Byte 는 MBR 영역의 훼손 여부를 알리는 시그니처(Signature) 를 나타냅니다.
[그림 2. MBR 구조]
실제 MBR 영역으로 이동하여 살펴보면 좀더 자세히 알 수 있습니다. 사용 프로그램은 무료로 다운로드 가능한 HxD 를 이용 하였습니다. (http://mh-nexus.de/en/hxd/) 다운로드
[그림 2-1. MBR 상세 구조]
저희가 중요시 보아야 할 점은 446Byte 의 Boot Code 가 아닌 64Byte 의 Partition Table 과 마지막 부분인 0xAA55 즉, 시그니처 영역을 중요시 봐야 합니다.
3. Partition Table
[그림 3. Partition Table Layout]
보시는 바와 같이 Partition Table 은 위와 같이 이루어져 있습니다. 표로 정리 해 보겠습니다.
|
설 명 |
Boot Flag |
0x80 이면 부팅 가능한 파티션임을 뜻한다. |
Starting CHS Addr |
CHS 의 시작 주소 |
Partition Type |
0x0B 와 0x0C 는 FAT32 를, 0x07 은 NTFS 를 뜻한다. |
Ending CHS Addr |
CHS 의 종료 주소 |
Starting LBA Addr |
LBA 의 시작 주소 (파티션 시작의 주소) |
Size in Sector |
해당 파티션의 총 섹터 개수 (즉, 해당 디스크의 총 용량 계산 가능) |
그럼 이제 [그림 4] 를 이용하여 실제 Partition Table 을 계산 해보도록 하겠습니다.
[그림 4. Partition Table Calc]
No.1 Partition | 설 명 |
Boot Flag | 0x80, 부팅 가능 파티션 |
Starting CHS Addr | 0x002120 |
Partition Type | 0x07, NTFS 파티션 |
Ending CHS Addr | 0x0C13DF |
Starting LBA Addr | 0x00000800 (2048 Sector) |
Size in Sector | 0x032000 |
위와 같이 MBR 에서 Partition Table 을 분석할 수 있게 되었습니다. LBA Addr 은 10진수로 변환하여 실제 Sector 위치를 계산할 수 있으며 Size in Sector 또한 10진수 변환 후 섹터 = 512byte 이므로 10진수 값 * 512 /1024 /1024 /1024(단위 변환) 해주면 GB 단위로 용량 계산이 가능 합니다. 다른건 몰라도 LBA Addr 정도는 스스로 계산 가능 해야 합니다. 솔직히 계산이랄 것도 없는.. 그런 계산이죠. 계산기로 10진수로만 바꿔주면 되니까요.
다음 강의에서는 FAT32 파일 시스템에 관해 이야기 하도록 하겠습니다.
'『Cyber Forensics』 > Forensics - File System' 카테고리의 다른 글
[제 6강] [FAT32]-[B.R] Start of the analysis, Boot Record (0) | 2016.01.25 |
---|---|
[제 5강] [FAT] Reserved area, Common area analysis (0) | 2016.01.24 |
[제 4강] [FAT] Start of the analysis (0) | 2016.01.24 |
[제 2강] The data recording method and the type (데이터 기록 방법과 종류) (0) | 2016.01.23 |
[제 1강] HardDisk structure and theory (하드디스크의 구조 및 이론) (0) | 2016.01.23 |
WRITTEN BY
- EnIaC
WhiteHackerGroup 『LockDown』 EnIaC 입니다.