시스템 포렌식 - NTFS

악성코드 및 포렌식|2021. 2. 9. 16:08

NTFS

 

 

 

 

 

 

 

128번 섹터로 가니까 NTFS라고 나오게됩니다

 

여기서도 백업 섹터들이 존재하는데

 

 

 

 

 

128+  Total Sector(FE7FF) = 1042559 섹터

         

 

 

 

 

 

 

 

VBR 의 백업은

이곳에 나오게되는 것 입니다.

 

VBR

- 파티션, 부팅 정보저장

- Boot Code, Bios Parameter Block, BC and Error MSG, Signature

- 시작주소 + 총 섹터 수 을 해주면 백업본 확인 가능

* data area 제일 끝부터 저장됨

 

 

 

 

 

 

 

 

 

 

MFT

- 데이터 파일에 대한 메타 정보

- $MFT, $LogFIle, $Volume 등의 파일로 구성

 

 VBR 주소 + (MFT 시작주소 * 8) = MFT 영역(128 + A9AA * 8 = 347,600 sector)

1클러스터는 8섹터

 

이파일의 영역이 마스터 테이블 영역 이라고 생각하면됩니다.

 

 

 

MFT mirror 주소는

 

 MFT mirror 주소 : 2 * 8 + 128 = 144 sector

 

 

 

 

 

NTFS 파일시스템 - VBR 분석

* ntfs 이미지 파일의 80(128) 섹터부터 시작

 

 

 

 

 

 

 

 

 

 

MFT 저장 구조

 

 

 

 

 

MFT Entry24번부터 일반 파일에 할당

 

MFT Entry 0 번은 $MFT 파일이고 

 

MFT Header 구조

 

- resident header : 파일크기가 700byte 미만으로, 데이터가 MFT 내부에 저장됨

- non resident header : 파일크기가 700byte 이상으로, 데이터가 별도 영역에 저장

 

파일크기가 700BYTE 이상인 것과 미만인것에 저장방법이 다릅니다.

 

 

 

 

 

 

이곳에 있다고 생각하면 됩니다.

 

 

 

 

 

 

 

WINHEX로 한번 열어보니까

 

Master File table은 0으로 시작한다고했는데

 

200

 

 

 

 

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

 

 

resident

 

--

 

resident header--

 

Singature : FILE or BAAD

LSN : $LogFile에 기록되어 있는 해당 파일의 마지막 트랜잭션 정보

Offset to Fst Attr : 첫번째 속성의 시작 위치(MFT Entry + 56바이트 뒤에 위치)

Next Attr ID : 다음 속성 ID

Winhex로 이미지 파일을 열면 속성값이 자동으로 체크된다.

- Specialist interpret 클릭하면 파일 브라우저 생성

 

 

 

- 속성 헤더 10 : standard_information(파일의 시간 정보 등)

생성시간-수정시간-MFT의 수정시간-마지막 접근시간(Dcode를 이용해 시간정보 계산)

- 속성 헤더 30 : File_Name(파일의 이름)

- 속성 헤더 80 : Data(파일 내용)

 

실제로 30을 클릭해보니까 filename 이라고 뜨고 옆에도 ntfs.txt가 기록되어있다.

 

 

 

 

 

저것을 이용해서 70 9E 1F 09 6D 94 D1 01을 디코딩 해보니까 저것은 영국기준으로니까

9시간을 뺴면된다

 

 

 

 

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

 

non resident 

 

 

 

 

non resident header---

 

- non-reg flag : 1이면 non, 0이면 reg

- VBR 시작주소 : 128

- MFT 시작주소 : (01 54 55) * 8 + 128 + 70(사용자의 데이터 영역) = 697,198

* MFT 영역은 기본적으로 70섹터를 차지한다

- 데이터 영역의 첫 섹터

 

 

non resident 에서는 바로 파일영역으로 넘어가게됩니다

 

그전에 것과 다르게 mbr이아니라 데이터영역을 보게됩니다.

 

여기서 mft를 찾아가보게되면

 

 

 

 

 

 

 

시작 주소는 여기이고

먼저 VBR로 갑니다.

128번 섹터

 

 

87125 * 8 +128 = 697,128 부터 MFT영역입니다.

 

 

 

 

$가 앞에 붙은것은 사용자가 알 수없는 시스템 파일 입니다.

 

사용자파일을 보기위해서는

 

- MFT 시작주소 : (01 54 55) * 8 + 128 + 70(사용자의 데이터 영역) = 697,198

 

697,198 여기가 사용자가 사용가능한 파일들입니다

 

 

 

 

 

 

 

 

이파일의 시작 주소

리틀 인디안으로 바꾸게되면

 

85636*8 = 685216

 

 

 

실제 데이터는 (01 4E 84) * 8 + 128(VBR 시작주소) = 실제 저장 위치(685,216)

 

속성 헤더 80 : Data(파일 내용)

 

 

 

실제데이터 위치를 구하기위해 VBR 시작주소도 더해 줍니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글()