일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #BrokenAuthentication
- c언어malloc #동적할당 #c언어동적할당 #c언어malloc사용하기
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #로또번호생성 #로또번호만들기 #중복제거 #중복제거알고리즘
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #CSRF #
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #commandinjection
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #xss #storedxss #CrossSiteScripting
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c배열포인터 #c언어포인터 #c언어배열포인터 #배열포인터
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터와문자열 #c언어문자열
- 사이버포렌식 #포렌식 #FAT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #Call by value #Call by reference
- XSS #ReflectedXSS
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #선택정렬 #선택정렬알고리즘
- c언어문자열처리방법 #c언어문자열
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #SQLi #sqlinjectioon
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #SQLi #TimeBaseSQLi #sqlinjection
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #phpcodeinjection #injection
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c2차원배열동적할당 #c언어동적할당 #c동적할당 #c언어동적할당2차원배열
- 포렌식 #사이버포렌식 #Forensic #정보보안 #IT
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #bruteFource #무차별공격
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #PUT메소드 #PUT #HTTP메소드 #취약점
- #FAT파일시스템 #파일시스템구조 #파일시스템 #Forensic #정보보안 #IT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #포인터 #포인터변수 #c언어주소 #주소
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터 #c언어포인터연산
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #robots.txt #검색엔진노출
- C언어 #C #C프로그래밍 #프로그래밍 #언어
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #C동적메모리할당 #malloc #메모리
- 파일시스템과파티션 #포렌식 #사이버포렌식 #Encase #Forensic #파티션 #파일시스템 #정보보안
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터의포인터 #c언어2중포인터
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터배열 #c언어포인터 #포인터 #c포인터
- Today
- Total
Hello Security World
Digital Forensic [FAT 파일 시스템] 본문
FAT 파일 시스템
FAT12 -1980년대 초
-플로피디스크용으로 처음 개발
FAT16 -1980년대 말
-하드디스크를 지원하기 위해 개발
VFAT -1995년
-FAT의 성능을 향상시키고 긴 파일 이름이 가능해짐
FAT32 -1996년
-VFAT를 확장해서 개발, 고용량 하드디스크를 지원
ExFAT -2006년
-4Gbyte 이상의 파일 지원 (264)
클러스터 크기에 따른 장단점
- 클러스터 크기가 크거나 작음에 따라서 장단점 존재
작은 경우
- 클러스터의 크기가 작은 경우의 장점은 클러스터 할당 때문에 버려 지는 용량이 적음
- 클러스터의 크기가 작은 경우의 단점은 FAT 영역의 크기 커짐
큰 경우
- 클러스터의 크기가 큰 경우의 장점은 FAT 영역의 크기가 작음
- 클러스터의 크기가 큰 경우의 단점은 크기가 작은 파일이 많은 경우 버려지는 용량이 많아짐
FAT16 파일시스템의 구조
FAT32 파일시스템의 구조
FAT 파일시스템 구조 세부 사항
- Boot Record: 1’st 섹터로서 해당 볼륨의 여러 가지 설정 값,
-부팅 을 위한 실행 코드 포함, 예약된 영역에 포함
예약된 영역:
- FAT16의 경우 1 섹터, FAT32의 경우 32 섹터
- Boot Record와 주요 항복 백업
FAT#1: 클러스터 할당 테이블, FAT#2의 경우 #1의 백업
Root Directory
- Boot Record에 그 위치가 기록되어 있으며 FAT16의 경우 FAT#2 바로 다음에 위치
- 최상위 Directory에 포함된 파일 또는 디렉터리에 대한 Metadata (Directory Entry)들을 저장
Boot Record (공통 사항) Table 4. 위치 크기(Bytes)
예약된 영역(FAT32)
- 섹터 #0: 부트 레코드
- 섹터 #1: FSInfo (FileSystem Information)
- 섹터 #6: 부트 레코드 백업
- FSInfo와 부트 레코드 백업은 부트 레코드 설정 값(File Sys Info, Backup Boot Sec)에 따라 다를 수 있음
(Root) Directory와 Directory Entry
- Directory Entry: 파일 또는 디렉터리에 대한 정보를 기록하고 있는 Metadata 또는 Index
- Directory: 해당하는 디렉터리에 포함하고 있는 서브 디렉터리와 파 일에 대한 Directory Entry의 집합
Root Directory: 최상위 디렉터리
LFN Directory Entry
기존 8.3 형식의 파일명 길이 제한을 극복하기 위해서 고안
- Long File Names(LFN)은 다음과 같은 특징이 있음
- 유니코드(UTF-16)방식으로 다국어 지원
- 최대 255자 저장 확장자가 3자 이상 가능
- 기존의 Short File Name(SFN)과 호환
- 기존의 SFN보다 특수 문자 허용 범위가 넓음
기존 Directory Entry와 동일한 Size(32byte)
LFN Directory Entry는 파일명만 저장하는 기능을 갖음
따라서, Directory 영역에 LFN Directory Entry와 함께 SFN Directory Entry 존재
LFN Directory Entry 구조 (32byte)
FAT 파일 삭제 과정
FAT Entry에서 File에 할당된 Cluster Entry를 0으로 설정
Directory Entry의 File Name 첫번째 byte를 0xe5로 변경
FAT 파일 복구 과정
Directory Entry에서 0xe5로 시작되는 파일명 검색
검색된 Directory Entry에서 파일명, 첫번째 Cluster 번호, 크기 정보 획득
첫번째 Cluster 부터 예상되는 위치까지 추출 파일의 Size가 작은 경우 정상 복구 가능 그러나, 파일 Size가 크거나 수정, 추가 등의 작업이 이루어졌던 파일의 경우 단편화 된 경우 발생 -> 기술적인 Data Carving 필요.
Boot 섹터에 Data 은닉 가능성 분석
Boot Code: 시스템을 부팅하기 위한 코드 그러나 Non-bootable인 경우 사용되지 않으므로 이 영역에 Data를 은닉 할 수 있음
FAT32에서의 예약된 영역에 Data 은닉 가능성 분석
Boot Record Sector, FSINFO Sector, Boot Record Backup Sector를 제외한 나머지 예약된 영역은 사용되지 않아 은닉 가능성 있음
FSINFO 내에 사용되지 않는 Byte들 (Reserved)이 많고 이러한 영역 들은 정상적으로 zero로 setting되는데 그렇지 않은 경우 분석 필요
Filesystem과 Volume의 Size 차이 분석
Filesystem 내에서의 Volume Size를 조작하여 여분의 Space에 데 이터 은닉 가능성 존재
Boot Record의 Total Sector 수와 MBR의 Partition Table에서 얻 은 Size를 비교하여 판별 가능
FAT Partition 복구 (Partition Table에 관련 정보 부재시)
Boot Sector Signature Search (0xAA55)
Volume의 시작 Sector에 존재하고 Offset이 510~511에서 검색
일반적으로 Disk에 Data가 존재한다면 False Positive한 결과를 포함하 여 검색됨
첫번째 Boot Sector, 두번째 FSINFO, 6번째 Backup sector에서 동일한 검색 결과가 나타나는 영역 분석 (Boot Record, FSINFO의 다른 항목 값 검사)
Bad Clusters 분석
FAT 파일시스템에서 특정 Cluster를 Bad로 mark할 수 있음
FAT# Entry에 Bad Cluster를 나타내는 0x?FFFFFF7 값 write
어떤 Application의 경우 Bad로 mark된 Cluster에 데이터를 저장하 기 때문에 ScanDisk와 같은 도구가 실제 Bad인지를 검사하지 않는 다고 함 이러한 특성을 이용하여 Bad Cluster 악용 가능
FAT 파일시스템 Data 영역의 마지막 Sector 분석
FAT에서의 Data 영역이 Cluster의 배수가 아닐 수 있음
따라서, 일부 여분의 Sector 존재 가능
여분의 Sector에 데이터를 은닉하거나 이전의 파일시스템 데이터가 남아 있을 가능성 존재
Directory Entry 조작 분석 (1/2)
Volume Label 속성을 갖는 Directory Entry는 기본적으로 Root Directory에 존재하며 Cluster 할당 정보가 0으로 설정됨 Volume Label 속성을 갖는 Directory Entry의 Cluster 할당 정보와 FAT# 조작으로 데이터 은닉 가능
다수의 Volume Label 속성 Directory Entry 추가
Directory Entry 조작 분석 (2/2)
사용되지 않는 Directory Entry 영역에 소량의 데이터를 저장할 가 능성
어떤 OS의 경우 Directory Entry를 연속적으로 검색하다가 Directory Entry의 첫번째 Byte가 0인 경우 검색을 중지하는 경우가 있음 이를 이용하여 빈 Directory Entry에 Data 은닉 가능
삭제된 폴더 복구: FAT가 포멧된 후 복구
‘.’ 폴더(현재 폴더)에 대한 Directory Entry 검색
‘.’ 폴더 Name이 Directory Entry에 저장된 값
“2E 20 20 20 20 20 20 20 20 20 20” 검색 (File Name(8)+Ext(3))
일반적으로 ‘.’ Directory Entry 다음에 ‘..’ Directory Entry 존재
Directory Entry 내 다른 값 (예, Attr)들을 검증
'정보보안 > Forensic' 카테고리의 다른 글
Digital Forensic [NTFS 파일 시스템] (0) | 2020.05.03 |
---|---|
Digital Forensic [파일 시스템 과 파티션] (0) | 2020.05.03 |
Digital Forensic [파일 시스템] (0) | 2020.05.03 |
Digital Forensic [Windows Artifact 분석] (0) | 2020.05.03 |
Digital Forensic [Windows 레지스트리 증거 수집] (0) | 2020.05.03 |