pwn工具准备
pwn工具准备
本文是pwn系列博客的开篇,面向的是pwn的初学者,我也是刚刚才开始学习pwn,边学边记录吧。
系统
- VMWare虚拟机
- 镜像文件:ubuntu-20.04.4-desktop-amd64.iso
装好之后将源换成清华的镜像,具体操作请参考官方说明
python & git
系统自带的python版本是python 3.8,安装pip3;需要从github上clone,所以安装git
sudo apt install python3-pip
sudo apt install git
pwntools
python用于pwn的包,用pip安装
pip3 install pwntools
pwndbg
系统已经自带gdb了,手动安装pwndbg,pwndbg的github仓库
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
one_gadget
one_gadget用来在libc中寻找execve(“bin/sh",NULL,NULL)的片段。
one_gadget依赖ruby,先安装ruby和ruby的包管理器
sudo apt install ruby
sudo apt install gem
给gem换源
gem sources --remove https://rubygems.org/ # 移除当前源
gem sources –a https://gems.ruby-china.com/ # 添加新源
gem sources -l # 列出当前使用的源
安装one_gadget
sudo gem install one_gadget
如果最后一步安装one_gadget失败(我就遇到了),可以去ruby china上直接下载one_gadget安装,下载地址,然后使用如下命令安装
sudo gem install -l xxx.gem
直接安装会报错,提示需要依赖的包,根据报错信息去ruby china上下载对应的包,然后用类似的gem install -l
安装即可
main_arena_offset
一个shell脚本,github地址,下载下来就可以直接用
IDA Pro
商业付费软件
checksec
checksec用来检查程序的保护措施,我之前用ubuntu20.04时,checksec不需要手动安装,现在改用ubuntu16.04后,需要手动安装checksec,github地址。下载解压后就会用可执行文件checksec,命令格式为checksec --file=program
,显示的结果也跟之前用的checksec不一样了,不过该有的功能都有。通过修改环境变量,可以将checksec变成命令,参考ubuntu自定义命令。
补充
我在ubuntu16.04上安装pwndbg和pwntools遇到了奇奇怪怪的问题,记录一下。
- ubuntu16.04上python版本是2.7和3.5,且pip无法升级,如果需要更高版本的python,请参考Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
- 用
pip3 install pwntools
遇到问题subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
,解决方法:用vim /usr/bin/lsb_release
,将第一行python版本进行修改。参考:pip is showing error 'lsb_release -a' returned non-zero exit status 1 - 从github上clone了pwndbg,运行./setup.sh遇到问题
raise argparse.ArgumentError(banner_arg, f"banner can not be '{banner}'")
,解决方法:Ubuntu16.04pwn专用虚拟机下安装pwndbg的问题(raise问题/syntaxerror:invaild syntax)
参考资料
邮箱:husterzxh@foxmail.com
转载请注明本文链接,禁止商业用途,违者必究!