rosieblue
article thumbnail
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

 

malloc.c source code [glibc/malloc/malloc.c] - Codebrowser

 

codebrowser.dev

 

 

참고) 이거는 glibc 맞게 익스하는 방법!

https://dreamhack.io/forum/qna/2161 

 

tcache_dup 강좌 관련 문의

https://learn.dreamhack.io/16#p657 위 강좌에서 설명된 _intfree 함수를 보니 patch 이전 코드로 보입니다. https://learn.drea…

dreamhack.io

 

profile

rosieblue

@Rosieblue

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!