시스템 포렌식 - FAT32 파일시스템 분석 및 복구

악성코드 및 포렌식|2021. 2. 9. 10:49

==================================================

 

 

 

-윈도우 포렌식  페이지 파일과 스왑 파일

 페이지 파일(pagefile.sys)과 스왑 파일(swapfile.sys)

- pagefile : 가상메모리 기반에서 메모리 부족시 HDD일부를 메모리처럼 활용

- swapfile : windows8 이후 생긴 페이지 파일의 일부. 특정 패턴의 작업을 위해 활용

 

 특정한 패턴 없이 운영체제에서 필요한 내용을 저장/삭제를 반복

 

 strings.exe pagefile.sys > page.txt

 

 

 

 

 

 

 

 

-파일시스템 분석

 FAT32(File Allocation Table 32 bit) 파일 시스템

4gb이상을 절대 집어넣을수 없기도해서 거의쓰지않는다.

보안성이 떨어지고 안정성이 떨어진다 usb나 메모리 카드에서 많이쓴다.

 

 NTFS(New Technology File System)

상대적으로 느리고

운영체제와 호완성이 좋지않습니다.

16tb까지 지원을 합니다.

 

 

 

 

 

 

FAT32 파일시스템

 

아무리 C드라이브,D드라이브로 파티션을 나누더라도 공통적으로 MBR이 하나 존재합니다.

 

컴퓨터 모든 PC전체 영역에서 하나만 존재한다고 생각하면 됩니다.

 

 

==============================================================

 

 

 

 

 

 

 

 

 

 

MBR(Master Boot Record)

-  이용해서 1번 이미지 파일을 연다

patition Table이 가장중요하다고 합니다.

그리고 이그림을 이해하는게 가장 중요합니다.

 

- Boot Code : 컴퓨터를 부팅하기 위해 필요한 실행 코드

- FAT32, NTFS 동일

- Partition Table : 파티션들의 정보

 

 

처음 fat32의 MBR정보의 55

이게 부트 레코드의 시그니쳐이고

 

 

 

 

 

 

1번2번3번 4번 파티션으로 나누어지는데

 

이쪽이 파티션 1 이라고 생각하면됩니다.

 

파티션의 시작 섹터

 

 

그리고 02 03 00 은 사용을 하지않는 값입니다.

그리고 0B인 FAT32 타입이 나타나있고

 

이곳은 무슨값이 들어가도 상관이 없습니다.

 

80 00 00 00 = 16진수인데

 

윈도우 시스템은 리틀인디안 인것을 명심해야한다.

 

이것을 10진수로 변환하려면 

00 00 00 80 으로 바꾸고

십진수로 바꾸면

 

 

파티션의 시작 섹터 번호

 

 

00 E8 1F 00 을 10진수로 바꾼것입니다.

 

 

 

결국 128 부터 BR 부트레코드가 되는것이고

 

 

128 인 우리가 구한 값을 더하게되면 파티션2번 섹터가 나오게되는 겁니다.

 

 

밑에그림을 보게되면 위에 말이 이해가갑니다.

 

 

 

 

부트 플래그 : 00(부팅X), 80(부팅0) -빨간색

파티션 시작주소(현재 사용 X) -주황색

파티션 타입 : NTFS(07), FAT32(0B, 0C) -노란색

파티션 끝 주소(현재 사용 X) - 초록색

파티션 시작 섹터 번호(중요) - 파란색

파티션 총 섹터 수 : 976,773,167

* sector : 하드디스크에 데이터를 저장하는 최소 단위(512byte)

* cluster : sector8개 묶은 단위

 

- Signature : 55 AA

 

 

 

 

 

 

 

 

파티션

- BR : 파티션 정보

- FAT : 데이터의 위치, 21의 백업이 저장

- Root Directory : 파일/디렉토리의 이름, 속성

- Data : 실제 데이터 저장

 

RESERVED는 데이터의 물리적인 위치 

 

 

 

 

 

 

 

이제 128 번 섹터로 갑니다 

 

 

 

 

 

128번 섹터가 

부트 레코드 섹터이고

 

 

또한

 

 

BOOT RECORD BACKUP SECTOR를 구하기위해서.

백업된 섹터 번호(+6에 저장

128 + 6 을 하면 134 로 가봅니다.

 

 

 

그내용의 백업이 자동으로 저장되있습니다.

이내용을 복사해다가지고

 

백업된 부트영역으로 가서 복사해가지고 다시붙여주게되면 악성코드로 MBR이 다날아가더라도

다시 복구시킬수있습니다!

 

 

 

 

FAT32 파일시스템 - BR 분석(HxD)

Boot Record(파티션 섹터 가장 처음부터 시작)

 

 

 

 

중요 시그니처

- RS(Reserved Sector cluster) : FAT AREA가 나오기 전 영역의 섹터 수

- Root Directory Cluster

- Boot Record Backup Sector : 백업된 섹터 번호(+6에 저장)

- File System Type

 

Big Endian Little Endian

- BE : 리눅스, 왼쪽 -> 오른쪽, 사람이 읽기 편하다, 디버깅

- LE : 윈도우, 오른쪽 -> 왼쪽, 기계가 읽기 편하다, 포인터

- 12345678의 표현

big endian : 12 34 56 78

little endian : 78 56 34 12

* 가장 작은 단위는 byte 내부의 순서는 그대로다

 

 

===============================

 

파일의 복구

 

 

이X표시가 삭제된 표시인데

실제 데이터는 있는데

 

재를 복구를 시켜주려면

 

FAT 영역로 가야합니다.

 

 

 

 

이게 RS인데 4122 이고

 

현재 섹터가 128 이니까 

 

더하면 4250 가 FAT영역이 되게 됩니다.

 

 

FAT32 파일시스템  FAT 분석

 파일이나 디렉토리의 할당정보를 클러스터 단위로 저장

 BR(128) + RS(4122) = FAT(4,250) 시작 섹터

 

 

 

저파일의 위치정보는 4250 부터 들어있다고 생각하면 됩니다!

 

 

 

 

 

 

ROOT Directory가 있는 곳을 가려면

fat 다음 부터 바로 rootdirectory니까

 

 

 

FAT32 파일시스템 - Root Directory 분석

파일/디렉토리의 이름/속성(80)

FAT 시작 섹터(4,250) + (FAT size 32=2,035) X 2 = 8,320

- FAT의 개수는 백업을 위해 항상 2중으로 저장

 

 

 

fat size 32 파일하나당 두줄

파일/디렉토리 하나당 32byte를 사용

 

 

 

 

여기에 아까 X표시된  PNG 파일이 존재 하였습니다.

 

 

 

앞에 8개까지는 파일이름

50 4e 47 은 확장자

77 34 00 00 파일의 총 크기는 반올림해서 10kb정도 됩니다.

 

 

 

 

 

x라는 표시가 사라지고 파일의 복구가 됬습니다.

 

c드라이브에서 파일을 삭제한다고해서 모든게 삭제되는게아니고

눈에 보이지만 않는것 뿐입니다. 

 

 

 

 

 

 

 

* E5로 시작하는 파일은 현재는 삭제되었다는 뜻입니다.

그래서 e5를 삭제하고

ftk imager root에서 확인

 

삭제된 파일을 복구하려면 맨앞에 E5 41로 바꿔주면 된다.

 

 

 

============================================

 

 

 

파일의 생성된 시간을 구하기

 

 

 

 

 

 

이 맨끝에 있는 것이 파일의 생성시간 입니다.

 

93 A6 으로 리틀인디안이니까 바꿔주고

이렇게 비트로 바꿔준다음에

5개 6개 5개로 쪼갭니다

10010 01110 100110

 

10010은 시     

18시가 되고

 

011101 은 분

29분이 되고

 

 

00110은 초인데 초는 곱하기2를 합니다

그래서 6 *2 로

12초가 됩니다.

 

결국 18시 29분 12초가 파일의 생성 시간이 되게됩니다.

 

-

  X2

 

 

 

이파일의 생성 날짜를 구하기

 

 

 

 

A6 93 바로뒤에  생성 날짜인 82 4B가 있습니다.

 

86 48은 리틀인디언 이여서

 

48 82 로 되고

0100100 0100 00010

연도+1980 월 일

 

7개 4개 7개로 쪼갭니다

 

 

0100100 + 1980 해서 2016년이되고

0100은 4월 이되고

00010은 2일이 됩니다.

 

 

 

근데 2016년 4월 3일이라고나오는데 기준시가 0인것을 열었습니다.

 

시간은 UTC를 고려하여 판단해야한다

시차가 영국과 9시간이나기때문에

 

2016년 4월 3일 오전 3:29분에서  9시간을 빼게되면

2016년 4월 2일 오전 18시 29분 12초가 되게됩니다.

 

 

 

 

 

FAT32 파일시스템 - 삭제된 파일 분석 및 복구

 fat32-normal-sample에서 삭제된 파일 복구(sector=8320)

- 자동 복구 - ftk imager에서 우측키 클릭 후 복구

- 수동 복구 - hxd E5 41로 변경

 

 

결론

 

X표시되있는 파일을 복구시킨다음에 파일생성 시간과 날짜를 구해봤습니다.

 

복구시킬때는 rootdirectory에서 파일앞에 E5 를  41로 변경하였습니다.

 

 

 

 

 

MBR은 마스터 부트레코드로 부팅할떄 사용하는것

 

BR은 파티션 마다 있는것

데이터 각각의 시작점을 알려주는 목적 데이터영역은 어디서부터~ 그런것

 

MBR은 파일에 하나씩만있는것

 

 

 

 

======================================================

AMI PNG는

 

 

시작 주소 00 00

끝주소 00 05   =5

 

 

(0+5)-2 * 8 = 24

 

8320 섹터 + 24섹터 = 8344 섹터

 

 

 

 

삭제된 파일이 실제로 저장된 데이터 영역으로 이동

- 8320 +

( (시작주소(Low) + 끝 주소(High)) -2(시스템에서 예약된 클러스터)=3 ) X 8 = 24

= 8344 sector

 

* sector : 하드디스크에 데이터를 저장하는 최소 단위(512byte)

* cluster : sector 8개 묶은 단위

 

 

 

8344 섹터로 이동해보앗습니다.

 

 

8320 섹터에서는 이게 9954BYTE이다. 

26 E2로 리틀인디언 하니까

 

이것을 하게되면

 

 

이렇게되는데 이렇게 되면 새창을 열어 저 복사한것을 붙여 넣으면 

 

 

 

이렇게되고

 

이파일을 저장하게된다면

PNG파일을 수동복구 시켰다

 

 

 

 

 

 

 

 

 

 

 

 

댓글()