==================================================
-윈도우 포렌식 – 페이지 파일과 스왑 파일
▲ 페이지 파일(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 |