728x90
도커 파일 이용하면된다. 이는 힙 익스하는데 glibc.2.29 이상 버전이어서 이전 버전으로 된 것들을 익스플로잇하기 어려웠는데 도커 파일 이용하니까 해당 환경을 구축해서 할 수 있었다.
Ubuntu 18.04 64-bit(Glibc 2.27) 실습 환경 Dockerfile
FROM ubuntu:18.04
ENV PATH="${PATH}:/usr/local/lib/python3.6/dist-packages/bin"
ENV LC_CTYPE=C.UTF-8
RUN apt update
RUN apt install -y \
gcc \
git \
python3 \
python3-pip \
ruby \
sudo \
tmux \
vim \
wget
# install pwndbg
WORKDIR /root
RUN git clone https://github.com/pwndbg/pwndbg
WORKDIR /root/pwndbg
RUN git checkout 2023.03.19
RUN ./setup.sh
# install pwntools
RUN pip3 install --upgrade pip
RUN pip3 install pwntools
# install one_gadget command
RUN gem install one_gadget
WORKDIR /root
1. 위 파일을 복사하여 Dockerfile이란 이름으로 저장
2. 아래 명령어 순차적으로 실행
IMAGE_NAME=ubuntu1804 CONTAINER_NAME=my_container
docker build . -t $IMAGE_NAME
docker run -d -t --privileged --name=$CONTAINER_NAME $IMAGE_NAME
docker exec -it -u root $CONTAINER_NAME bash
3. 앞으로 해당 도커파일로 접속할 때
sudo docker exec -it -u root $CONTAINER_NAME bash
로 접속하면 된다.
이렇게 잘 접속한 것을 볼 수 있다.
(참고) 자기 glibc 버전 확인하기
$ getconf -a | grep libc
또는
$ ldd --version
함수 소스 코드 참고하고 싶을 때 (사실 gdb관련아님)
https://codebrowser.dev/glibc/glibc/malloc/malloc.c.html#unlink_chunk
참고) 이거는 glibc 맞게 익스하는 방법!
https://dreamhack.io/forum/qna/2161