Pwn学习之路-pwn环境搭建(内容主打的就是一个懒)
PWN环境搭建
个人建议用ubuntu18.04.2可能是用的比较习惯顺手,建议在windows里面直接安装一个ubuntu的子系统,后续小编会陆陆续续更新一些关于pwn学习的文章,我们先来搭建一个专门打pwn的ubuntu环境
基础工具
Vim
直接我是已经安装好的vim
sudo apt install vim
git
跟着一把梭哈就行直接执行命令
sudo apt install git
GCC
感觉没事卵用的gcc,但是我们依旧还是要装上去
sudo apt install gcc
python3-pip
pip都比较熟悉当然ubunut自带的python3是没有pip的照样命令一把梭哈
sudo apt install python3-pip
qemu
QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛,个人感觉还可以但是依旧没有卵用,我们照样用命令一把梭哈
sudo apt-get install qemu-user qemu-system
gdb-multiarch
用作gdb客户端进行调试,是任何架构的通用客户端
命令
sudo apt-get install gdb-multiarch
PWN工具准备
现创建一个专门存文件的地址
Cd ~
mkdir pwn
Pwntools
Python3和python2的我都实例出来
Python2
Pip install pwntools
Python3
Pip3 install pwntools
查询是否安装成功
Python3
from pwn import *
安装成功
如果报错的话自己找一找问题我安装的过程共没有提示报错,所以我无法提供解决方法
checksec
安装命令如下:
cd pwn
git clone https://github.com/slimm609/checksec.sh.git
cd checksec.sh
sudo ln -s checksec /usr/local/bin/checksec或者sudo ln -sf checksec /usr/local/bin/checksec
使用命令如下:
checksec filename
Pwndbg,peda,gef
我们先进入刚刚创建的pwn文件夹
Cd pwn
然后把三个工具的内容给git下来
git clone https://github.com/pwndbg/pwndbg.git
git clone https://github.com/longld/peda.git
git clone https://github.com/hugsy/gef.git
首先安装pwndbg
然后还在刚刚的目录
直接
cd pwndbg
然后运行
./setup.sh
然后返回主目录安装插件
sudo pip install keystone-engine ropper keystone-engine
然后执行设置插件
sudo vim ~/.gdbinit
进去之后把下面的配置复制粘贴进去
## vim后在文件内输入下方横线中内容,选择三个插件其中一个,另外两个注释掉,保存退出
-------------------------------------------------------------------------
source /home/hollk/tools/pwndbg/gdbinit.py
#source /home/hollk/tools/peda/peda.py
#source /home/hollk/tools/gef-dev/gef.py
-------------------------------------------------------------------------
ROPgadget
该工具允许在二进制文件中搜索小工具,以促进对ROP的利用。ROPgadget支持x86、x64、ARM、ARM64、PowerPC、SPARC和MIPS架构下的ELF/PE/Mach-O格式
查找ROP链的利器
安装命令如下(按照安装的顺序来):
sudo pip3 install capstone
cd pwn
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
sudo python3 setup.py install
one_gadget
在ctf-pwn中大部分情况需要获得远程shell,one_gadget会自动查找ELF文件中的execve(‘/bin/sh’, NULL, NULL),通过exploit实现RCE(远程代码执行)
懂得都懂,也是神器虽然我不用但他依旧是神奇
安装命令如下:
sudo apt install -y ruby ruby-dev
sudo gem install one_gadget
检验安装是否成功的命令:
one_gadget –-version
seccomp-tools
分析沙盒题的必备神器
安装命令如下:
sudo gem install seccomp-tools
检验命令:
seccomp-tools --version
LibcSearcher
这是针对CTF比赛所做的小工具,在泄露了Libc中的某一个函数地址后,常常为不知道对方所使用的操作系统及libc的版本而苦恼,常规方法就是挨个把常见的Libc.so从系统里拿出来,与泄露的地址对比一下最后12位(LibcSearcher自带libc-database)
在CTF中也是属于神兵利器了的
安装命令:
Cd pwn
git clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.git
cd LibcSearcher
sudo python3 setup.py install
安装成功校验命令:
Python3
from LibcSearcher import *
patchelf
PatchELF是一个用于修改现有ELF可执行文件和库的简单实用程序,主打的就是一个神兵利器。
安装命令如下:
sudo apt install patchelf
校验安装是否成功的命令如下:
Patchelf –version
ARM PWN环境
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-
MIPS PWN
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-
结尾
安装pwn环境没有什么难度,小编主打的就是一个懒,因为小编是已经安装好的环境,不想卸载重新安装一遍,大家自行复制粘贴,命令按照小编给出的顺序运行即可,如遇见报错等情况大家自行百度或者留言小编看到就回复帮助解决