워게임/Root Me

[Root Me] APNG - Just A PNG - 포렌식 / 스테가노그래피

SecurityMan 2022. 11. 11. 11:00

 

오랜만에 풀어본 Root Me의 스테가노그래피 문제

 

처음 보는 문제유형이라 신기했다.

 

반응형

 

문제 설명을 읽어보면 대학 동기가 애니메이션 안에 어떤 메세지를 숨겨놓았다고 적혀있다.

 

문제 제목은 APNG 인데 이게 아주 큰 힌트였다.

 

 

문제에서 주어지는것은 ch21.apng 파일이다.

 

문제 제목과 확장자가 일치하는게 뭔가 있는것 같다.

 

 

뭔가 특이한 점이 있나 살펴보기 위해 HxD로 해당 파일을 열어보았다.

 

맨 앞부분이 89 50 4E 47 0D 0A 1A 0A 로 시작하는것을 볼 수 있는데

 

 

모든 PNG 파일은 89 50 4E 47 0D 0A 1A 0A 로 시작한다.

 

이런걸 파일 시그니처 라고 하는데

 

아무 PNG 파일이나 골라서 HxD 프로그램으로 열어보면

 

 

이렇게 파일의 맨 앞에 똑같이 89 50 4E 47 0D 0A 1A 라고 적혀있는것을 볼 수 있다.

 

이걸 디코딩한 값이 ‰PNG 이다. 

 

모든 PNG 파일은 이렇게 시작한다.

 

일단 파일 시그니처가 PNG 파일과 일치하니 확장만 APNG로 바꾼건가 싶어서 확장자를 바꿔보았다.

 

 

확장자를 PNG 로 바꿔보니 개구리 페페가 나왔다.

 

문제 설명에서 분명 animation 이라고 언급을 했는데, 이건 움직이지 않는 그냥 그림이었다.

 

 

이번엔 ch21.png 파일의 맨 아래쪽을 보니

 

APNG Assembler 라고 적힌 문구를 발견했다.

 

 

APNG 를 검색해봤더니 Animated PNG 라고 한다.

 

이모티콘 같은거 만들때도 사용하는것 같다.

 

문제에서 주어진 APNG 파일을 만들기 위해 APNG Assembler 라는 프로그램을 사용했던 것이다.

 

 

Assembler 가 있으니 당연히 Disassembler 도 있을거라고 생각했다.

 

검색해보니 바로 찾을 수 있었다.

(https://sourceforge.net/projects/apngdis/)

 

 

별다른 설치없이 다운받아 실행시키면 된다.

 

ch21.png 파일을 지정해주고 Convert 버튼을 누르면 된다.

 

 

그럼 해당경로에 이렇게 귀여운 페페들 사진이 생성된다.

 

APNG 파일 안에 각각 프레임으로 들어있었나 보다.

 

 

이것저것 살펴보니 페페 사진에서는 특이한 점을 발견하지 못했고,

 

같이 생성된 apngframeXX.txt 파일에서 의심스러운 부분을 찾았다.

 

프레임당 시간을 설정해주는 텍스트 파일인것 같은데,

 

delay 앞부분에 있는 숫자가 뭔가 ASCII 코드 범위인것 같았다.

 

 

각 txt 파일에 있는 숫자를 모아서

 

CyberChef(https://gchq.github.io/CyberChef) 에서 From Decimal 으로 디코딩해주면

 

플래그를 찾을 수 있다.

반응형