Multimedia Forensic #17 호레이쇼가 플래그를 보며...

 

17번 문제

 

문제를 보면 이상한 이름으로 된 jpg 파일이 주어집니다.

 

문제 파일 확인

 

선글라스를 들고 있는 한 남자의 사진으로 보입니다.

 

이 분은 미국 드라마 CSI 시리즈에 등장하는 호레이쇼 케인이라고 하네요.

 

파일 시그니처 확인

 

HxD로 시그니처를 확인, JPG의 정상적인 파일 시그니처는 맞지만 밑에도 똑같은 JPG의 파일 시그니처가 더 있는 것을 확인하였습니다.

 

더 자세한 분석을 위해 exiftool 프로그램으로 문제 파일을 분석하였습니다.

 

exiftool : 이미지, 오디오, 비디오 등의 메타데이터 분석 프로그램

 

설치 사이트 : https://sourceforge.net/projects/exiftool/

 

exiftool

Download exiftool for free. Read, write and edit metadata. Perl library and command-line application for reading, writing and editing meta information (EXIF, IPTC, XMP, and more) in a wide variety of file formats (JPEG, TIFF, PNG, PDF, RAW, and more).

sourceforge.net

(리눅스로 사용하려면 apt install libimage-exiftool-perl 명령어 입력)

 

exiftool 사용법

 

exiftool 프로그램을 사용한 화면입니다. (이름이 너무 길어서 123으로 변경했습니다.)

 

결과를 확인해보면 47487 Byte를 가진 썸네일이 존재하는 것을 확인할 수 있습니다.

 

이제 exiftool 프로그램으로 썸네일을 추출해보겠습니다.

 

썸네일 추출 명령어

 

썸네일이 추출되었으니 파일을 확인해보겠습니다.

 

썸네일 파일 확인

 

선명하게 보이지 않고, 좀 흐릿한 사진으로 보입니다. 다시 exiftool 프로그램으로 파일을 분석해보았습니다.

 

썸네일 분석

 

결과를 확인해보면 이 파일에는 26822 Byte의 썸네일이 존재하는 것을 확인할 수 있습니다.

 

플래그 값 확인

 

이번에는 플래그 값으로 보이는 파일이 나옵니다.

 

좌우가 바뀌어 있어서 제대로 된 플래그를 보려면 그림판에서 좌우반전해서 보면 되지만, 저는 이 사진만으로도 플래그 값을 알 수 있어서 그냥 플래그 값을 입력했습니다.

 

이 방법은 편하게 푸실 수 있는 방법이고, 노가다로 풀 수 있는 방법을 하나 더 알려드리겠습니다.

 

HxD로 푸는 방법

 

중간에 jpg 파일의 헤더 시그니처가 보입니다.

 

그리고 밑에 보이는 블록의 시작점은 B8입니다.

 

블록(h)를 클릭하여 시작 오프셋을 B8로 입력하고, 끝 오프셋을 드래그를 맨 마지막으로 내려서 마지막 오프셋 값을 입력해줍니다.

오프셋 입력

 

그러면 시작 오프셋부터 끝 오프셋까지만 드래그가 됩니다. 복사해주시고 좌측 상단에 파일(F) - 새로를 눌러서 붙여넣기를 해주고 다른 이름으로 저장 - 확장자(.jpg)를 jpg로 해줍니다.

 

썸네일 확인

 

아까 맨 처음에 추출한 썸네일 사진을 볼 수 있습니다.

 

또 다른 jpg 시그니처 발견

 

위 썸네일 사진을 다시 HxD로 켜서 확인해보면 이번에는 오프셋이 CA로 시작하는 또 다른 JPG 헤더 시그니처가 보입니다.

 

같은 방법으로 블록(h)을 클릭하여 시작 오프셋을 CA로 입력해주시고, 끝 오프셋은 제일 마지막 오프셋 값을 넣어주시면 됩니다.

 

오프셋 입력

 

방금 했던 방법과 같이 복사한 다음 파일 - 새로 - 붙여넣기를 해주고 확장자를 .jpg로 해주면 됩니다.

 

플래그 값 확인

 

아까 말한 것과 같이 제대로 된 플래그를 볼려면 그림판에서 좌우반전을 해주시면 됩니다.

 

제대로 된 플래그

 

결국 알아보기 쉽도록 좌우반전을 했습니다.

 

FLAG = INS{MAGNIFICATION_X100_FOR_STARTERS}

Multimedia Forensic #16 원래 의미가 없는 것들도...

 

 

16번 문제

 

이번 문제는 텍스트 파일이 주어진 문제입니다.

 

파일 이름은 spam이라고 되어 있고, txt 확장자로 봐서는 텍스트 파일입니다.

 

텍스트 파일 확인

 

여기서 특이한 점은 이어지는 문장을 계속 중간에서 끊고 다음 줄로 넘겨서 스팸 메시지의 내용을 읽기가 매우 힘듭니다.

 

메시지만 봐서는 플래그를 얻을 수가 없습니다.

 

그래서 이 문제 파일은 스테가노그래피 기법을 써서 평문을 스팸 메시지로 변환했다고 생각하였습니다.

 

스팸 메시지를 복호화시켜주는 웹사이트로 가서 메시지를 복호화하였습니다.

 

복호화 사이트 : http://www.spammimic.com/decode.shtml

 

spammimic - decode

 

www.spammimic.com

 

스팸 메시지 복사

 

웹사이트 접속해서 입력 칸에 문제 파일의 텍스트를 모두 복사하고 하단의 Decode를 눌러줍니다.

 

플래그 값 확인

 

결과를 확인하면 스팸 메시지가 복호화되어 플래그 값을 확인할 수 있습니다.  

 

FLAG = flag_is_b3st_spam_st3g4n0

Multimedia Forensic #14 Graphics Interchange Format

 

14번 문제

 

문제를 보면 이번에는 문제에서 처음 보는 파일인 gif 확장자 파일이 주어졌습니다.

 

gif 파일

 

파일을 실행하면 모자를 쓴 할아버지가 웃고 계신 모습을 볼 수 있습니다.

 

gif 파일에 대해 쉽게 설명해드리면, 일상에서 사람들은 이 파일을 보고 움짤이라고 합니다.

 

gif의 파일 시그니처를 알아보기 위해, HxD를 실행시켜 시그니처를 확인해보았습니다.

 

GIF 파일 시그니처 확인

 

시그니처 일치

 

GIF 파일의 시그니처는 무조건 맨 처음에 47 49 46 38 부터 시작합니다.

 

여러 도구들로 분석해봤지만, 플래그가 나오지 않아 리눅스로 파일을 복사해서 분석해보았습니다.

 

리눅스에서 분석을 하던 중, Strings 명령어를 통하여 플래그 값을 확인할 수 있었습니다.

 

Strings : 파일 안에서 사용된 문자열을 출력해줍니다.

 

사용법 : Strings <옵션> <파일명>

 

 

명령어 입력

 

출력된 문자열을 분석한 결과, 플래그가 들어간 문자열을 찾을 수 있었습니다.

 

플래그 값 확인

 

중간쯤에 보면 flagisgandalfthebest라는 문자열을 확인할 수 있습니다.

 

FLAG = gandalfthebest

Multimedia Forensic #13 basics

 

13번 문제

 

문제를 보면 steg라는 이름으로 된 png 파일이 주어집니다.

 

png 파일 확인

 

파일을 확인해보면 위의 사진이 나오게 되고, 이름이 steg라고 되어 있어서 스테가노그래피 문제 같았고, 

도구의 이름도 steg가 들어가 있는 Stegsolve로 플래그가 있는지 확인해보았습니다.

 

Stegsolve : 스테가노그래피 분석 도구로 색상과 비트별로 이미지를 분석하는 기능을 제공해주는 도구

비트평면(bitplanes)에 기반을 두어 이미지 분석 도구, LSB를 검사할 때 주로 사용된다.

 

설치 사이트 : http://www.wechall.net/forum/show/thread/527/Stegsolve_1.3/

 

 

플래그 값 확인

 

밑에 화살표를 이용하여 bitplane을 변경하다가, Red plane3에서 사람 그림에 플래그 값이 나오게 되었습니다.

 

FLAG = L1nux3rror

 

 

 

 

Multimedia Forensic #12 이 파일에서 플래그를 찾아라!

 

12번 문제

 

문제를 보면 sunrise라는 이름으로 된 zip 압축파일이 주어지고, 이 파일에서 플래그를 찾으라고 합니다.

 

png 파일 확인

 

파일의 압축을 풀어주면 위의 사진이 나오게 됩니다. 이 파일에서 플래그를 찾으라고 했으니, HxD를 실행시켜 파일을 분석해보았습니다.

 

png 헤더 시그니처 확인

 

png 파일의 정상적인 헤더 시그니처였고, 밑에도 정상적인 푸터 시그니처 그 뒤에는 이상한 데이터도 존재하지 않았습니다. 여러 가지 도구를 써서 분석해보았지만, 플래그 값이 나오지 않아 이 사진 안에 뭔가 숨겨져 있을 수도 있다고 생각해서 png 파일의 헤더 구조를 분석해보았습니다.

 

png 파일 가로 크기
png 파일 세로 크기

 

png 파일은 [0x10~13] 오프셋에서는 가로 크기, [0x14~0x17] 오프셋에서는 세로 크기의 사진 파일 크기로 관리하게 됩니다.

 

가로 크기는 16진수로 BD0이기에, 10진수로 변환해주면 3024가 되고, 세로 크기는 16진수로 FC0이기에, 10진수로 변환해주면 4032가 됩니다.

 

그림 밑에 숨겨진 데이터가 존재하는지 확인해보기 위해 세로크기를 100정도 더한 값인 4132로 변경해줍니다.

 

10진수로 된 4132는 16진수로 변환시키면 1024가 됩니다.

 

세로 크기 변경

 

사진과 같이 값을 변경해주고 다시 사진 파일을 확인해줍니다.

 

밑에 플래그 확인

 

세로 크기를 변경해주면, 밑에 공간이 더 생기면서 플래그 값이 생겼습니다.

 

플래그 값 확대

 

플래그 값을 확대해보면 SECCON으로 된 플래그 값을 확인하실 수 있습니다.

 

FLAG = SECCON{Metadata_modification_is_used_for_information_hiding.}

Multimedia Forensic #11 계속 주시해라!

 

 

11번 문제

 

이번에는 Proxy라는 이름으로 된 jpg 파일이 주어지고 계속 주시하라고 합니다.

 

파일 확인

 

파일을 열어보면, YOU HAVE BEEN HACKED!라고 써져 있습니다.

 

전과 비슷한 문제가 아닌가 싶어서 바로 HxD를 켜서 시그니처를 확인해보았습니다.

 

파일 시그니처 확인

 

JPG 시그니처 확인

 

문제의 시그니처와 확인한 시그니처가 좀 달라서 정확한 시그니처가 아닌가 생각했지만 구글로 검색한 결과 JPEG 파일 형태의 일반적인 헤더 시그니처는 FF D8이라고 합니다. 그리고 JPEG 형태의 파일 특징은 처음에 존재하는 헤더 시그니처와 파일의 끝에 존재하는 푸터 시그니처 두 가지가 있습니다.

 

그래서 푸터 시그니처도 확인해보기 위해 찾기를 통해 푸터 시그니처를 검색해보았습니다.

 

푸터 시그니처 확인

 

푸터 시그니처를 검색해서 확인해본 결과, FF D9가 맞지만 푸터 시그니처가 맨 끝에 위치해야 하는데 그 뒤로 다른 문자열이 있는 것을 확인할 수 있습니다.

 

저게 플래그 값이 맞는지 확인해본 결과, 바로 저 문자열이 플래그 값이었습니다.

 

FLAG = 16bbee7466db38dad50701223d57ace8

 

 

+ Recent posts