Always-Try(정보보안 및 일상)

포렌식 기초 - FAT32 and NTFS - 실습편 (with 010 Editor) 본문

Forensic

포렌식 기초 - FAT32 and NTFS - 실습편 (with 010 Editor)

Always-Try 2021. 2. 27. 16:14
본 게시글은 인프런 '맥으로 배우는 윈도우즈 포렌식'를 참고하여 작성했습니다. (www.inflearn.com/course/forensic-2/dashboard)
 

맥으로 배우는 윈도우즈 포렌식 - 인프런

유료 도구가 아닌 무료 포렌식 도구를 통해 더욱 깊이 있는 포렌식 분석 방법을 배웁니다. 초급 보안 Forensic Microsoft Windows 정보보안 온라인 강의 forensic

www.inflearn.com

 

#1. FAT32

1-1. 010 Editor

필자는 Mac OS 10.15 Catalina를 사용하고 있으며, 010 Editor 64bit(v11.0.1)를 설치했다. 32bit 설치했더니 실행이 안되서 찾아보다 보니, 32bit는 모하비까지 지원하는 듯하다. 여튼 현재 기준 최신 버전의 010 Editor는 11.0.1 이고 아직까지 빅서는 공식 지원하지 않는다. 

그리고 강의에 010 Editor를 열고 fat32.dd 파일을 연 후 Templates - Drive - Drive 를 선택해서 NTFS나 FAT의 경우 자동으로 파싱해주고 템플릿으로 보여주는 기능이 있다. 헌데,,!!! 없다. 저 기능이 없다. Templates는 있는데 Drive라는 메뉴가 없다. 흐음 이것저것 찾아보다가 추가 설치해야 된다는 것을 발견했다. Templates - Template Repository 에서 Drive를 Install 해주면 강의와 같이 Templates - Drive - Drive 메뉴가 보이기 시작한다.

근데,,!!! Templates - Drive - Drive 를 들어가도 Templates Results가 안보인다. 또 이것저것 하다보니 방법을 찾았다. View - Edit As - Drive 를 선택하면 그때부터 hex 값을 자동으로 파싱한 값들이 010 Editor 하단에 보이기 시작한다.

그리고 강의에서 010 editor는 1달의 무료 기간이 있다고 하는데 설치할 때 그런 안내 메시지는 보지 못했다. 1달이 지나봐야 알려나...흠..

 

1-2. FAT32 데이터 추출

이론편(2021/01/24 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 이론편)에 파란색으로 표시되어 있는 부분에 대해서 010 Editor로 확인해볼 수 있다. 

 

그림1. Sector 크기

 

그림2. Sector per Cluster
그림3. FAT Size(크기)
그림4. FAT1에서 확인한 Root Directory
그림5. FAT1에서 실제 사용중인 클러스터 정보 확인 (Root Directory 뒤 ~ FF FF FF 0F까지)
그림6. Data 영역
그림7. Data 영역 중 Directory Entry (86C00h ~ 86C30h)
그림8. 데이터의 위치 (First Cluster High bytes와 First Cluster low bytes = 0000 0003h -> 클러스터3)
그림9. 데이터의 크기
그림10. 데이터의 시작( 86E00h)부터 '크기+slack space'만큼 Mark selection 후 복사
그림11. FAT 데이터 추출 완료

 

 

#2. NTFS

1-1. NTFS 데이터 추출

이론편(2021/01/24 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 이론편)에 파란색으로 표시되어 있는 부분에 대해서 010 Editor로 확인해볼 수 있다. 

 

그림12. NTFS 구조
그림13. NTFS Sector 크기와 클러스터 구성 Sector 개수
그림14. MFT의 위치 (클러스터4 '뒤'!!)
그림15. NTFS에서 실제 파일에 대한 정보가 있는 위치

그림15의 파일 레코드 중 png_sample(1).png 파일의 위치와 크기를 확인 후 추출해볼 것이다.

그림16. png_sample(1).png 

파일의 위치는 해당 파일레코드의 attribute[3] -> NTFS_RUN_LIST > NTFS_RUN 의 OffsetFieldSize에 있고, 파일의 크기는 LengthFieldSize에 있다. Value 부분의 값은 실제 값이 아닌 자리 수를 나타낸다. (아래 그림17 참고)

그림17. OffsetFieldSize, LengthFieldSize

OffsetFieldSize는 750h 이다. 즉, 750h 의 클러스터 뒤에 있다는 말이다. 750h에 클러스터 크기(512 * 8 = 4096 = 1000h)를 곱해주면 그 값(750h * 1000h = 750000h)의 바로 뒤부터 파일의 시작이라고 보면된다. 

그리고 LengthFieldSize는 30h 이다. 즉, 30h의 클러스터를 차지하고 있다는 것이다. 따라서 30h * 1000h(클러스터 크기)인 30000h 만큼이 해당 파일의 크기라고 볼 수 있다. 

 

위 정보를 이용하여 데이터를 추출하면 아래와 같이 png 파일을 복원할 수 있다. 

 

 

 

 

 

 

끝.

Comments