Fork me on GitHub

pwn工具准备

pwn工具准备

本文是pwn系列博客的开篇,面向的是pwn的初学者,我也是刚刚才开始学习pwn,边学边记录吧。

系统

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遇到了奇奇怪怪的问题,记录一下。

  1. ubuntu16.04上python版本是2.7和3.5,且pip无法升级,如果需要更高版本的python,请参考Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
  2. 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
  3. 从github上clone了pwndbg,运行./setup.sh遇到问题raise argparse.ArgumentError(banner_arg, f"banner can not be '{banner}'"),解决方法:Ubuntu16.04pwn专用虚拟机下安装pwndbg的问题(raise问题/syntaxerror:invaild syntax)

参考资料

星盟安全团队课程:https://www.bilibili.com/video/BV1Uv411j7fr

posted @ 2022-04-12 00:28  husterzxh  阅读(548)  评论(0编辑  收藏  举报