https://dreamhack.io/wargame/challenges/876
Docker 실습을 위한 문제입니다. 주어진 Dockerfile을 빌드하여 이미지를 생성하고 컨테이너를 실행하는 문제입니다.
플래그의 형식은 DH{...} 입니다.
Dockerfile이 있는 파일로 이동합니다.cd C:\Users\navyu\Downloads\7728c510-c1f0-4806-8eca-776ee59d04a3docker build -t myimage .docker build : 가진 Dockerfile을 읽어서 이미지 생성-t myimage : 결과 이미지에 이름을 붙임 (이 명령어에서는 태그를 지정하지 않았기에 myimage:latest 로 자동 지정됩니다). : Dockerfile이 있는 위치 (현재 디렉토리)docker images 출력된 도커 이미지 목록을 확인해보면 방금 docker build -t myimage . 명령어를 실행했을때 생긴 이미지가 있음을 확인할 수 있습니다.
docker run -it myimage /bin/bashdocer run : 새 컨테이너를 만들고 실행합니다.-i : 표준 입력 유지해 키보드로 입력을 가능하게 합니다.-t: 터미널 화면을 만들어주어 bash가 "터미널"처럼 동작합니다.myimage : 실행할 이미지 이름입니다. (tag인 :lastest는 생략합니다.)/bin/bash : 컨테이너 안에서 첫번째로 실행할 프로그램을 지정해줍니다. /bin/bash는 우리가 흔히 쓰는 셸로, ls,cat 등의 명령이 실행 가능 하기에 대화형으로 컨테이너 안을 돌아다니기 위해 실행합니다.chall@0976e230db0b:~$ 프롬프트가 뜨며, 윈도우가 아닌 격리된 리눅스 컨테이너 안으로 들어온 상태가 됩니다. 이 상태에서 셸 명령어를 사용할 수 있습니다.ls -alls : 현재 디렉토리의 파일/폴더의 목록을 봅니다.-a : 숨김 파일까지 다 보여줍니다.-l : 자세한 정보를 보여줍니다.
cat flag 실행하면 최종적으로 플래그를 획득할 수 있습니다.
docker build -t myimage ..docker images and confirmed that it was stored locally.docker run -it myimage /bin/bash to explore inside the container.ls -al to list files and cat to read file contents.flag file inside the container and retrieved the flag successfully.