由于在最近几次配置pwn环境中遇到了一些麻烦,所以想着单独出一篇讲pwn配环境的笔记,总结一下坑点还有一些常规步骤。
pwn环境配置
首先第一步,启用Windows功能这块是必须的,开启适用于Windows的Linux子系统,以及Hyber-V的配置,配置完成后再到应用商店中下载ubuntu和终端程序。
sudo apt-get install gcc
sudo apt-get install gdb
sudo apt-get install g++
sudo apt-get install libc6-dev-i386
sudo apt install vim
sudo apt install git
#0、gdb
sudo apt install gdb
#1、pwntools
sudo apt-get install python3-pip python3-dev libssl-dev libffi-dev build-essential
pip install -U setuptools
pip install --upgrade pip
pip install --upgrade pwntools
#2、libcsearcher
sudo pip install capstone
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python3 setup.py develop
#3、ROPgadget
sudo apt-get install python-capstone
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
python3 setup.py install
#4、onegadget
sudo apt install ruby
sudo gem install one_gadget
#5、pwndbg
sudo git clone https://github.com/pwndbg/pwndbg
cd pwndbg
sudo pip install keystone-engine ropper keystone-engine
./setup.sh
# pwndbg 分屏
vim ~/.gdbinit
set context-output /dev/pts/2 # 这里修改成2,那么就会在第二个终端显示信息
#peda及gef工具也可下载,在~/.gdbinit文件进行配置
git clone https://github.com/longld/peda.git
git clone https://github.com/hugsy/gef.git
#6、qemu
sudo apt-get install qemu-user qemu-system
#7、seccomp-tools
sudo gem install seccomp-tools
#8、patchelf
sudo apt install patchelf
#9、checksec
git clone https://github.com/slimm609/checksec.sh
env | grep "^PATH"
sudo cp checksec /usr/local/bin/
#10、glibc-all-in-one
sudo git clone https://github.com/matrix1001/glibc-all-in-one.git #也可以自行去官网下载然后解压
cd glibc-all-in-one/
sudo python3 update_list
#以下为ARM相关配置,可选
#1、ARM软件包,具备ARM交叉编译gcc与ARM程序动态链接库
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnu
#校验安装包安装成功:
arm-linux-gnueabi-
gcc-aarch64-linux-gnu-
#2、MIPS软件包,具备MIPS交叉编译gcc与MIPS程序动态链接库
sudo apt-get install gcc-mips-linux-gnu
sudo apt-get install gcc-mipsel-linux-gnu
sudo apt-get install gcc-mips64-linux-gnuabi64
sudo apt-get install gcc-mips64el-linux-gnuabi64
#校验安装包安装成功命令如下:
mips-linux-gnu-
mipsel-linux-gnu-
mips64-linux-gnuabi64-
mips64el-linux-gnuabi64-
安装zsh工具,方便操作。
sudo apt-get install zsh
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
chsh -s /bin/zsh #更改默认shell
cd ~/.oh-my-zsh/plugins/
git clone https://github.com/zsh-users/zsh-autosuggestions
#zsh插件安装
#1、代码补全 zsh-autosuggestions
git clone https://gitee.com/gid5564/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
#2、高亮 zsh-syntax-highlighting
git clone https://gitee.com/snowtafir/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
#编辑隐藏文件~/.zshrc,找到plugins=(git这一行,然后下一行添加下面代码
#原有的:source $ZSH/oh-my-zsh.sh
plugins=(
git zsh-autosuggestions zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
#若要设置随机主题
ZSH_THEME="random"
在安装pwndbg的过程中,可能会遇到一些问题。ubuntu18的系统已经无法正常按照步骤安装pwndbg,所以可以参考如下方法。
https://github.com/pwndbg/pwndbg/releases/tag/2023.07.17
tar -xvf pwndbg-2023.07.17.tar.gz
2023.07.17是支持python3.8的最后一个版本,因此如果要在ubuntu18上安装pwndbg,则应该下载这个版本的pwndbg来进行安装。
git init
./setup.sh
直接运行setup脚本安装会报错,在此之前要初始化git环境,后面就可以直接正常安装了。
还有一个问题,在安装onegadget的过程中,可能会遇到Ruby版本冲突的情况,因此可以考虑下列方法,将Ruby升级到最新版本2.7。
curl -sSL https://get.rvm.io | bash -s stable
直接做这一步会报错,提示没有公钥,安装系统给的命令添加公钥再执行即可安装。
# 1. 加载RVM环境
source ~/.rvm/scripts/rvm
# 2. 查看可用的Ruby版本
rvm list known
# 3. 安装Ruby
rvm install 2.7.2
# 4. 使用新版本的Ruby作为默认版本
rvm --default use 2.7.2
# 5. 确认Ruby已经更新
ruby -v