보안 전공생의 공부

SuNiNaTaS 21번 풀이 | 파일 시그니처 본문

Wargame/forensic

SuNiNaTaS 21번 풀이 | 파일 시그니처

수잉 2021. 1. 15. 11:16

◆ 파일 시그니처(파일 형식)

2장에서 <파일확장자와 파일시그니처> 관련된 내용에서 포렌식은 파일확장자가 아니라 파일의 헤도로 파일을 식별한다고 하였다.

파일 형식마다 가지고 있는 고유한 특징파일 시그니처라고 한다.

손상된 파일을 복구하거나 숨겨진 내용을 파악하는 포렌식의 특성상 이를 자주 활용한다.

시그니처는 헥사코드(16진수)로 구성되어 있고 이는 HxD 프로그램으로 확인할 수 있다.

헤더 시그니처푸터 시그니처으로 파일의 형식을 구분지을 수 있다.

어떤 파일의 헤더는 PNG인데 푸터부분이 이상하거나 다른형식(JPG)이면 해당 파일은 조작된 파일임을 예상할 수 있다.

(출처 : https://wogh8732.tistory.com/61)

 

 

File Type

Header Signature

Footer Signature

Description

ICO

00 00 01 00

Windows Icon Format

CUR

00 00 02 00

Windows Cursor Format

BMP, DIB

42 4D

B M

Windows Bitmap Format

GIF

47 49 46 38 37 61

G I F 8 7 a

00 3B

;

Graphics Interchange Format

GIF

47 49 46 38 39 61

G I F 8 9 a

00 3B

;

Graphics Interchange Format

TIF, TIFF

49 49 2A

I I *

Tagged Image File Format (little endian)

TIF, TIFF

4D 4D 2A

M M *

Tagged Image File Format (big endian)

PNG

89 50 4E 47 0D 0A 1A 0A

P N G

49 45 4E 44 AE 42 60 82

I E N D B `

Portable Network Graphics Format

JPEG/JFIF

FF D8 FF E0 xx xx

4A 46 49 46

FF D9

JPEG/JFIF Format

JPEG/EXIF

FF D8 FF E8 xx xx

45 78 69 66

FF D9

JPEG/Exif Format – Digital Camera

Exchangeable File Format

WMF

D7 CD C6 9A

Windows Metafile Format

EMF

01 00 00 00

Extended(Enhanced) Windows Metafile

Format Printer Spool File

EPS

25 21 50 53 2D 41 64 6F

% ! P S – A d o

62 65 2D

b e –

25 25 54 72 61 69 6C 65 72

% % T r a i l e r

0A

(presumption)

Adobe Encapsulated PostScript File

(출처 : http://forensic-proof.com/archives/323)

이 개념을 활용해서 써니나타스 21번 문제를 풀어보려고 한다.

자로 가려진 solution key 값을 구해야한다.

페이지 소스코드를 보면 딱히 건질 건 없다. 저 사진이 "monitor.jpg"파일임을 확인할 수 는 있다.

그래서 이 사진을 활용해보고자 한다.

우선 사진을 컴퓨터에 다운로드하고,

HxD 프로그램으로 헥스 단위로 쪼개 보았다.

맨 앞에 FF D8 FF E1 은 JPEG파일의 헤더 시그니처이다.

FF D9가 JPEG 파일의 푸터 시그니처이므로, 이를 검색(ctrl + F)해 찾아보면

이렇게 파일의 중간에 푸터시그니처가 있다.

그리고 F3(다음찾기)를 누르면 계속해서 발견됨을 확인할 수 있다.

마지막까지 FF D9가 있다.

FF D8 FF E1도 검색해보면 계속해서 찾아볼 수 있다.

헤더 시그니처로 파일이 시작하고, 푸터시그니처로 파일이 끝나야되는데

이것들이 파일 중간에서도 발견되는 걸로 보아

이 파일이 여러개의 JPEG파일로 되어있다는 것을 짐작해 볼 수 있다.

이제 파일 카빙을 하여 원래 파일의 형태로 복원을 해야한다.

첫번째 FF D8 부터 FF D9까지 복사해 새로운 파일을 만들고 확장자를 jpg로 만들어서 저장하면 열릴까 싶어 해보았는데 파일이 열리지 않았다. 내가 무언갈 잘못한 것일 수도 있겠지만 , 일일이 jpg파일의 헤더부터 푸터부분을 복사해 새로 파일을 만들어보는 이 방법은 아닌거 같다.

WinHex 프로그램이 파일을 여러개로 분할하는 기능도 해준다길래

이 프로그램으로 카빙을 해보았다.

Tools-Disk Tools-File Recovery by Type

으로 들어가서

File Type을 Picture로 설정해주고

왼쪽 밑에 있는 Respect individual byte/cluster boundary flags를

Complete byte-level search로 변경해주고 ok 버튼을 눌러주면

Output Path에 설정된 경로로 숨겨진 jpeg 파일들이 복구된다.

45개나 파일이나 있다고 한다. 14개는 안되는 파일!

이 JEPG파일들로 키값을 찾아내면

H4CC3R_IN_TH3_MIDD33_4TT4CK 이 나온다.

키값을 인증하면 성공 !!

어디다 인증하는지도 몰라서 헤맸는데 18번 auth key값 인증한 auth 창에 인증하면 된다고 한다. 그냥 키값들 다 거기서 인증하는 건가보다.

포렌식 문제는 처음이라 솔직히 구글의 힘도 조금 빌렸다 ..ㅎㅎ...

최대한 안 보려고 노력했고, 덕분에 많이 배웠다 :) ..

Comments