System Hacking - Dockerfile 기반 환경 세팅

1. Dockerfile

CTF 문제를 풀다보면 서버와 같은 환경을 쉽게 맞춰주기 위해 Dockerfile이 제공된다. 이걸 기반으로 서버와 동일한 환경에서 exploit을 연습할 수 있다.

2. 환경 세팅

2.1. Docker image 빌드

먼저 docker 이미지를 빌드하자.

docker build -t [image name] .

2.2. Docker 컨테이너 실행

docker run -d -p 9999:9999 --name [container name] [image name]

여기서 각 옵션은 아래와 같다.

  • -d: 백그라운드 실행
  • -p 9999:9999: 포트포워딩 (컨테이너 내부의 9999포트를 외부에서도 접근 가능하도록)
  • –name [container name]: 컨테이너 이름 세팅

여기서 포트는 대부분 Dockerfile에 지정되어 있을 것이다.

2.3. 컨테이너 상태 확인/조작

docker ps                      # 실행 중인 컨테이너 목록
docker logs [container name]             # 로그 보기
docker exec -it [container name] /bin/bash  # 컨테이너 안에 bash로 진입
docker stop [container name]
docker rm [container name]
docker rmi [image name]   # 이미지 삭제 (선택)

container nameimage name 대신에 각각의 id를 사용하기도 한다.