赞
踩
不同的pwn题有不同的环境要求,堆题要求更多,patchelf可以满足一定场景的实现,但终究不如在实际对应的环境中搭建。如何快速搭建一个高效节省资源的环境也是一个不小的问题。
高效节省资源:一个主要调试环境+多个运行环境 =主机+docker容器
gdb+pwntools+pwndbg等等,网上这类教程很多,不细说。
多加一点:hyperpwn这个插件也挺好用的,支持gdb结果回溯,不需要再在翻滚轮了具体项目地址
https://github.com/bet4it/hyperpwn
针对buuctf中涉及ubuntu16、ubuntu18 ubuntu20三种主要环境,采用docker容器的方式搭建相应环境。
主要命令
sudo docker pull ubuntu:16.04 # 拉取16.04的镜像
sudo docker images # 列出镜像
sudo docker rename great_mestorf pwn_ubuntu16 # 重命名镜像
sudo docker run -it ubuntu:16.04
sudo docker start [CONTAINER ID] # 启动镜像
sudo docker cp 本地文件的路径 container_id:<docker容器内的路径> # 向docker传输文件
sudo docker attach [CONTAINER ID] # 进入镜像shell
apt install gdbserver # 在镜像shell中下载gdbserver
apt-get install build-essential # 在镜像shell中安装一些的运行库
gdbserver 宿主机IP:2345 二进制文件 # 在镜像shell中启动gdbserver
sudo docker commit -p 0fa9c9fce605 pwn_ubunt16_ori # 拍摄快照
gdb target remote 容器IP:2345 # 宿主机进行调试
docker中运行文件
宿主机调试
当然也可以在相应的docker里面进行调试。
docker的链接
百度云
链接: https://pan.baidu.com/s/1wkRzwgPN_znicbUUNCo1TQ 提取码: hpq4
含有ubuntu16,有python3.9,gdb11,pwndbg
CSDN
https://download.csdn.net/download/weixin_41748164/87024563
https://download.csdn.net/download/weixin_41748164/87024401
加载相应的docker
docker import - new_hangger_server < hangger_server.tar
备注
ubuntu18和ubuntu20 里面有gdb、gdbserver、pwndbg均可使用
ubuntu16的镜像较大就不再上传
原版的ubuntu16 默认安装的是gdb7,python3.5,这两个在目前的pwndbg均不适用,所以需要自己重新编译python,在用编译好的python编译gdb。在python和gdb的版本都达到要求后,下载pwndbg,不运行setup.sh
,直接安装该插件所需要的依赖即可
sudo docker pull ubuntu:16.04
sudo docker run -it --privileged "ubuntu:16.04" /bin/bash
sudo docker start 9e666c6ef836
sudo docker attach 9e666c6ef836
apt-get update
apt-get install build-essential texinfo git vim
xz -dk gdb-11.2.tar.xz
xz -dk Python-3.8.15.tar.xz
tar -xvf Python-3.8.15.tar
tar -xvf gdb-11.2.tar.xz
#升级python
sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
cd Python-3.8.15
./configure --prefix=/usr/local/python3
make & make install
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
# 编译gdb
apt-get install libgmp-dev libncurses5-dev
cd gdb-11.2
mkdir build
cd build
../configure --with-python=/usr/bin/python3
make && make install
# 安装pwndbg
git clone https://github.com/pwndbg/pwndbg.git
pip install -r requirements.txt
echo "source /root/pwn/pwndbg/gdbinit.py" > ~/.gdbinit
# 解决编码问题
vim /etc/profile
export LANG=C.UTF-8
source /etc/profile
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。