IT/CTF, 해킹 관련

2020 HM CTF Write-up Q.54

DFRG m 2020. 7. 16. 12:58

휴가기간에 2020 HM CTF 대회에 참여했지만 개인적인 일로 인해 중도 포기를 했습니다.

 

아쉬운 마음에 기억나는 문제 풀이를 해보겠습니다. 본 풀이 방법은 모든 시도 방법을 기술 한

 

내용으로 답을 찾아가는 과정이라 답과 관련 없는 부분 진행까지 포함 되어 있습니다.

 

2020 HM CTF Write-up Q.54

 

정확한 문제 문구는 기억나지 않지만 아래와 같았던걸로 기억합니다.

-----------------------------------------------------------------------

문제 : 마약사범 관련하여 입수된 파일에서 계좌번호를 찾아라

 

계좌번호 형식 : 000 - 0000 - 0000

----------------------------------------------------------------------

 

 

 

 

문제파일.zip을 압축해제 하니 위와 같은 파일이 나왔습니다.

 

파일 이름은 같고 복사본이라고 되있는데 파일마다 용량이 각각 다릅니다.

 

복사본 같은경우는 용량이 같아야 하는데 다른걸로 보아 제목만 같고 내용이 다른것으로 판단

 

분석을 위해 해쉬 분석까지 돌려보았습니다.

 

 

 

 

 

 

 

 

 

해쉬 분석결과 각각 해쉬값이 다른것으로 판단되고 문서에 숨겨놓은 메시지가 있는지 분석하였습니다.

 

 

 

 

 

 

DOCUMENT view기능을 통해 간단하게 어떠한 pw 정보를 획득하였습니다. 그후 모든 파일을 실행하여 분석을 실시하였습니다. 

 

 

 

 

 

 

 

 

 

 

모든 파일 모두 사진 4장이 들어있고 특이사항이 보이지 않았다.  DOCX 파일은 Compound File이므로 모든 DOCX파일을 구조분석을 실시하였습니다.

 

 

 

 

 

 

 

 

 

 

모든 파일을 구조 분석을 실시하였는데 특이하게 복사본 (5).docx 파일에서만 이미지 1,3번 파일이 png

 

인것을 확인하였습니다. 나머지파일은 jpg고 이 복사본 (5).docx 파일만 1,3,번 이미지가 png로 되어있고

 

png파일은 CTF에서 자주 나오는 문제로 더욱더 의심이 가는 부분이었습니다.

 

png에 숨겨진 내용이 있나 binwalk를 실행하였습니다. 

 

* binwalk는 파일의 구성을 분석할수 있는 툴로 파일 시그니처를 사용해서 어떤 데이터가 들어있는지 확인함.

 

 

 

 

 

 

 

 

 

binwalk를 돌려본 결과 Zlib형태의 압축파일이 png파일에 포함 되어있는것을 확인하였습니다.

 

 

 

 

 

 

 

추가적으로 Strings (text 문자열을 추출해주는 툴)을 사용하여 특정문자열이 있나 보았지만 특이사항은

 

보이지 않았습니다. 아까 확인한 Zlib파일을 통해 정보을 얻을 수 있을 것 같아 binwak로 파일을 추출하였습니다.

 

 

 

 

 

 

 

 

 

binwalk -e 명령으로 파일을 추출할수 있습니다. 추출한 파일을 파이썬 코드로 압축해제를 시도하였습니다.

 

 

 

 

 

 

 

 

 

파이썬 zlib decompress 코드로 해제를 시도하고 어떠한 특정 플래그 값이 나오길 바랬는데 해당 사항이 발견하지

 

못하였습니다.

 

 

 

여기서 멘탈이 나갔습니다. 그다음 진행 방법을 생각 하는 도중 도저히 모르겠다 싶어서 다시한번 생각을 해보았는데 전에 안티포렌식 관련 도서에서 보았던 내용이 생각 났습니다.

 

대표적인 png파일을 이용하는 스테가노그라피툴인 OpenStego가 떠 올랐는데 OpenStego가

 

스테가노그라피기법을 적용할때 사용했던 압축 방식이 Zlib 이었던게 생각이 났습니다.

 

그래서 구글 검색을 통해 확인하였습니다.

 

 

 

 

 

 

 

 

 

구글 검색 결과 OpenStego는 Zlib 압축방식을 사용하고 있는것으로 확인 했고

 

아까 처음에 발견한 패스워드(1qazwsx!!) 를 사용하여 OpenStego를 사용하면 정답이

 

나올것이라 생각하였습니다.

 

 

 

 

 

 

 

 

 

Input에 이미지1번파일, output에 저장 경로, password에 아까 분석해서 찾은

 

1qaz2wsx!!을 입력하고 ok를 눌렀습니다.

 

 

 

 

 

 

 

 

 

 

느낌이 좋지 않습니다... 추출된 파일을 클릭하니

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 또 멘탈이 나갔다가 나머지 파일 이미지 3번을 돌리면 이제 답이 나오겠구나 싶어서 같은 방법으로 이미지 3번을

 

OpenStego를 통해 돌렸습니다. 하지만

 

 

 

 

 

 

 

에러가 발생하면서 추출하지 못하였습니다. 당황스러웠지만 에러 문구를 확인하니

 

오래된 버젼으로 지원하지 않는다고 나와 버젼마다 압축 방식이 다른것으로 판단하여

 

버젼을 확인해보니 Openstego 버젼이 0.52 버젼이었습니다. 구글 검색을 통해

 

Openstego 공식 홈페이지로 가서 최신버젼 0.74버젼을 다운 받고 설치하였습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.74버젼을 설치하고 동일한 방법으로 비밀번호를 넣고 추출하니 답이 추출 되었습니다.

 

 

답 : 551-6237-6240

-----------------------------------------------------------------------------------------------------

 

풀이에 대한 후기는 숨겨진 비밀번호를 확인하고 OpenStego로 바로 시도를 하였지만

 

이미지 3번부터 시도를 하여 에러 문구를 정확하게 확인하지 않고 넘어가서

 

분석 관점을 바꿔버린게 시간을 좀 허비한 이유라고 생각 됩니다.

 

Openstego 구버젼과 신버젼이 압축방식을 다른부분을 이용하여 혼란이 좀 왔었던 문제 같습니다.

 

 

 

 

반응형