[문제]

Find the hidden information in this PDF file.


[풀이]

문제 파일을 열어보면 프랑스어로 작성된 문서를 확인할 수 있다. 문제에서 프랑스어를 몰라도 할 수 있다고 했으므로 내용을 파악하는 것은 아니라는 생각이 들었다.

pdf steganography에 대해 찾아보니 보통은 pdf 문서 내용에 white space로 숨겨둔다고 한다. 그런데 해당 파일은 문서에 대한 캡쳐본들을 pdf로 만든 것 같다.

이에 string 명령을 통해 숨겨진 파일이 있음을 알 수 있었다.

 

EN - Malicious Origami in PDF - Raynal - Delugré (1).pdf

9-23, 57-58, 64-67, 74-78, 80-84 페이지의 내용을 참고하면 pdf 구조에 대해서 파악할 수 있다.

아래의 링크 또한 설명을 잘 해주고 있어서 가져왔다!

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=stop2y&logNo=221280356184

(따라서 이에 대한 내용은 생략하겠다!)

pdf 속에 Hidden_b33rs.txt 파일이 존재하고, 아래에 F 77을 통해 77번 Stream을 참조? 한다고 알 수 있었다. (참조하는 것인지 이동하는 것인지는 잘 모르겠다..!)

77번 stream의 내용을 확인해봐야 할 것 같아서 peepdf를 통해 스트림을 추출하였다.

 

peepdf를 통해서 77 stream이 encoding 되어 있는 것도 확인할 수 있었고, 이를 77.txt로 저장하여 내용을 확인해보았다.

 

예상대로 인코딩 된 것을 볼 수 있었는데, 어떤 기법으로 인코딩 되었는지는 이것만 보고는 파악하기가 어려웠다.

peepdf 사용법에 대해서 알아보던 중 decode 부분에서 다양한 인코딩 방식을 디코딩 해준다는 것을 알게 되었고, 이 기법들 중 하나일 것이라고 생각하여 base64부터 시도해보았다.

http://forensic.korea.ac.kr/DFWIKI/index.php/Peepdf

 

77.txt 속의 stream 내용만 남긴 후 base64 decoding하여 dec.txt에 저장하였다.

dec.txt 파일을 확인하였더니 jfif, jpeg라는 문자열이 보였다. 이에 사진 파일임을 확신하게 되었고, dec.txt를 dec.jpg로 변경하였다.

eog를 통해 dec.jpg를 읽어보면 flag를 획득할 수 있다.

 

 

++ 풀이 후 다른 방법도 고민해보다가 binwalk를 통해서도 구할 수 있었다.

추출한 파일에 대해서 file 명령어를 통해 type을 확인해보니 data와 ascii text가 섞여 있었다. 이에 ascii text 파일들만 확인해보았는데, 그 중 233212에서 77stream과 동일한 내용을 확인할 수 있었다.

이후 과정은 동일하게 진행하였다.

++참고) https://www.base64decode.org/사이트에서도 파일 자체를 디코딩하여 변환해준다.


flag

🍒 Hidden_embedded_Fil3

[문제]

A police unit intercepted a message from a terrorist group. This message may contain a secret key used to encrypt other communications. They need you to decrypt it !


[풀이]

문제에서 주어진 파일이 ppm 확장자를 갖고 있어서 gimp 로 열어 보았더니 다음과 같은 사진을 볼 수 있었다.

사진에서는 flag로 유추되는 값을 볼 수 없었고, 파일의 hex 값과 strings 값을 확인하면서 pass에 대한 hint를 얻을 수 있었다.

문제에서 "a language where the programs are works of modern art’’라고 얘기했는데, 관련하여 검색해보니 piet esoteric programming 이라는 기법이 있었다.

https://esolangs.org/wiki/Piet

https://www.bertnase.de/npiet/npiet-execute.php 사이트에 문제 파일을 넣으면 flag가 아니라 key를 출력한다.

 

key를 이용하여 strings에서 추출한 암호를 해독해야 한다고 생각하였고, key를 이용하는 암호 기법들을 시도하던 중 비즈네르 암호를 통해 해독할 수 있었다.


flag

🍒 ARTLOVERSWILLNEVERDI

[문제]


[풀이]

문제에서 더 깊은 곳으로 가야한다고 하는데..

문제 파일의 헤더 시그니처를 확인해보았더니 2개가 존재하였다. 이것을 통해 파일 속에 또 다른 파일이 있을 것이라는 생각을 하였고, binwalk 명령으로 확인해보았다.

문제 파일을 binwalk 명령으로 확인한 결과 파일 속에 또다른 jpg 파일이 있다는 것을 확인할 수 있었다. -e 옵션으로 파일들을 분리하였고,

분리된 폴더 속에서

 

새로운 사진을 볼 수 있었다.

사진을 열어 보면 flag를 획득할 수 있다.


flag

🍒 B33r1sG00d!

[풀이]

문제 파일의 스펙트럼을 확인하기 위해서 sonic visualiser를 설치하였다.

https://www.sonicvisualiser.org/에서 설치 가능!

 

문제 파일을 sonic visualiser로 열어보면 secret-password라는 문구를 확인할 수 있다.


flag

🍒 secret-password

[문제]

You attend an interview for a forensic investigator job and they give you a challenge to solve as quickly as possible (having the Internet).They ask you to find the date of printing as well as the serial number of the printer in this document.You remain dubitative and accept the challenge.

 

The answer is in the form:

hh:mm dd/mm/yyyy SSSSSSSSwith

hh: the hour of the event
mm: the minutes of the event
dd: the day of the event
MM: the month of the event
yyyy: the year of the event
SSSSSSSS: the serial number

[풀이]

문제 파일을 확인했을 때 풀이를 위해 얻을 수 있는 hint는 없다.

 

yellow dot이라고 구글에 검색해보면 컬러 프린터 출력물 속에 노란 점들을 삽입해서 데이터를 숨겨 놓는 기법인 것을 알 수 있다. yellow dot을 찾기 위해서 방법들을 검색해보니 yellow dot을 확인하려면 배경을 파란색 계열로 바꿔주거나 복사 스캐너를 통해서 확인할 수 있다고 한다.

이에 우분투에서 convert 명령으로 배경을 파란색으로 변경하니 아무것도 확인할 수 없다. 포토샵 프로그램으로도 확인할 수 있다고 그랬는데 gimp로 변경해봐도 yellow dot을 찾아볼 수 없었다.

포렌식에 주로 사용되는 online 사이트들을 찾아서 이용하니 yellow dot을 확인할 수 있었다.

http://fotoforensics.com/analysis.php?id=4fc1d07d5248bf5fcaa5697fafd22280c1d560e1.2149907

https://stegonline.georgeom.net/image

https://incoherency.co.uk/image-steganography/#unhide

https://aperisolve.fr/58bfea09dc12465442702f0ee180f54c

위의 사이트들이 포렌식 tool로 주로 사용된다고 한다.

 

처음에는 LSB를 half 로 변경하여 확인하였는데, 오른쪽 상단에 하얀 네모 박스가 있었다. 여기서 yellow dot이 있을 것이라는 추측을 할 수 있었고,

파일에 사용된 색을 뒤바꿔서 확인해보면

여기 사진에는 잘 안보이지만 오른쪽 상단 부분에 파란색 점들이 보인다.

그 부분만 확대해보면 이렇게 나타나있다.

이제 해석하는 것이 관건인데, 해석하는 방법과 관련해서는 아래 게시글을 참고하였다.

https://en.wikipedia.org/wiki/Machine_Identification_Code

https://www.cybrary.it/blog/0p3n/printer-steganography/

해독 법에 대해 한 장의 사진으로 정리해보면 다음과 같다.

 

가로 세로 검은선 안에 있는 yellow dot으로 날짜, 시간, 시리얼 값을 표현할 수 있고, 가로 줄은 사진과 같이 시간(2~5), 날짜(6~8), 구분자(10), 시리얼(11~14)로 구분한다. 각각의 값은 세로줄에 의해 결정 되고 세로줄의 각 칸은 2^n 형태로 나타난다.

사진의 2번을 예로 설명하자면, yellow dot이 32, 16, 2에 찍혀있는데 이 값들을 모두 더하면 50이다. 즉, 시간에서의 50분을 2번의 yellow dot으로 표현한 것이다. 이런식으로 yellow dot이 위치한 곳의 값들을 더해보면 날짜, 시간, 시리얼 값을 구할 수 있다.

다시 문제로 돌아와서 위의 예시 사진처럼 바꿔보면!

 

이렇게 나타낼 수 있고

각각의 값들을 더해보면 5 11 27 7 14 30 29 92 6 이다.

이 값들을 영역에 맞게 나눠서 최종적으로 정리해보면 11:05, 2014-07-27, 06922930임을 알 수 있다.

이것을 문제에서 제시한 형태로 작성하여 인증해주면 문제를 해결할 수 있다.

 

Issue

💡https://web.archive.org/web/20180305181029/https://w2.eff.org/Privacy/printers/docucolor/에서 yellow dot 해독을 할 수 있다고 하는데 나만 그런지는 모르겠지만 해독을 안해준다👿

정답 인증 후에 풀이를 보니 코드를 작성해서 구할 수 있다고 하는데 코드는 이해 못하겠다☹️

flag

🍒 11:05 27/07/2014 06922930

[문제]

Deeply understand the meaning of this famous poem to validate this challenge.


[풀이]

문제를 모두 드래그 해보면 제시되어 있는 문장 외에도 공백으로 보이는 것들이 함께 입력되어 있음을 알 수 있다. (번역기 돌려보려다가 알아냈음..!)

이를 보고 white space 를 떠올렸고, https://ideone.com/l/whitespace 에서 공백처럼 보이는 문자열들만 복사하여 decoding해보면 flag를 획득할 수 있다.

 


flag

🍒 RootMe{Wh1t3_Sp4c3}

[문제]

This challenge is only available in french language due to it specificity.


[풀이]

해당 문제는 프랑스어로 접속해야 내용을 볼 수 있다.

문제 내용을 해석했을 때는 문제 해결에 대한 실마리를 찾을 수가 없어서 George Sand & Alfred de Musset에 대해 찾아보았다.

찾아본 내용들도 프랑스어이기도 하고 자료도 많이 안보여서 어떤 기법인지 정확하게 이해는 못했다.

찾아본 바로는 고전 암호학 중에 하나이고 George와 Alfred de Musset이 주고 받는 편지 속에 암호를 숨겨둔 기법인 것 같다.

1 - Cryptography - Phan Duong Hieu.pdf

이 파일에서 암호 방식에 대해서 살펴볼 수 있었다.

 

처음에 George가 보낸 편지에서는

빨간 줄로 되어 있는 문장이 암호문이고 검은색 문장들을 뒤에 덧붙여 숨긴 것 같다.

다음으로 Alfred de Musset가 답장을 하고, 다시 George가 답장을 했을 때는 가장 앞에 위치한 단어들만 읽어 암호를 해독할 수 있도록 하였다.

사실 이 자료만 보고는 빨간색이 의미하는 것이 무엇인지 잘모르겠어서

https://www.apprendre-en-ligne.net/crypto/stegano/lettres.html 사이트에서 돌려보면서 이해했다.

내용에 대한 설명은 https://www.canalacademies.com/emissions/a-voix-lue/echange-epistolaire-entre-george-sand-et-alfred-de-musset에도 있는데 무슨 말인지 제대로 이해가 안되긴한다..!

문제의 가장 마지막에 위치한 메시지를 해석해보면 Use the last "hidden phrase", to validate this test. 이고, 숨겨진 문구를 가장 마지막에 위치한 문단에서 찾으라고 하여 정답이 Cette Nuit임을 알 수 있었다.


flag

🍒 Cette Nuit

[풀이]

문제의 wav파일을 들어보면 빠르게 어떠한 말을 읽고 있는데, 속도를 늦춰도 pass를 구할 수 없었다.

이에 goldwave라는 tool을 설치하여 속도를 늦추고 파일을 뒤집어 소리를 출력해보면 flag를 음성으로 출력해준다.

→ 원본

→ 변조


flag

🍒 3b27641fc5h0

[문제]

We suspect that this tweet hides a rendezvous point. Help us to find it.

Choose  a  jοb  yоu 
lονe,  and  you  wіll  never  have 
tο 
work  a  day  in  yοur
 lіfe.      
                 

The validation password is the meeting place (in lower case).


[풀이]

문제를 확인하면 알파벳의 크기가 다르다는 것을 알 수 있다.

문자 크기가 큰 알파벳이 pass라고 생각을 했으나 구글에 twitter secret messages 를 검색해보면

twitter에서 메시지를 숨기기 위해 사용되는 암호화 기법임을 알 수 있다.

https://holloway.nz/steg/에서 twitter secret messages를 해독할 수 있다.

여기서 유의해야 할 점은 문제에 있는 공백까지 모두 decoding site에 입력해야 올바른 hidden message 를 구할 수 있다.


flag

🍒 grand central terminal

+ Recent posts