시스템 포렌식 - 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 : sector를 8개 묶은 단위

 

- Signature : 55 AA

 

 

 

 

 

 

 

 

파티션

- BR : 파티션 정보

- FAT : 데이터의 위치, 2는 1의 백업이 저장

- 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파일을 수동복구 시켰다

 

 

 

 

 

 

 

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'악성코드 및 포렌식' 카테고리의 다른 글

리버싱 기초  (0) 2021.03.04
시스템 포렌식 - NTFS  (0) 2021.02.09
시스템 포렌식 - 다운로드 기록 찾기  (0) 2021.02.09
시스템 포렌식 - 시작, 브라우저 접속 기록  (0) 2021.02.08
악성코드 분석 7 - 소니 픽쳐스 악성코드  (0) 2021.02.08
'악성코드 및 포렌식' 카테고리의 다른 글
  • 리버싱 기초
  • 시스템 포렌식 - NTFS
  • 시스템 포렌식 - 다운로드 기록 찾기
  • 시스템 포렌식 - 시작, 브라우저 접속 기록
taktaks
taktaks
보안 연습 일기장입니다. 모든 연습은 불법적인 용도로 사용하지 말아주시길 부탁드립니다. 용무는 wndudxkr2005@gmail.com 메일 부탁드립니다.
  • taktaks
    taktaks
    taktaks
  • 전체
    오늘
    어제
    • 보안 일지 (280)
      • 네트워크 구축 (12)
      • 리눅스 보안구축 (10)
      • 파이썬 기본 (11)
      • Web hacking (39)
      • 통합 인프라 보안 (41)
      • 공격기법 및 탐지 (33)
      • 악성코드 및 포렌식 (93)
      • 리버싱 (5)
      • 시스템 해킹 (20)
      • C 언어 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      프롯
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    taktaks
    시스템 포렌식 - FAT32 파일시스템 분석 및 복구
    상단으로

    티스토리툴바