[문제]

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

+ Recent posts