Dreamhack

[Dreamhack] blue-whale Write-Up

jeff_kim 2024. 3. 15. 02:17

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

 

blue-whale

Description 보코가 여러분에게 도움을 요청합니다. "분명 플래그 파일이 있었는데요... 없어졌어요." Docker hub의 dreamhackofficial/blue-whale 레포지토리 (TAG:1) 에서 도커 이미지를 다운받을 수 있습니다.

dreamhack.io

 

문제

보코가 여러분에게 도움을 요청합니다. "분명 플래그 파일이 있었는데요... 없어졌어요."

Docker hub의 dreamhackofficial/blue-whale 레포지토리 (TAG:1) 에서 도커 이미지를 다운받을 수 있습니다. 도커 이미지를 분석하여 플래그를 획득하세요.
주어진 Dockerfile은 이미지를 빌드할 때 사용한 파일로, 풀이자가 사용할 수 없습니다.

플래그 형식은 DH{...} 입니다.


Hint: https://github.com/wagoodman/dive

 

 


풀이

 

1. 문제 요청대로 dockerhub에 올라가 있는 dreamhackofficial/blue-whale:1를 pull해준 후에 image 확인

sudo docker pull dreamhackofficial/blue-whale:1

sudo docker images

 

sudo docker inspect 로 확인했는데 별 다른 이상한점 없음

 

2. pull 받은 image 분석을 해야하는데 dive 라는 분석 툴을 이용하여 dockerfile에 적혀있는 것을 확인할 것이다.

hint 사이트에 들어가 dive를 다운 받아 준다. 우분투를 사용하기 때문에 deb를 다운받는다

DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb

sudo dive -version

 

다운 받고 난 이후 잘 다운이 받아졌는지 확인 

 

3. 분석해야할 image와 tag를 적어 분석 화면으로 들어간다.

dive

sudo dive dreamhackofficial/blue-whale:1

 

4. 우선 dockerfile의 layer를 선택한 후에 switch view를 한 후에 flag 를 획득 한다

flag 파일 copy 되어 잘 들어감 -> python을 통해서 flag 파일을 읽고 print한 layer가 보인다 -> 하지만 뒤에 rm * 로 flag를 지워버렸다

 

이것을 찾기 위해서 layer를 화살표로 밑으로 이동해서 확인한다

 

그리고 tab키를 눌러서 view를 스위치 한 후에 디렉터리 항목들을 봐야하는데 너무 많은 디렉터리가 있어서 일단 전부다 축소를 해야한다

전부다 축소하기 위해서 단축키 `ctrl + space` 를 해준 다음 아까 layer에서 RUN /bin/sh -c touch `python3 -c "print(open('./flag', 'r').read())"` # buildkit  이 부분을 선택했기 때문에 flag가 이렇게 나온 모습을 볼 수 있다 

하지만 옆 부분이 짤리기 때문에 단축키 `ctrl + b` 를 이용하여 attributes를 해제 해주면

이렇게 flag 획득이 가능하다

 

단축키를 잘 활용하여 dockerfile에 쌓인 layer가 변하는 모습을 확인하여 flag가 삭제되기 이전의 모습과 삭제된 후를 확인 할 수 있다

힌트도 잘 활용하자~~

'Dreamhack' 카테고리의 다른 글

[Dreamhack] cookie Write-Up  (1) 2024.03.16
[Dreamhack] phpreq Write-Up  (2) 2024.03.15
[Dreamhack] ex-req-ex Write-Up  (2) 2024.03.15
[Dreamhack] baby-linux Write-Up  (1) 2024.03.14
[Dreamhack] 64se64 Wirte-Up  (0) 2024.03.14