워게임/CTFlearn

[CTFlearn] Binwalk - 포렌식 / HxD

SecurityMan 2022. 8. 11. 11:00

 

CTFlearn의 열한번째 문제

 

이전 문제가 Medium 이라서 계속 중간 난이도 문제가 나올 줄 알았는데

 

다시 Easy로 돌아왔다.

 

반응형

 

문제설명을 읽어보면

 

주어지는 파일 안에 다른 파일이 숨겨져 있는데, 그걸 추출할 수 있냐고 물어본다.

 

아래쪽에 적혀있는 URL로 접근해보면

 

 

PurpleThing.jpeg 파일을 다운로드 받을 수 있다.

 

 

이게 주어진 사진이다.

 

문제에서 의도하는 방식으로 풀면 너무 쉽게 끝나서 다른 방법으로 먼저 풀어보려고 한다.

 

 

주어진 파일을 HxD 도구를 이용해 열어본다.

 

파일이 89 50 4E 47 으로 시작하는것을 알 수 있다.

 

 

89 50 4E 47로 시작하는것은 PNG 파일의 특징이다.

 

확장자는 jpeg 였는데 사실은 PNG 파일이었다.

 

이런걸 파일 시그니처 라고 한다.

 

 

또한 PNG 파일은 끝날때 49 45 4E 44 AE 42 60 82 로 끝난다.

 

IEND®B`‚ 이렇게 생긴 문자열이 나오면 PNG 파일은 끝난것이다.

 

 

윈도우 캡처 도구를 이용해 작은 PNG 파일을 임의로 생성해봤다.

 

보이는것처럼 어떤 PNG 파일을 열어봐도

 

시작은 89 50 4E 47, 끝은 49 45 4E 44 AE 42 60 82 가 오게된다.

 

 

주어진 문제파일은 어떤게 다를까?

 

Ctrl + F 를 눌러 찾기 기능을 이용해 IEND 를 검색해본다.

 

 

검색결과를 보면 이상한 부분이 보인다.

 

IEND®B` 가 와서 PNG 파일이 끝나야 하는데 그러지 않고

 

뒤에 또다시 89 50 4E 47 이 오면서 새로운 PNG 파일이 시작되고 있는것이 보인다.

 

이럴 경우 사용자에게는 앞에 있는 PNG 파일만 보여지게 된다.

 

뒤에 있는 PNG 파일이 숨겨진 PNG 파일인 것이다.

 

 

새로운 PNG 파일을 블록잡아서 복사 한 뒤

 

 

새로만들기 해서 붙여넣기 한 뒤 다른이름으로 저장하면

 

 

플래그를 찾을 수 있다.

 

이번엔 문제에서 의도한 방식으로 풀어본다.

 

 

문제 제목에 적혀있는 binwalk 라는 도구가 있다.

 

펌웨어를 분석하는 도구인데 칼리 리눅스를 설치하면 안에 내장되어 있다.

 

이 도구를 사용하면 아까 봤던 파일 시그니처를 기반으로 숨겨진 파일을 찾을 수 있다.

 

 

binwalk <파일명> 으로 입력하면

 

해당 파일에 숨겨진 파일들을 찾을 수 있다.

 

PNG 파일이 두개 있는게 바로 보인다.

 

중간에 있는 Zlib compressed data 는 오탐이니 무시해도 된다.

 

 

binwalk에서 --dd=".*" 옵션을 주면 파일 추출이 가능하다.

 

 

명령을 실행하면 이렇게 _<파일명>.extracted 폴더가 생성되고

 

 

폴더에 들어가보면 

 

아까 봤던 플래그가 적힌 png 파일이 추출된것을 볼 수 있다.

반응형