Dreamhack/Dreamhack Wargame (Challenge)

[145] IT 비전공자 [dreamhack]Corrupted Disk Image문제 풀기

imaginefuture-1 2025. 2. 2. 17:53

함께 실습해 보아요!! 포렌식!

 

🖥 NTFS (New Technology File System)란?


**NTFS(New Technology File System)**는 Windows 운영체제에서 사용하는 기본 파일 시스템입니다.
Windows NT 기반(Windows 2000, XP, Vista, 7, 8, 10, 11 등) 운영체제에서 사용되며, 강력한 보안성, 안정성, 성능을 제공합니다.


📌 NTFS의 주요 특징

1️⃣ 파일 크기 및 볼륨 크기 지원 📏

  • 파일 크기: 최대 16TB (4KB 클러스터 기준)
  • 볼륨 크기: 최대 256TB (Windows 10 이상)
  • FAT32(4GB 제한)와 달리 초대형 파일을 저장 가능

2️⃣ 보안 기능 🔒

  • 파일 및 폴더별 접근 권한 설정 가능
    • **ACL(Access Control List, 접근 제어 목록)**을 사용해 파일마다 개별적인 보안 정책 적용
    • 사용자별 읽기/쓰기/실행 권한 설정 가능
  • 파일 암호화(EFS, Encrypting File System) 지원
    • 개별 파일을 암호화하여 다른 사용자가 접근하지 못하도록 보호

3️⃣ 저널링 파일 시스템 📝

  • 저널링(Journaling) 기능:
    • 파일 시스템이 변경될 때 로그(저널)를 기록하여
      시스템 충돌, 정전 발생 시 데이터 복구 가능
    • 파일 손상 가능성이 적음 → FAT32보다 안정적

4️⃣ 압축 및 중복 제거 📦

  • NTFS 압축 지원
    • 파일을 자동으로 압축하여 저장 → 디스크 공간 절약
  • 중복 제거(Deduplication) 지원
    • 동일한 파일이 여러 개 있을 경우, 하나의 데이터만 저장하여 공간 절약

5️⃣ 파일 속성 및 메타데이터 🏷️

  • 파일마다 추가적인 메타데이터(생성 날짜, 수정 날짜, 접근 권한 등) 저장 가능
  • ADS(Alternate Data Streams, 대체 데이터 스트림) 지원
    • 파일에 숨겨진 데이터 추가 가능 → 보안 분석 및 포렌식에서 중요

6️⃣ 디스크 조각 모음 최소화 🔄

  • NTFS는 파일을 저장할 때 자동으로 조각화를 최소화하는 방식 사용
  • FAT32와 달리 조각 모음(Defragmentation)이 자주 필요 없음

📊 NTFS vs. FAT32 vs. exFAT 비교

파일 시스템 최대 파일 크기 최대 볼륨 크기 보안 기능(ACL) 저널링 지원 주 사용 환경

NTFS 16TB (4KB 클러스터) 256TB+ ✅ 있음 ✅ 있음 Windows (기본)
FAT32 4GB 제한 2TB ❌ 없음 ❌ 없음 USB, SD 카드
exFAT 16EB (이론적) 128PB ❌ 없음 ❌ 없음 USB, 외장 HDD, macOS & Windows

📌 정리:

  • Windows 시스템에서는 NTFS 사용이 가장 좋음
  • FAT32는 USB 같은 작은 저장 장치에 적합 (하지만 4GB 파일 제한)
  • exFAT은 Windows & macOS 모두 지원 (FAT32보다 개선됨)

💡 결론

✅ NTFS는 Windows 운영체제에서 가장 널리 사용되는 강력한 파일 시스템
파일 보안, 안정성, 대용량 파일 지원 등에서 FAT32보다 우수
저널링 시스템, 파일 암호화, 압축 기능 등 다양한 장점이 있음
✅ 하지만 Linux, macOS에서 기본적으로 읽기만 가능 (쓰기 제한)

🚀 Windows에서는 NTFS를 기본 파일 시스템으로 사용하고, USB 같은 외장 장치에는 exFAT을 추천!

 

 

📌 VBR (Volume Boot Record)란?


**VBR(Volume Boot Record, 볼륨 부트 레코드)**는 파일 시스템이 저장된 디스크의 첫 번째 섹터(섹터 0)에 위치하는 부트 로더 코드 및 파일 시스템 정보를 포함한 영역입니다.

📌 VBR의 역할:

  1. 운영체제를 부팅할 때 파일 시스템 정보를 읽고, OS를 로드하는 부트 로더 실행
  2. 파일 시스템의 기본적인 구조와 설정 정보 저장 (NTFS, FAT32 등)

🔍 VBR의 구조 (512바이트)

VBR은 512바이트 크기의 데이터 블록으로 구성되며, 주요 필드는 다음과 같습니다:

오프셋 크기 설명

0x00 3바이트 점프 코드 (Jump Instruction) (부트 코드 실행을 위한 명령어)
0x03 8바이트 OEM ID (파일 시스템을 만든 OS 정보)
0x0B 25바이트 BPB (BIOS Parameter Block) (파일 시스템 정보)
0x24 48바이트 파일 시스템 정보 (NTFS, FAT32 등)
0x5A 2바이트 부트 시그니처 (0x55AA) (VBR이 유효한지 확인)

📌 VBR이 손상되면?
OS 부팅 불가 (파일 시스템 정보를 읽을 수 없음)
데이터 손실 위험 (파일 시스템 복구 필요)


💾 VBR vs. MBR 차이점

구분 VBR (Volume Boot Record) MBR (Master Boot Record)

위치 각 파티션의 첫 번째 섹터 디스크의 첫 번째 섹터 (LBA 0)
크기 512바이트 512바이트
역할 특정 파일 시스템(NTFS, FAT32) 정보 저장 및 OS 부팅 파티션 테이블 및 부트 로더 관리
포함 정보 부트 로더 코드, 파일 시스템 메타데이터 부트 로더, 파티션 테이블 (최대 4개)
손상 시 문제 특정 파티션 부팅 불가, 파일 시스템 오류 디스크 전체 인식 불가, OS 부팅 불가

MBR은 디스크 전체를 관리하는 반면, VBR은 개별 파티션을 관리합니다.


🛠 VBR 확인 및 복구 방법

1️⃣ Windows에서 VBR 확인

🔹 VBR 덤프 확인 (관리자 권한 필요)

dd if=\\.\C: of=vbr_backup.bin bs=512 count=1

🔹 VBR 복구 (NTFS 파일 시스템)

bootrec /fixboot

2️⃣ Linux에서 VBR 확인

🔹 NTFS/FAT VBR 덤프

sudo dd if=/dev/sda1 of=vbr_backup.bin bs=512 count=1

🔹 VBR 복구 (NTFS)

sudo ntfsfix /dev/sda1

🛠 결론

VBR(Volume Boot Record)은 파일 시스템 정보를 저장하는 부트 레코드이며, 각 파티션의 첫 번째 섹터에 위치
운영체제 부팅 및 파일 시스템 관리 역할
MBR과 다르게 개별 파티션을 위한 정보 저장
VBR 손상 시 부팅 불가 → bootrec /fixboot 또는 ntfsfix 명령어로 복구 가능 🚀

 

 

수업때 mbr 부트로더..cs 내용이넹!!


 

문제를 차근차근 풀어보자

 

FTK로 열어보니 깨져있다...요걸 RAW 파일로 추출 해서 한번 보자

 

EB 52 90 4E 54 46 53은 NTFS 파일 시스템의 VBR 시그니처

 

맨끝이 0x55AA로 끝났다 = NTFS 파일 시스템
요거(복구용 VBR)를 복사해
맨 앞에 붙여넣어주자
그럼 짜자잔 FTK IMAGER로 다시 열어보니 파일들이 복구가 되었다!
읽지 말래서 읽었더니..SHA -256 KEY FILE이 플래그라한다 순간 DH{sha-256(keyFile)}입력할뻔;;
해시 값이 보인다 요걸 계산하는 프로그램이 hashcalc
sha 256을 체크하고 계산하면 요렇게 짜자잔 플래그가 나왔다

 

 

 

DH{e71e2b1230fd090aebd3a347310acac611e0161684fb4b7703135b6cc91bb7ac}