ubuntu20.04 PWN(含x86、ARM、MIPS)环境搭建

ubuntu20.04 PWN(含x86、ARM、MIPS)环境搭建,第1张

前言

最近在ubuntu20.04中重装了一遍PWN的环境,顺带着安装了ARMMIPS的交叉编译及运行环境。装的时候也是摸着石头过河,好在拍了很多快照,即使装错了也没有关系,下面是已装的工具列表:

已装工具列表
vimROPgadget
gitone_gadget
gccseccomp-tools
python3-pipLibcSearcher
python-is-python3patchelf
qemugcc-arm-linux-gnueabi
gdb-multiarchgcc-aarch64-linux-gnu
pwntoolsgcc-mips-linux-gnu
pwndbggcc-mipsel-linux-gnu
pedagcc-mips64-linux-gnuabi64
gefgcc-mips64el-linux-gnuabi64

编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ

虚拟机安装

镜像:ubuntu-20.04.2.0-desktop-amd64.iso

选择ubuntu20.04是因为现在很多打比赛的题目大部分都是libc2.27以上的了,当然在也可以在自己环境中选择升级。下载好镜像之后就可以开始在VMware上装了,下面是我的配置:

处理器:2个内核、内存:4GB、虚拟磁盘:300GB。不用担心虚拟磁盘给的多,他是虚拟机用多少分配多少,不是直接就在你的物理磁盘上划走300GB。这里建议给大点,踩过磁盘给小的坑o(╥﹏╥)o

配置好之后等待安装之后就可以了

装好之后首先会有一个基础服务的配置,除了上图这个界面,如果你不想发送系统信息,要把这个no选项勾上,其他界面直接跳过。基础选项跳过之后会d出一个软件升级,也直接关闭就好了。如果你想做一些美化就自行查一下吧,这里主要讲pwn环境搭建

基础工具

后续大部分工具都是命令行安装,所以可以在软件列表中搜索一下Terminal,我这里没有修改源文件,之前踩过阿里源的坑,官方源虽然慢了点,但是没有什么问题

vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件

个人是非常习惯使用vim编辑器的,总感觉在满屏shell里面突然d出一个图形界面文本编辑器怪怪的。。。。。

安装命令:

hollk@ubuntu:~$ sudo apt install vim

检验安装成功:

git

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

后续会经常在github上拽工具,所以git必装

安装命令:

hollk@ubuntu:~$ sudo apt install git

检验安装成功:

gcc

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器

gcc必装啦,这个不用说了,自己想要编写一些demo的时候需要gcc进行编译,后续arm交叉编译环境也需要gcc支持

安装命令:

hollk@ubuntu:~$ sudo apt install gcc

检验安装成功:

python3-pip

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能

因为python2已经不再维护了,所以后续很多工具所需的依赖python2会出错,python3不会有什么问题

安装命令:

hollk@ubuntu:~$ sudo apt install python3-pip

检验安装成功:

python-is-python3

设置python命令默认为python3

我这种python2用习惯的人少打一个3还是很好的体验😂

安装命令:

hollk@ubuntu:~$ sudo apt install python-is-python3

检验安装成功:

qemu

QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛

安装命令:

hollk@ubuntu:~$ sudo apt-get install qemu-user qemu-system 

检验安装成功:

gdb-multiarch

用作gdb客户端进行调试,是任何架构的通用客户端

安装命令:

hollk@ubuntu:~$ sudo apt-get install gdb-multiarch

检验安装成功:

PWN工具

建议在主目录下创建一个tools目录,这样我们所有git下来的工具就有统一存放的位置,也方便后续查找

hollk@ubuntu:~$ cd ~
hollk@ubuntu:~$ mkdir tools
pwntools

Pwntools是一个CTF框架和开发库。它是用Python编写的,设计用于快速原型和开发,旨在使开发编写尽可能简单

pwntools有两种安装方法,一种是git项目后安装,另一种是pip直接安装。这里我们把pwntools git下来,但是用pip安装,因为后续的工具需要pwntools项目包里的脚本,pip安装不会出错。安装过程时间较长,保持网络状态良好

安装命令:

hollk@ubuntu:~$ cd tools
hollk@ubuntu:~/tools$ git clone https://github.com/Gallopsled/pwntools.git
hollk@ubuntu:~/tools$ sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
hollk@ubuntu:~/tools$ python3 -m pip install --upgrade pip
hollk@ubuntu:~/tools$ python3 -m pip install --upgrade pwntools

检验安装成功:

pwndbg、peda、gef

pwndbg:pwndbg (/poʊnddb æg/)是一个GDB插件,使GDB的调试不那么糟糕,重点关注低级软件开发人员、硬件黑客、逆向工程师和开发人员需要的特性
peda:GDB的Python开发开发协助
gef:GEF(发音为ʤɛf -“Jeff”)是一组用于x86/64、ARM、MIPS、PowerPC和SPARC的命令,用于在使用老式GDB时帮助开发人员和反向工程师

先把三个都git下来

hollk@ubuntu:~$ cd tools
hollk@ubuntu:~/tools$ git clone https://github.com/longld/peda.git
hollk@ubuntu:~/tools$ git clone https://github.com/pwndbg/pwndbg.git
hollk@ubuntu:~/tools$ git clone https://github.com/hugsy/gef.git

pwndbg安装:

hollk@ubuntu:~$ cd ~/tools/pwndbg
hollk@ubuntu:~/tools/pwndbg$ ./setup.sh

安装插件依赖:

hollk@ubuntu:~$ sudo pip install keystone-engine ropper keystone-engine

在gdbinit中挂载插件:

hollk@ubuntu:~$ 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链利器

安装命令:

hollk@ubuntu:~$ sudo pip3 install capstone
hollk@ubuntu:~$ cd tools
hollk@ubuntu:~/tools$ git clone https://github.com/JonathanSalwan/ROPgadget.git
hollk@ubuntu:~/tools$ cd ROPgadget
hollk@ubuntu:~/tools/ROPgadget-master$ sudo python3 setup.py install

若出现下列错误:
则输入:

hollk@ubuntu:~/tools/ROPgadget-master$ sudo cp -r scripts /home/hollk/.local/lib/python3.8/site-packages/ROPGadget-6.5.dist-info
## 后路径为图片中红框内报错路径

检验安装成功:

one_gadget

在ctf-pwn中大部分情况需要获得远程shell,one_gadget会自动查找ELF文件中的execve(’/bin/sh’, NULL, NULL),通过exploit实现RCE(远程代码执行)

不多说,懂得都懂

安装命令:

hollk@ubuntu:~$ sudo apt -y ruby ruby-dev
hollk@ubuntu:~$ sudo gem install one_gadget

检验安装成功:

seccomp-tools

该项目旨在(但不限于)分析CTF pwn挑战中的seccomp沙盒。有些特性可能是特定于ctf的,但对于分析真实情况下的seccomp仍然有用

分析沙盒题必备工具

安装命令:

hollk@ubuntu:~$ sudo gem install seccomp-tools

检验安装成功:

LibcSearcher

这是针对CTF比赛所做的小工具,在泄露了Libc中的某一个函数地址后,常常为不知道对方所使用的 *** 作系统及libc的版本而苦恼,常规方法就是挨个把常见的Libc.so从系统里拿出来,与泄露的地址对比一下最后12位(LibcSearcher自带libc-database)

安装命令:

hollk@ubuntu:~$ cd tools
hollk@ubuntu:~/tools$ git clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.git
hollk@ubuntu:~/tools$ cd LibcSearcher
hollk@ubuntu:~/tools/LibcSearcher$ sudo python3 setup.py install

检验安装成功:

patchelf

PatchELF是一个用于修改现有ELF可执行文件和库的简单实用程序

这个真的是非常滴好用,因为在做题的时候无法避免会出现多版本libc题的情况,但是如果按照libc版本重装多个虚拟机的话实在是太费劲了,patchelf就可以直接修改题目所需的libc

安装命令:

hollk@ubuntu:~$ sudo apt install patchelf 

检验安装成功:

ARM PWN ARM软件包

具备ARM交叉编译gcc与ARM程序动态链接库

安装命令:

hollk@ubuntu:~$ sudo apt-get install gcc-arm-linux-gnueabi
hollk@ubuntu:~$ sudo apt-get install gcc-aarch64-linux-gnu

检验安装成功:

MIPS PWN MIPS软件包

具备MIPS交叉编译gcc与MIPS程序动态链接库

安装命令:

hollk@ubuntu:~$ sudo apt-get install gcc-mips-linux-gnu
hollk@ubuntu:~$ sudo apt-get install gcc-mipsel-linux-gnu
hollk@ubuntu:~$ sudo apt-get install gcc-mips64-linux-gnuabi64
hollk@ubuntu:~$ sudo apt-get install gcc-mips64el-linux-gnuabi64

检验安装成功:

工具安装就介绍到这了,如果以后安装新的工具,还会在这篇文章中追加的~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/718906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存