pwn做题环境搭建

本文档详细介绍了如何配置一个用于pwn题目的环境,包括多libc环境的搭建、Python2与pip2的安装、Seccomp Tools、one_gadget、Ropgadget等工具的安装,以及pwndbg、gdb-peda、gef调试工具的配置。同时,还提到了自定义.bashrc命令、libcsearcher和pwntools的使用,以及编写shellcode的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pwn做题环境搭建

多libc环境

这个项目可以下载多个编译好的libc.so以及ld.so

git clone https://github.com/matrix1001/glibc-all-in-one
cd glibc-all-in-one
./update_list 		#获取可以更新的glibc的版本
cat list 				#查看可下载的glibc
./download glibc 		#glibc为要下载glibc的名字

exp调试时这样写即可

elf_addr = "./roarctf_2019_easyheap"
ld_path="/home/wangpei/glibc-all-in-one/libs/2.23-0ubuntu11.3_amd64/ld-2.23.so"
libc_path="/home/wangpei/glibc-all-in-one/libs/2.23-0ubuntu11.3_amd64/libc.so.6"
sh = process([ld_path,elf_addr],env={"LD_PRELOAD":libc_path})

在这里插入图片描述
在这里插入图片描述

系统 Ubuntu16.04 x64

装python2

卸载自带的python2,然后用下面的命令来安装新的

sudo apt-get install python-minimal python-dev

安装pip2

wget https://files.pythonhosted.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
tar -zxvf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install   #我这里只装了python2

如果上一步安装时提示缺少setuptools就按下面步骤安装setuptools

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar -xvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install

安装其他依赖

apt install   gcc-4.8-multilib   g++-4.8-multilib  #编译32位程序需要
apt install  python-dev			#安装pwntools需要
apt-get install libc6:i386   #安装32位库

安装Seccomp Tools

升级ruby

添加 PPA 源:

sudo add-apt-repository ppa:brightbox/ruby-ng
sudo apt-get update

先删除旧版本:

sudo apt-get purge --auto-remove ruby

然后安装新版本:

sudo apt-get install ruby2.6 ruby2.6-dev

安装 Seccomp Tools

gem install seccomp-tools

安装one_gadget

sudo gem install one_gadget

安装Ropgadget

 pip install ropgadget
 Ropgadget   #使用的时候是ROPgadget

pwndbg安装

1 git clone https://github.com/pwndbg/pwndbg
2 cd pwndbg
3 ./setup.sh

安装pwngdb,增加heap相关的插件

cd ~/
git clone https://github.com/scwuaptx/Pwngdb.git 
cp ~/Pwngdb/.gdbinit ~/

gdb-peda安装

1 git clone https://github.com/longld/peda.git ~/peda
2 echo "source ~/peda/peda.py" >> ~/.gdbinit

gef安装

# via the install script
#下载 `gef.sh` 并执行
wget -q -O- https://github.com/hugsy/gef/raw/master/gef.sh | sh

# manually
# 下载 `gef.py`, 并将其 `source` 写入 `.gdbinit`
wget -q -O ~/.gdbinit-gef.py https://github.com/hugsy/gef/raw/master/gef.py
echo source ~/.gdbinit-gef.py >> ~/.gdbinit

修改.bashrc 自定义命令,来轻松切换gef和gdb-peda

修改.basrc,将下面两行代码插入到.bashrc里

alias gef="echo 'source ~/.gdbinit-gef.py' > ~/.gdbinit"
alias peda="echo 'source ~/peda/peda.py'> ~/.gdbinit"

执行

source .bashrc

调试的时候想使用gef插件,启动gdb之前,在终端输入gef
在这里插入图片描述
想使用gdb-peda时
在这里插入图片描述

libcsearcher安装

git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop

pwntools安装

python -m pip --timeout=100 install pwntools

gdb 调试技巧

layout asm   //查看反汇编 
si      //单步执行进入
ni      //单步执行跳过
run  //运行
r < code   //将code作为输入运行
x/100i  addr  // 从addr地址开始,反汇编100条指令
bt    查看栈帧

编写shellcode

这是在网上找的
1、在shellcode数据库网站找一个shellcode,http://shell-storm.org/shellcode/
2、使用kali的msfvenon生成shellcode,如命令msfvenon -p linux/x86/exec CMD=/bin/sh -f python
3、使用pwntools自带的函数如asm(shellcraft.sh())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值