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环境没有什么难度,小编主打的就是一个懒,因为小编是已经安装好的环境,不想卸载重新安装一遍,大家自行复制粘贴,命令按照小编给出的顺序运行即可,如遇见报错等情况大家自行百度或者留言小编看到就回复帮助解决

posted @ 2023-06-02 15:32  N0t3  阅读(1116)  评论(0编辑  收藏  举报