Ubuntu22.04搭建PWN环境
前言
最近尝试在Ubuntu最新的版本22.04版本上搭建PWN环境,有了之前在kali上搭建的经验,总的来说问题不大。但搭建的时候还是有不少地方出错了,好在搭建的过程中不断的拍摄快照,所以整个过程还没有出现把虚拟机搞砸的情况(之前有一次是这样,当时还是个萌新,虽然现在也是😂😂😂)
以下是搭建过程中所需要安装的工具列表
vim | git | ROPgadget |
---|---|---|
python3-pip | gdb-multiarch | pwntools |
pwndbg | peda | gef |
虚拟机安装的过程就不多说了,百度一下一大堆,而且大部分教程简单易懂,安装起来难度不大,这里就不再细讲了。不过要提醒一点,安装工具前最好更新一下虚拟机。
工具安装
1、vim
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。(来源于百度百科)
vim用起来其实还可以,只是对于新手来说不是很友好(本人vim终极粉丝🐶🐶🐶)
安装命令如下:
sudo apt install vim
检测是否安装成功,在终端输入如下命令:
vim -v
如果出现如下界面则说明安装成功
2、git
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。(来源于百度百科)
这个工具日常用到,就不多说了
安装命令如下:
sudo apt install git
检测是否安装成功,在终端输入如下命令:
git --version
如果出现如下界面则说明安装成功
3、python3-pip
pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。(来源于百度百科)
因为python2已经不再维护了,很多工具所需的依赖python2有时候会出现报错,而python3则不会有什么问题
安装命令如下:
sudo apt install python3-pip
检测是否安装成功,在终端输入如下命令:
pip3 -V
如果出现如下界面则说明安装成功
4、gdb-multiarch
用于gdb的客户端调试,是任何架构的通用客户端
安装命令如下:
sudo apt-get install gdb-multiarch
检测是否安装成功,在终端输入如下命令:
gdb-multiarch -v
如果出现如下界面则说明安装成功
5、pwntools
pwntools是一个CTF框架和漏洞利用开发库,用Python开发,旨在让使用者简单快速的编写exploit(来源于知乎)
这里我在桌面创建一个pwn_tool的文件夹,用来存放git下来的工具,方便后续操作,创建命令如下:
mkdir pwn_tools
此时我们可以在桌面看到已创建的文件夹了
pwntools有两种安装方法(参考网上的),一种是git项目后安装,另一种是pip直接安装。这里用的方法是先将pwntools git下来,但是用pip安装,因为后续的工具需要pwntools项目包里的脚本,pip安装会减少出错的概率。当然也可以用pip直接安装。安装过程比较长,要有耐心
安装命令如下:
cd pwn_tool
git clone https://github.com/Gallopsled/pwntools.git
sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
命令说明:cd pwn_tool是切换到pwn_tool文件夹里面,其次要注意在使用git的时候是否将文件clone下来,没有的话就多试几次
检测是否安装成功,在终端输入如下命令:
python3
from pwn import *
如果出现如下界面则说明安装成功
6、pwndbg、peda、gef
这三个都是gdb调试插件
·pwndbg:一个GDB插件,使GDB的调试不那么糟糕
·peda:GDB的Python开发开发协助
·gef:是一组用于x86/64、ARM、MIPS、PowerPC和SPARC的命令,用于在使用老式GDB时帮助开发人员和反向工程师
先把这三个工具git下来(记得看一看是否在pwn_tool目录里,没有则切换进去),命令如下:
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安装(切换到pwndbg目录里再安装)
cd pwndbg
./setup.sh
安装相关插件依赖,命令如下:
sudo pip install keystone-engine ropper keystone-engine
在gdbinit中挂载插件:
sudo vim ~/.gdbinit
## vim后参照第一行的内容,在文件内输入下方横线中内容(注意每个人的路径是不同的,所以要输入的内容也是不同的,下面以我的为例),选择你要用的一个,另外两个注释掉,保存退出
#source /home/cmx/桌面/pwn_tool/peda/peda.py
#source /home/cmx/桌面/pwn_tool/gef/gef.py
检验插件是否安装成功:
pwndbg:
peda:
gef:
7、ROPgadget
查找ROP链利器,使用此工具,可以在二进制文件中搜索Gadgets,以方便对ROP的利用。
先安装Capstone,它是一个轻量级的多平台架构支持的反汇编架构,命令如下:
sudo pip3 install capstone
把工具git下来:
git clone https://github.com/JonathanSalwan/ROPgadget.git
切换到目录,然后安装:
cd ROPgadget
sudo python3 setup.py install
PWN环境的搭建就介绍到这了。因本人菜鸡一只,如果有什么不对的地方,实属正常。还请各位大佬予以指正,谢谢!