반응형
touch Dockerfile로 파일 생성(파일명: Dockerfile)
-gdb-peda로 설치(heap pluigin 포함)
=> 주로 heap을 볼때는 pwndbg를 활용 (peda사용시 size가 1씩 차이남)
스크립트가 뭔가 박살나있지만.. 돌아가긴하니까...괜찮겠지..?
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 \
netcat \
git \
tar \
gzip \
curl \
wget \
zsh \
gdb \
libssl-dev \
libffi-dev \
build-essential
# install pwndbg
WORKDIR /root
RUN git clone https://github.com/pwndbg/pwndbg
WORKDIR /root/pwndbg
RUN git checkout 2023.03.19
RUN ./setup.sh
# intstall gdb-plugins
WORKDIR /root
RUN git clone https://github.com/apogiatzis/gdb-peda-pwndbg-gef.git
WORKDIR /root/gdb-peda-pwndbg-gef
RUN ./install.sh
# install pwntools
RUN pip3 install --upgrade pip
RUN pip3 install pwntools
# install one_gadget command
RUN gem install one_gadget
WORKDIR /root
이미지 빌드/컨테이너 실행/ 쉘 실행
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
추후에 본인은 python2를 즐겨써서 추가해주었음
로컬에서 docker 내부로 파일 옮기기
docker cp /path/to/host/file.txt container_name:/path/inside/container/file.txt
docker에서 로컬로 파일 옮기기
docker cp container_name:/path/inside/container/file.txt /path/to/host/file.txt
특정 libc를 사용해야할 경우
export LD_PRELOAD=$(realpath ./libc-2.27.so)
20.04설치시 timezone때문에 build 안될때 아래의 내용 추가
RUN apt update && \
apt-get install -yq tzdata && \
ln -fns /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
docker내부에서 peda를 사용할때, heapinfo 와 같은 heap관련 명령어가 안될시에 아래의 링크로 들어가서 pwngdb를 설치해주면 사용할 수 있어진다.
https://github.com/scwuaptx/Pwngdb
docker 내려가 있는 상태에서 명령어
docker run -d -t --privileged --name=ubuntu1804 ubuntu1804:1.0; \
docker exec -it -u root ubuntu1804 bash
gdb.attach() 시에 기본 gdb가 아닌 plugin으로 올리려면 아래와 같은 형식으로.
gdb.attach(p, gdbscript="source /path/to/peda.py")
peda를 주로 사용하는데 heap명령어가 안되어서 pwngdb를 추가하여 구성한 .gdbinit
#source ~/peda/peda.py
#source ~/Pwngdb/pwngdb.py
#source ~/Pwngdb/angelheap/gdbinit.py
#for heap commands
define hook-run
python
import angelheap
angelheap.init_angelheap()
end
end
define init-peda
source ~/peda/peda.py
end
document init-peda
Initializes the PEDA (Python Exploit Development Assistant for GDB) framework
end
define init-pwndbg
source ~/.gdbinit_pwndbg
end
document init-pwndbg
Initializes PwnDBG
end
define init-gef
source ~/.gdbinit-gef.py
end
document init-gef
Initializes GEF (GDB Enhanced Features)
end
-ref-
https://infosecwriteups.com/pwndbg-gef-peda-one-for-all-and-all-for-one-714d71bf36b8
반응형
'System Hacking' 카테고리의 다른 글
heap tutorial (0) | 2024.05.10 |
---|---|
heap overlapping (0) | 2024.05.09 |
computer structure (0) | 2023.09.10 |
pwnable.kr - flag (0) | 2023.09.10 |
basic_heap_overflow (0) | 2023.08.22 |