본문 바로가기

꿀팁!

docker를 이용한 pwnable 환경 세팅하기

DockerFile

FROM ubuntu:16.04

LABEL email="gud425@naver.com"
LABEL name="NAM"
LABEL description="CAT-Security"

ENV TZ Asia/Seoul
ENV LC_CTYPE C.UTF-8

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt upgrade && apt update
RUN apt-get update && apt-get install -y netcat vim git tar gzip curl wget zsh gdb

RUN apt-get install -y python3 python3-pip python3-dev libssl-dev libffi-dev build-essential

RUN wget https://bootstrap.pypa.io/pip/3.5/get-pip.py --no-check-certificate
RUN python3 get-pip.py --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org
RUN python3 -m pip install --upgrade pwntools --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org

RUN git clone https://github.com/longld/peda.git ~/peda
RUN echo "source ~/peda/peda.py" >> ~/.gdbinit


RUN wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh || true

RUN mkdir -p "$HOME/.zsh"
RUN git clone https://github.com/sindresorhus/pure.git "$HOME/.zsh/pure"
RUN echo "fpath+=("$HOME/.zsh/pure")\nautoload -U promptinit; promptinit\nprompt pure" >> ~/.zshrc

RUN git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
RUN echo "source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc

RUN git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
RUN echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
RUN echo "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=111'" >> ~/.zshrc

RUN apt-get install gcc-multilib

ubuntu 버전은 16.04(16.04부분만 다른숫자로 바꾸면 다른버전도 가능할것같다.)로 gdb pwntools peda zsh등 여러필요한 패키지들을 설치했다.

sudo docker build -t {image이름:태그} -f {도커파일경로}/DockerFile .

해당 명령어로 도커파일을 통해 이미지를 만들어준다. (마지막에 점은 필수!!)

 

sudo docker run --name {컨테이너 이름} -it {이미지이름:태그}

만들어진 이미지를 통해 컨테이너 생성과 함께 실행한다.(/bin/zsh 추가시 해당 쉘로 시작)

 

컴퓨터를 껏다 킨후 나중에 컨테이너를 다시 실행하고 싶으면

docker start {컨테이너이름}

 

sudo docker exec -it {컨테이너_이름} /bin/zsh

이미 실행중인 컨테이너의 경우 exec명령어를 통해 들어갈수있다.

 

설치된 도커 정보

Version:           20.10.11
API version:       1.41