前言

最近尝试在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环境的搭建就介绍到这了。因本人菜鸡一只,如果有什么不对的地方,实属正常。还请各位大佬予以指正,谢谢!

Ubuntu22.04搭建PWN环境的更多相关文章

  1. kali2021.4a搭建pwn环境

    最近电脑重装系统(吐槽一下,win11真的一言难尽),顺便在虚拟机装了最新版本的KaliLinux,顺带着搭建一下PWN环境.总的来说这次搭建PWN环境问题不大,按照之前安装的步骤,整个过程还算是比较 ...

  2. Ubuntu 16.04 搭建KVM环境

      在Ubuntu 16.04下搭建KVM环境过程记录. 1 查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 有结果输出,如下图: 2 安 ...

  3. Linux 18.04 搭建lamp环境

    Linux 18.04 下搭建lamp环境 一.      安装服务器 a)     在配置好sources.list文件后,apt-get updata&upgrade更新软件: 二.    ...

  4. ubuntu18.04 搭建scrapy环境(连环踩坑+解决办法)

    ---恢复内容开始--- 预期需求: 打算搭建scrapy环境,基于python3.x的 环境描述: ubuntu18.04自带了python3.6,打算在虚拟环境vlenv中跑scrapy,装好虚拟 ...

  5. Ubuntu18.04搭建测试环境

    前言 说一下我的情况,之前由于我的云服务器数据库的root账号密码123456太简单,而在之前的博客中也泄露出了我的云服务器的IP地址,导致有人远程连接我的数据库,删除了项目数据库里的数据只剩下WAR ...

  6. Ubuntu-server14.04搭建LAMP环境

    转自:http://www.cnblogs.com/myzhibie/p/4330327.html 对于很多PHP初学开发者来讲,搭建一个可用于生产的LAMP环境是一件费时费力的事情,本文以 ubun ...

  7. ubuntu14.04搭建LAMP环境(nginx,php,mysql,linux)详解

    最近更换开发环境至ubuntu,整理开发环境和常用软件的安装配置(更新排版) 以下安装过程经过多次操作得出,参照步骤进行操作即可 一.LAMP基本环境搭建 1 切换root账号 sudo su 2,安 ...

  8. TestLink+Jenkins在Ubuntu16.04搭建集成测试环境

    序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...

  9. ubuntu16.04搭建vulhub环境

    简介 Vulhub官方中文教程https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md 环境:ubuntu16.04.5 python3 ...

随机推荐

  1. idea导入gitee下载的项目文件

    前一段时间在学习javaWeb时想要把gitee中的下载的项目在本地环境中跑一遍,然后根据效果再自己做出来. 但是当导入到IDEA中,配置完tomcat后一直报404错误.404是学习javaweb阶 ...

  2. 使用docker配置laravel5.5环境

    简介 简述一下我用docker来配置laravel环境 软件镜像 php:7.2-rc-fpm-alpine mysql:5.6 nginx:1.12.2-alpine 配置环境 Ubuntu:16. ...

  3. 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法

    1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...

  4. 【Java面试宝典】说说你对 Spring 的理解,非单例注入的原理?它的生命周期?循环注入的原理, aop 的实现原理,说说 aop 中的几个术语,它们是怎么相互工作的?

    AOP与IOC的概念(即spring的核心) IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度.而sprin ...

  5. spring cloud 的核心组件有哪些?

    Eureka:服务注册于发现. Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求. Ribbon:实现负载均衡,从一个服务的多台机器中选择一台. Hystrix:提 ...

  6. REST 和RPC对比?

    1.RPC主要的缺陷是服务提供方和调用方式之间的依赖太强,需要对每一个微服务进行接口的定义,并通过持续继承发布,严格版本控制才不会出现冲突. 2.REST是轻量级的接口,服务的提供和调用不存在代码之间 ...

  7. SpringMvc中函数的返回值是什么?

    返回值可以有很多类型,有String, ModelAndView.ModelAndView类把视图和数据都合并的一起的,但一般用String比较好.

  8. 什么是bean装配?

    装配,或bean 装配是指在Spring 容器中把bean组装到一起,前提是容器需要知道bean的依赖关系,如何通过依赖注入来把它们装配到一起.

  9. springboot-数据库访问之jpa

    什么是springDate? springData的作用: 整体简化的架构: JPA :Java Persistence API 如果没有springData 我们需要去学每一种对应的jpa实现, 有 ...

  10. 什么是 MyBatis 的接口绑定?有哪些实现方式?

    接口绑定,就是在 MyBatis 中任意定义接口,然后把接口里面的方法和 SQL 语句绑 定, 我们直接调用接口方法就可以,这样比起原来了 SqlSession 提供的方法我们可 以有更加灵活的选择和 ...