이 자료를 참고하였다!!
CTF 도커 설치하는법
요 링크에서 Dockerfile을 다운받은 뒤에, 이걸로 도커 컨테이너 컴파일을 진행하면된다.
Dockerfile안에 컨테이너 안에 설치할 pwnable 관련 여러 도구들을 자동으로 설치해주는 내용이 다들어가 있어서 설치가 매우 간편하다.
https://gist.github.com/LiveOverflow/b4502c5358a838d7ca9d92e8a2e8b5a0
FROM ubuntu:18.04
ENV LC_CTYPE C.UTF-8
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y strace ltrace curl wget gcc net-tools vim gdb python python3 python3-pip wget git make procps libpcre3-dev libdb-dev libxt-dev libxaw7-dev python-pip libc6:i386 libncurses5:i386 libstdc++6:i386 && \
(wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh) && \
pip install capstone requests pwn r2pipe && \
pip3 install unicorn capstone ropper keystone-engine && \
mkdir tools && cd tools && \
git clone https://github.com/JonathanSalwan/ROPgadget && \
git clone https://github.com/radare/radare2 && \
cd radare2 && sys/install.sh && \
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2?revision=bc2c96c0-14b5-4bb4-9f18-bceb4050fee7?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,7-2018-q2-update
CTF 도커 사용법
- 도커 컨테이너 빌드 ⇒ 컨테이너 run ⇒ 사용
도커 컨테이너 빌드
$ docker build -t ubuntu18:ctf - < Dockerfile
- 빌드완료된 컨테이너 확인
$ docker images
컨테이너 run (Docker Run)
Build한 Image를 통해서 컨테이너를 실행할 수 있습니다.
(d옵션 주고 rm 빼고써야 담에 또 쓸 수 있음)
$ docker run -d --name=junctf18 -v $PWD:/pwd --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 5555:5555 -i ubuntu18:ctf
실행
- 실행중인 컨테이너 확인 (실행중인 컨테이너여야 실행할 수 있음)
sudo docker ps
- 실행중인 컨테이너 실행
$ docker exec -it [컨테이너이름] /bin/bash
Host to docker 파일복사
- Host 파일을 통째로 docker 컨테이너 안으로 복사해준다. 매우 좋은 기능
sudo docker cp [Host파일] [컨테이너 이름]:[컨테이너 안 복사할 경로]
ex) docker ps로 실행중인 컨테이너와 컨테이너 이름 확인 후 사용
sudo docker cp ../20220216 junctf:home/test
'CTF > CTF_Configuration' 카테고리의 다른 글
Dockerfile 주어졌을때 CTF Configuration 정리 & ARM Cross Compile 및 ARM 바이너리 gdb 디버깅 하는법 (0) | 2022.02.26 |
---|---|
바이너리에 ld와 libc 새로 링킹하기 (D_PRELOAD=./libc.so.6 segfault 뜰때 해결하기) (0) | 2022.02.19 |
main_arena offset 구하기 (0) | 2022.02.09 |
ROPgadget 사용법 (ROP 가젯 찾는법, 리턴가젯 찾아주는 프로그램) (0) | 2022.02.09 |
One_gadget Constraints (원가젯 제약조건) 해석하기 (0) | 2022.02.09 |