Dreamhack에서 pwnable문제를 풀 때 서버의 환경과 동일하게 설정할 수 있도록, Dockerfile을 제공해주는 경우가 있다
이 Docker를 구축하면, 문제 서버와 동일한 환경을 맞출 수 있어, offset이나 libc 버전을 굳이 로컬에서 설정해줄 필요가 없다
그러면 Dreamhack뿐만 아니라 Dockerfile을 제공해주는 pwnable 문제에서 도커를 구축하고, exploit을 짤 수 있는 환경을 설정하는 방법을 설명하겠다
0x00. Download prob file
(Dreamhack 기준)
이건 취향 차이이긴 한데, "1. 문제 파일 다운로드 후 탐색기로 wsl 폴더에 복붙" or "2. wget으로 wsl에서 바로 붙여놓기"
1번 방법은 누구나 할 수 있을거니깐, 넘어가고 2번 방법에 대해서 설명하도록 하겠다
Dreamhack에서 워게임 문제 페이지에서 보면 "문제 파일 받기"라는 버튼이 있다
여기서 그냥 클릭을 하면, 문제 파일이 그냥 다운로드 받아져서 1번 방법대로 하면 되지만,
우클릭을 해서 "링크 주소 복사"를 눌러서 다운로드 링크를 복사해준다
wsl에 파일을 넣을 wsl 경로로 이동한다음에
"wget [URL] -O [파일이름]; unzip [파일이름]; rm [파일이름]"
이 명령어면 그대로 파일이 다운로드, 압축해제, 압축파일 삭제가 된다
0x01. Build Docker
docker build -t [이미지이름] .
docker run -d -it --name=[이미지이름] [이미지이름]
docker exec -it -u root [이미지이름] bash
0x02. Setting for pwnable
docker을 build, run N exec하면 아무것도 깔려있지 않다
심지어 vim 조차 깔려있지 않다
필수적인것만 설치하는 명령어는 다음과 같다
apt-get install vim
apt-get install python3
apt-get install python3-pip
pip3 install pwntools
apt-get install git
git clone https://github.com/pwndbg/pwndbg.git
cd pwndbg
./setup.sh
명령어 한 줄씩 실행하는 것을 권장하고, 중간중간에 [y/n]에서 y좀 눌러주면 된다
모든 설치를 마치면, vim, python3, pip, pwntools, pwngdb정도만 설치가 된다
지금까지 dockerfile이 제공된 도커 내에서 pwnable문제를 푸는 방법이였다
return 0;
'INFO' 카테고리의 다른 글
[Info] Docker와 Visual Studio Code를 연결하는 방법 (2) | 2025.08.27 |
---|---|
[Info] Ubuntu 22.04 Docker for PWN (0) | 2025.03.02 |