CTF/포렌식

[justCTF] PDF is broken, and so is this file - 포렌식 / binwalk / HxD / Ruby

SecurityMan 2023. 2. 17. 11:00

 

조금 어려웠던 포렌식 카테고리의 문제

 

문제 설명을 읽어보면 PDF 파일이 플래그를 가지고 있는데

 

사전에 뭔가 작업을 해야 찾을 수 있다고 한다.

 

반응형

 

 

문제에서 주어지는 파일은 challenge.pdf 파일이다.

 

 

썸네일을 보면 알 수 있겠지만

 

해당 파일을 열어보면

 

아무런 내용이 없은 백지 상태이다.

 

 

해당 PDF 파일을 HxD 를 이용해 분석해봤다.

 

PDF 파일을 열면 가장 먼저 앞에 %PDF 라는 문자가 있어야 하는데

 

이 파일은 그렇지 않고 앞에

 

require 'json'
require 'cgi'
require 'socket'
=begin

 

라는 문자열이 적혀있었다.

 

 

파일 중간중간에도 보면

 

일반적으로 PDF 파일 안에 있을법한 내용이 아닌

 

다른 내용들이 눈에 띄었다.

 

 

ruby-doc 를 찾아보니

 

모듈을 불러오는 양식이 PDF 에 있던것과 똑같았다.

 

PDF 파일 안에 ruby 코드가 숨겨져 있는듯 했다.

 

 

그래서 challenge.pdf 파일의 확장자를 challenge.rb 로 변경하고

 

 

ruby <파일명> 형태로 한번 실행시켜 봤다.

 

그랬더니 http://localhost:8080/ 으로 웹 서버가 돌아가기 시작했다.

 

 

해당 서버로 접속해보니

 

뭔가를 다운로드 할 수 있는 링크가 있었다.

 

 

다운로드 된 파일은 flag.zip 파일이었다.

 

 

flag.zip 파일의 압축을 풀어보니

 

false_flag.md, mutool 두 개의 파일이 들어있었다.

 

 

먼저 md 파일을 열어봤다.

 

그랬더니 mutool 이라는 도구의 사용법을 알려주고 있었다.

 

 

md 파일에서 알려준대로 일단 mutool 을 실행해봤다.

 

뭔가 에러가 나긴 하지만 실행은 되었다.

 

 

실행결과로 rendered.png 파일이 생성되었는데

 

 

뭔가 알수없지만 PDF 파일의 숨겨진 비밀 같은 느낌이었다..

 

문제 푸는데 힌트가 있는듯 했지만

 

이 PNG 파일의 정보 없이도 문제를 풀 수 있었다.

 

 

binwalk -e <파일명> 명령어를 사용해서

 

challenge.rb 파일 안에 숨어있던 모든 파일들을 추출해봤다.

 

 

그 결과로 이런 파일들이 생성되는데

 

그중 B5FFD 파일을 보면

 

 

파일이 FF D8 FF E0 로 시작하는것을 볼 수 있다.

 

 

FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다.

 

 

B5FFD 파일을 HxD 를 이용해 JPG 파일로 만들어주면

 

그 안에 있는 플래그를 확인할 수 있다.

반응형