blue-whale

FWWKCS·2023년 12월 30일
0

Dreamhack

목록 보기
2/10
post-thumbnail

https://dreamhack.io/wargame/challenges/853

진행

문제에서 언급했듯이 주어진 Dockerfile은 빌드하려고하면 플래그가 있는 부분에서 막히게 된다

그래서 대신 사용할 Docker hub에 저장된 dreamhackofficial/blue-whale 레포지토리의 1번 태그 이미지를 받아 들어가본다

docker hub에서 이미지를 다운받기 위해 docker pull [이미지 주소:TAG] 명령 입력

이제 빌드된 이미지 환경에 들어가기 위해 실행을 시킨다

docker images 명령으로 이미지ID를 확인하고
docker run -it [이미지ID] /bin/bash 명령으로 실행 시 bash-shell 열기

정말로 플래그 파일이 없다

그러면 플래그를 어떻게 찾아야 할까?


그 힌트로 어느 깃허브 주소를 제공해줬는데, 이곳에서 docker를 더 잘 활용할 수 있도록 해주는 툴; dive를 설치할 수 있는 사이트이다.

dive를 통해 탐색할 이미지의 레이어를 트리형태로 보여주어 훨씬 자세한 내용을 확인할 수 있게 해준다.


README.md에서 설치방법과 사용커맨드를 알려준다! 이 커맨드를 이용해 문제를 해결해보자

우선 exit 명령으로 현재 들어와있는 빌드된 환경을 빠져나오기

dive [이미지ID] 명령으로 정보를 확인할 이미지를 빌드

이렇게 빌드된 이미지의 레이어가 어떻게 구상되어있는지 확인할 수 있게된다!

좌측 Layers에서 Tab키를 통해 우측 Current Layer Contents로 넘어가 각 파일별로 상세정보를 확인할 수 있다. 여기서 플래그 파일을 찾아보자

레이어를 아래 방향키로 하나씩 진행시켜보면 flag파일이 나타나는 것을 볼 수 있다

레이어를 좀 더 내려보자

! 우리가 찾던 플래그가 생겼다! 선택된 레이어의 명령을 보면 flag의 파일을 읽도록 명령하는 python3 코드를 실행하는 과정이다

그리고 바로 다음에 rm * 명령을 통해 파일을 지워버리게 함으로써 플래그파일이 지워지도록 하여, 실제로 이미지를 실행할 때 플래그가 없어지게 되는 것이었다




이제 저 플래그를 복사하면 되는데 짤려서 나온다..

이때 사용할 수 있는 방법으로

  1. 가상머신의 해상도를 확대

  2. 커맨드 ^P를 통해 우측 컨텐츠에서 선택한 항목을 wrap하고, 커맨드 ^B 를 통해 권한 등의 상세정보를 가리거나, 커맨드 ^U를 통해 선택한 파일의 경로만 보여지게 한 후, 뒷 부분을 다음 줄로 보여지게하여 해결할 수 있다.


마지막으로, 문제를 해결한 후 나갈땐 커맨드 `^C`를 통해 dive 툴을 사용 종료한다.
profile
Memory Archive

0개의 댓글

관련 채용 정보