2021 고등학생 사이버 보안 경진대회(Digital forensic - Tell me your wish)
Capture The Flag/CTF 제작

2021 고등학생 사이버 보안 경진대회(Digital forensic - Tell me your wish)

문제 소개

 

2021 고등학생 사이버 보안 경진대회에 출제했던 Tell me your wish 문제 제작에 대해 포스팅해보겠습니다.

 

문제 이름 : Tell me your wish

문제 기술 : 시스템의 사용자는 무언가를 굉장히 원하고 있다. 사용자의 소원을 들어주도록 하자. ADCTF{FLAG}

문제 분야 : Digital forensic

문제 의도

  1. 인터넷 기록을 분석할 수 있는가?
  2. 시스템 복원 기능에 대해 알고 있는가?
  3. 실행 파일 구조에 대해 이해하고 있는가?

 

시스템 복원 기능을 사용하면 플래그를 얻을 수 있도록 의도한 문제입니다.

참가자들이 시스템 복원 기능을 어떻게 떠오르게 만들까 고민을 하다가 시스템 복원 기능을 사용하면 과거의 시점으로 돌아갈 수 있다는 점에서 시간 여행을 착안하게 되었고 문제 파일에 시간 여행과 관련있는 데이터들을 넣어두기로 했습니다.

시간 여행과 관련된 데이터를 어떻게 넣을까 하다가 그냥 가장 접근하기 쉬운 인터넷 검색 기록과 다운로드한 파일을 사용하기로 했습니다.

VM 환경을 분석한다 -> 인터넷 브라우저 기록 확인 -> 시스템 복원 기능 사용 -> 플래그 획득

위와 같이 문제를 설계했습니다.


문제 설계

 

Windows 7

 

시스템 복원 기능이 있는 Windows 7 운영체제를 기반으로 문제를 제작했습니다.

Chrome 브라우저만 쓰려다가 그냥 Whale 브라우저 하나 추가로 설치해서 2개의 브라우저를 사용했습니다.

 

Chrome browser history

 

크롬 브라우저를 사용하여 위와 같이 시간 여행과 관련있는 검색 기록을 남겨줬습니다.

 

Whale browser history

 

웨일 브라우저도 시간 여행과 관련있는 검색 기록을 남겼습니다.

 

휴지통에 있는 파일

 

다운로드 경로에 있는 파일

 

그리고 다운로드 폴더와 휴지통에 위와 같은 그림 파일을 넣어두어 문제의 의도를 한 번 더 각인될 수 있도록 했습니다.

사용자의 소원을 들어주는 것이 문제인데 사용자의 소원이 시간 여행이라는걸 알 수 있게 보여주는 장치입니다.

 

Flag file

 

시스템 복원을 떠올릴 수 있는 장치는 다 만들어뒀으니 플래그 파일에 대한 작업이 필요합니다.

플래그 파일 제작 -> 시스템 복원 지점 생성 -> 플래그 파일 삭제 -> 시스템 복원 -> 플래그 파일 롤백

위와 같은 행위가 이루어져야 시스템 복원을 하지 않았을 때는 플래그를 알 수 없고 시스템 복원을 해야 플래그를 알 수 있는 환경이 될 것입니다.

위 환경을 만들기 위해 많은 시행착오가 있었는데 얻은 결론은 다음과 같습니다.

일반적인 파일을 생성하고 삭제하면 복원을 하더라도 파일이 다시 생성되지 않는다.

파일을 삭제하는 것이 아니라 Hex 값을 수정하면 복원을 했을 때 복원 지점 생성시의 Hex 값으로 변경된다.

즉, 다음과 같습니다.

기존 파일 Hex 값을 플래그 데이터로 수정 -> 시스템 복원 지점 생성 -> 원본 Hex 값으로 수정 -> 시스템 복원 -> 플래그 데이터 값으로 롤백

 

그래서 저는 위와 같은 환경을 만들기 위해 위 그림처럼 바탕화면에 있는 미디어 플레이어 센터 파일의 Hex 값을 플래그 데이터가 저장되어 있는 실행 파일의 Hex 값으로 수정했습니다. (실행 파일의 데이터는 플래그가 출력되도록 직접 제작한 프로그램의 데이터를 가져왔습니다.)

또한 이름도 시스템 복원 후에 플래그 파일임을 알아볼 수 있도록 I am Flag.lnk 로 변경했습니다.

 

시스템 복원 지점 생성

 

그 후 복원 지점을 생성해줬습니다.

 

Media Player Center.lnk hex value

 

복원 지점 생성 후에는 다시 원래의 데이터로 변경해주고 파일의 이름 또한 원래의 이름으로 변경했습니다.

이제 VM 파일을 압축해서 참가자들에게 제공해주면 됩니다.

 


Tell me your wish 문제 제작은 여기까지입니다.

참가자의 입장에서 봤을 때 크롬, 웨일 브라우저가 설치되어 있으며 다운로드 폴더와 휴지통에 파일이 있는 시스템 환경이 세팅된 것입니다.

주어진 파일들과 데이터 기록을 보고 시스템 복원 기능을 쉽게 떠올릴 수 있는지 없는지가 핵심인 문제였습니다.

이번 문제는 많은 팀들이 풀지는 못 했었고 풀었던 참가자들의 경우 문제가 참신하고 재미있었다는 평을 남겨주셨습니다.