当前位置:   article > 正文

pwn调试环境搭建_pwn 堆环境配置

pwn 堆环境配置

应用场景

不同的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									# 宿主机进行调试
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行效果

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/71265
推荐阅读
相关标签
  

闽ICP备14008679号