Multimedia Forensic #39 그림을 보아라.

 

39번 문제

 

문제를 보면 eng라는 이름으로 된 png 파일이 주어지고, 그림을 보라고 합니다.

 

문제 파일 확인

 

문제 파일을 확인하면 위의 사진과 같이 어떤 URL을 적어둔 그림을 볼 수 있습니다.

 

그리고 그 아래는 흑인 아이와 여성이 나오고, 밑에는 아카이브에 그림을 제외하고 중요한 것이 없을까? 

라는 뜻을 가진 문장이 나옵니다.

 

위에 있는 사이트가 궁금해서 위 사이트로 접속해보았습니다.

 

사이트 접속

 

URL로 접속하면 archive.zip 파일을 다운받을 수 있습니다.

 

다운로드 버튼을 클릭해서 다운로드하고 압축을 풀면 됩니다.

 

생성된 파일

 

압축을 해제하면 1부터 6까지 jpg 파일들과 Thumbs.db 파일이 생성됩니다.

 

jpg 파일들을 보면 알파벳 하나씩을 저장했지만 이어서 읽어보면 FLAG IS 라는 문자열을 확인할 수 있습니다.

 

문제에서 그림을 제외하고 중요한 것이 없을까? 라는 문장을 보면 다른 파일인 Thumbs.db 파일에 플래그가 있을 것 같습니다.

 

Thumbs.db 파일은 윈도우에서 이미지 파일 미리보기 기능이 켜져 있으면 자동으로 생성되는 데이터베이스 파일입니다.

 

이 파일은 같은 폴더 내 사진 파일들의 정보를 담고 있는데 만약 압축 해제 된 이 폴더에 다른 사진 파일들이 존재했다가 이동이나 삭제 등 변화가 있었으면 Thumbs.db 파일에 정보가 남아있을 것입니다. 

 

Thumbs Viewer 프로그램을 사용해서 Thumbs.db 파일을 분석해보았습니다.

 

Thumbs Viewer : Thumbs.db 파일에 어떤 내용이 담겨 있는지 볼 수 있는 프로그램

 

설치 사이트 : https://thumbsviewer.github.io/

 

Thumbs Viewer - Extract thumbnail images from the Thumbs.db, ehthumbs.db, ehthumbs_vista.db, Image.db, Video.db, TVThumb.db, and

About Thumbs Viewer allows you to extract thumbnail images from the Thumbs.db, ehthumbs.db, ehthumbs_vista.db, Image.db, Video.db, TVThumb.db, and musicThumbs.db database files found on various Windows operating systems. Looking to open thumbcache_*.db fil

thumbsviewer.github.io

Thumbs Viewer 프로그램

Thumbs.db 파일을 불러오면 30개가 넘는 사진 파일들이 존재합니다.

 

[FILE] - [Save All]을 선택해서 사진 파일들을 모두 저장하면 됩니다.

 

플래그 값 확인

 

저장된 사진 파일들을 확인해보면 플래그를 확인할 수 있습니다.

 

FLAG = XP_WAS_SO_SWEET_FOR_HACKERS 

 

 

 

Multimedia Forensic #38 우리는 바탕화면 캡처 본을 얻었다.

 

38번 문제

 

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

 

문제 파일 확인

 

png 파일을 확인해보면 여러 가지 프로그램들이 실행되어 있는 윈도우 바탕화면을 확인할 수 있습니다.

 

자세히 살펴보면, HxD랑 그림판, 어떤 사이트에 들어간 것을 확인할 수 있습니다.

 

그림판 실행 화면

 

여기서 유심히 보면 사용자가 그림판의 채우기 기능을 적용한 것을 확인할 수 있습니다.

 

기본적으로 그림판은 실행했을 때 채우기 기능이 적용되지 않는 것을 생각해보면 HxD 사진을 채우기 기능으로 편집하려고 한 의도가 있었음을 확인할 수 있습니다.

 

똑같이 그림판으로 HxD 부분을 검은색 채우기 기능으로 색깔을 채워보겠습니다.

 

플래그 값 확인

 

위 화면과 같이 그림판으로 HxD 부분을 검은색으로 채우면 HxD의 오프셋 부분에 숨겨진 플래그를 확인할 수 있습니다.

 

FLAG = SECCON{the_hidden_message_ever}

 

Multimedia Forensic #37 답을 찾고 제출해라!

 

37번 문제

 

문제를 보면 stego_50이라는 이름으로 된 jpg 파일이 주어지고, 답을 찾고 제출하라고 합니다.

 

문제 파일 확인

jpg 파일을 열어 확인해보면 위 사진과 같이 나오게 됩니다.

 

파일에서 답을 찾으라는 것을 보고, 혹시 숨겨진 파일이 있는지 binwalk를 사용하여 확인해보았습니다.

 

binwalk : 대표적인 펌웨어 분석 툴로, 펌웨어 분석뿐만 아니라 포렌식 시 파일 카빙 등에 사용할 수 있는 유용한 도구 

 

참고 사이트 : https://github.com/ReFirmLabs/binwalk

 

ReFirmLabs/binwalk

Firmware Analysis Tool. Contribute to ReFirmLabs/binwalk development by creating an account on GitHub.

github.com

binwalk 사용

 

확인한 결과, zip파일이 안에 있는 것을 확인할 수 있습니다.

 

이제 binwalk 옵션을 통해 binwalk 안에 있는 내용물을 추출해보겠습니다.

 

옵션 입력

 

위의 옵션을 입력하고 파일명을 입력하면 안에 있는 내용물을 추출할 수 있습니다.

 

추출하면 zip 파일과 문서 파일이 하나씩 주어집니다.

 

usethis라는 문서 파일이 하나 생기는데, 그 파일의 내용을 보면 steghide 다운로드 주소가 나오게 됩니다.

 

문서 파일 확인

아마도 steghide를 다운 받아서 푸는 문제 같습니다.

 

Steghide : 이미지에 데이터를 숨기거나 추출해내는 도구 

 

설치 사이트 : http://steghide.sourceforge.net/

 

Steghide

If a new version of steghide is released, the announcement will be posted to the steghide-announce mailing list. If you want to be informed of new versions, please subscribe to this list. The steghide-devel mailing list serves as a discussion forum on steg

steghide.sourceforge.net

리눅스에서 쓰실거면 apt-get install steghide를 입력해주시면 설치하실 수 있습니다.

 

steghide 도구 사용

 

steghide를 사용해보면 패스워드가 필요한 것을 확인할 수 있습니다.

 

패스워드 힌트를 얻고자 jpg파일의 문자열 검색을 위해 strings 명령어를 통하여 문자열을 확인하였습니다.

 

strings 명령어 : 프로그램 안에서 사용된 문자열을 출력해줍니다.

사용법 : strings <파일명>

 

문자열 확인

 

문자열을 확인해보면 많은 문자열들을 확인할 수 있습니다.

 

그 중에 패스워드로 의심되는 문자열들을 입력해본 결과, 맨 마지막 문자열인 Delta_Force\m/가 맞는 비밀번호였습니다.

 

숨겨진 데이터파일 찾음

 

추출된 파일의 내용을 보면 플래그 값을 확인할 수 있습니다.

 

플래그 값 확인

 

FLAG = PrAgyaNCTF_sTeg1_key

Multimedia Forensic #35 black-hole

 

35번 문제

 

문제를 보면 black_hole 이름으로 된 jpg 사진 파일을 확인할 수 있습니다.

 

이 파일에서 플래그를 복구해달라고 하였으니 파일 안에 플래그 값이 있다는 것을 예측할 수 있습니다.

 

사진 파일 확인

 

파일 내부에 플래그 값이 있다는게 어떤게 있을까 생각하다가 가장 간단한 방법인 문자열이 들어갔을 수도 있다고 생각하여 문자열 검색을 통해 플래그 값이 있는지 확인해보았습니다.

 

문제에서 base64로 플래그 값을 보냈다고 하였으므로 우선 문제의 키 값 포맷을 base64로 검색하여 확인해보았습니다.

 

echo 명령어 입력

 

echo : 리눅스 명령어 echo는 주어진 문자열을, 문자열 사이에 포함된 공백과 줄 마지막에 개행문자를 포함하여 표준출력으로 출력하는 명령어다.

 

변경한 값과 일치하는 문자열이 있는지 strings 명령어를 통해 확인해보았습니다.

 

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

 

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

 

strings 입력

 

strings 명령어와 파일명을 입력하게 되면, 해당 파일 안에 있는 문자열을 출력해줍니다.

 

base64와 유사한 값 발견

 

위에서 확인했던 base64값과 유사한 값을 가지는 문자열을 확인할 수 있습니다.

 

base64로 디코딩

참조 사이트 : http://www.convertstring.com/ko/EncodeDecode/Base64Decode

 

Base64로 디코딩 - 온라인 Base64로 디코더

당신의 Base64로 여기에 텍스트를 디코딩 복사 파일로 디코딩 Base64로 다운로드 :

www.convertstring.com

해당 문자열을 base64 디코딩을 해보면 문제의 플래그 값을 확인할 수 있습니다.

(리눅스에서 디코딩을 진행하면 계속 오류가 발생하여 디코딩은 사이트에서 진행하였습니다.)

 

FLAG = BITCTF{S5 0014+81}

 

 

 

Multimedia Forensic #34 broken

 

34번 문제

 

문제를 보면 Broken이라는 이름으로 된 jpg확장자의 사진 파일이 주어지고, 키 포맷은 텍스트라고 합니다.

 

jpg 파일 확인

 

마치 QR코드처럼 생긴 사진파일을 확인할 수 있습니다.

 

문제가 QR코드와 매우 비슷하게 생겨서 QR코드 관련문제라고 생각하였고, QR코드와 관련된 문제는 주로 QR코드를 인식하였을 경우 해당 문제의 키 값이 주어지는 경우가 많습니다.

 

따라서 QR코드 파일을 온라인 QR코드 디코더에 인식시켰더니 올바른 포맷이 아니라고 뜨면서 인식이 되지 않습니다.

 

QR코드 디코더 사이트 : https://zxing.org/w/decode.jspx

 

ZXing Decoder Online

 

zxing.org

인식이 되지 않음

 

QR코드의 올바른 포맷을 생각했을 때, 일반적인 QR코드와 비교해보면 문제로 주어진 사진 파일의 색이

반전되어 있으므로 해당 파일의 QR코드 색을 그림판에서 바꿔주었습니다.

 

색 반전하는 방법 : 색 반전할 파일을 그림판으로 실행시키고, 이미지를 전체 선택해준 다음 마우스 오른쪽으로 클릭하여 색 반전을 적용하면 색을 반전 시킬 수 있다. 

 

색 반전 모양

 

색을 반전시키면 위의 화면과 같은 사진이 나오게 된다.

 

색을 반전 시킨 후 다시 QR코드 디코더에 인식을 시켜주면 사진이 인식되어 플래그 값을 확인할 수 있다.

 

플래그 (결과) 확인

 

FLAG = 1t_S_s0_cr3atIv3 

Multimedia Forensic #33 Find Key(Image)

 

33번 문제

 

문제를 보면 이미지(사진 파일)안에서 키 값을 찾으라고 합니다.

 

그리고 키 포맷은 또 md5형식으로 되어 있다고 합니다.

 

사진 파일 확인

 

문제에서 head.png라는 png형태의 사진 파일이 주어집니다.

 

주어진 사진을 윈도우 기본 사진 뷰어로 확인해보면 사람의 얼굴만 나오다가 깜빡거리면서 배경이 같이 나오는 것을 확인할 수 있습니다.

 

이를 통해 주어진 사진의 배경에 문제를 풀 수 있는 힌트가 있다는 것을 예측할 수 있습니다.

 

그림판으로 주어진 사진 파일을 열어보면 사진의 배경을 자세히 살펴보면 무늬가 반복되는 것을 확인할 수 있습니다.

 

배경 무늬 확인

 

배경 무늬는 흰색과 검은색이 칠해져 있으며, 색이 칠해져 있고, 비어있는 칸을 통해 8x6사이즈의 사각형이라는 것을 알 수 있습니다.

 

이를 통해 흰색을 0, 검은색으로 칠해진 부분을 1이라고 했을 때, 첫 번째 행은 01010011, 두 번째는 00110100, 세 번째 행은 01001110, 네 번째 행은 01000011, 다섯 번째 행은 01001000, 여섯 번째 행은 00110000이라는 것을 확인할 수 있습니다.

 

이를 헥스 변환 사이트를 통해 16진수로 변환해 보면 다음과 같은 결과 값이 나오게 됩니다.

 

참조 사이트 : https://www.binaryhexconverter.com/binary-to-hex-converter

 

Binary to Hexadecimal Converter

Binary to Hexadecimal Converter In order to use this binary to hex converter tool, type a binary value like 1110 into the left field below, and hit the Convert button. This way, you can convert up to 63 binary characters to hex. Binary to hex conversion re

www.binaryhexconverter.com

첫 번째 행 : 01010011 =  0x53

두 번째 행 : 00110100 = 0x34

세 번째 행 : 01001110 = 0x4e

네 번째 행 : 01000011 = 0x43

다섯 번째 행 : 01001000 = 0x48

여섯 번째 행 : 00110000 = 0x30

 

주어진 16진수를 아스키코드 값을 통해 정리해보면 S4NCH0 이라는 값이 나오게 됩니다.

 

문제에서 원하는 키 값 형태는 MD5라고 하였으니 HashCalc에서 S4NCH0를 md5로 변환하여 줍니다.

 

HashCalc : 다양한 해시값 추출 프로그램으로, 파일 무결성 검사 도구로 많이 쓰입니다.

 

설치 사이트 : https://www.slavasoft.com/hashcalc/

 

SlavaSoft HashCalc - Hash, CRC, and HMAC Calculator

SlavaSoft HashCalc HASH, CRC, AND HMAC CALCULATOR HashCalc 2.02     FREE A fast and easy-to-use calculator that allows to compute message digests, checksums and HMACs for files, as well as for text and hex strings. It offers a choice of 13 of the most popu

www.slavasoft.com

 

플래그 값 확인

 

Data Format에서 Text String으로 바꿔 주고, Data에 S4NCH0를 입력한 다음, Calculate를 눌러주면 md5로 변환된 플래그 값이 나오게 됩니다.

 

FLAG = 975186cff0a2bfd07862175d40fa36ff

+ Recent posts