天天看点

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

前言

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

已装工具列表
vim ROPgadget
git one_gadget
gcc seccomp-tools
python3-pip LibcSearcher
python-is-python3 patchelf
qemu gcc-arm-linux-gnueabi
gdb-multiarch gcc-aarch64-linux-gnu
pwntools gcc-mips-linux-gnu
pwndbg gcc-mipsel-linux-gnu
peda gcc-mips64-linux-gnuabi64
gef gcc-mips64el-linux-gnuabi64

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

虚拟机安装

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

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

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

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

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

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

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

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

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

基础工具

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

vim

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

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

安装命令:

检验安装成功:

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

git

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

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

安装命令:

检验安装成功:

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

gcc

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

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

安装命令:

[email protected]:~$ sudo apt install gcc
           

检验安装成功:

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

python3-pip

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

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

安装命令:

[email protected]:~$ sudo apt install python3-pip
           

检验安装成功:

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

python-is-python3

设置python命令默认为python3

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

安装命令:

[email protected]:~$ sudo apt install python-is-python3
           

检验安装成功:

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

qemu

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

安装命令:

[email protected]:~$ sudo apt-get install qemu-user qemu-system 
           

检验安装成功:

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

gdb-multiarch

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

安装命令:

[email protected]:~$ sudo apt-get install gdb-multiarch
           

检验安装成功:

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

PWN工具

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

[email protected]:~$ cd ~
[email protected]:~$ mkdir tools
           

pwntools

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

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

安装命令:

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

检验安装成功:

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

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下来

[email protected]:~$ cd tools
[email protected]:~/tools$ git clone https://github.com/longld/peda.git
[email protected]:~/tools$ git clone https://github.com/pwndbg/pwndbg.git
[email protected]:~/tools$ git clone https://github.com/hugsy/gef.git
           

pwndbg安装:

[email protected]:~$ cd ~/tools/pwndbg
[email protected]:~/tools/pwndbg$ ./setup.sh
           

安装插件依赖:

[email protected]:~$ sudo pip install keystone-engine ropper keystone-engine
           

在gdbinit中挂载插件:

[email protected]:~$ 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
-------------------------------------------------------------------------
[email protected]:~$ source ~/.gdbinit
           

检验安装成功:

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

ROPgadget

该工具允许在二进制文件中搜索小工具,以促进对ROP的利用。ROPgadget支持x86、x64、ARM、ARM64、PowerPC、SPARC和MIPS架构下的ELF/PE/Mach-O格式

查找ROP链利器

安装命令:

[email protected]:~$ sudo pip3 install capstone
[email protected]:~$ cd tools
[email protected]:~/tools$ git clone https://github.com/JonathanSalwan/ROPgadget.git
[email protected]:~/tools$ cd ROPgadget
[email protected]:~/tools/ROPgadget-master$ sudo python3 setup.py install
           

若出现下列错误:

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

则输入:

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

检验安装成功:

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

one_gadget

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

不多说,懂得都懂

安装命令:

[email protected]:~$ sudo apt -y ruby ruby-dev
[email protected]:~$ sudo gem install one_gadget
           

检验安装成功:

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

seccomp-tools

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

分析沙盒题必备工具

安装命令:

[email protected]:~$ sudo gem install seccomp-tools
           

检验安装成功:

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

LibcSearcher

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

安装命令:

[email protected]:~$ cd tools
[email protected]:~/tools$ git clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.git
[email protected]:~/tools$ cd LibcSearcher
[email protected]:~/tools/LibcSearcher$ sudo python3 setup.py install
           

检验安装成功:

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

patchelf

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

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

安装命令:

[email protected]:~$ sudo apt install patchelf 
           

检验安装成功:

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

ARM PWN

ARM软件包

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

安装命令:

[email protected]:~$ sudo apt-get install gcc-arm-linux-gnueabi
[email protected]:~$ sudo apt-get install gcc-aarch64-linux-gnu
           

检验安装成功:

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

MIPS PWN

MIPS软件包

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

安装命令:

[email protected]:~$ sudo apt-get install gcc-mips-linux-gnu
[email protected]:~$ sudo apt-get install gcc-mipsel-linux-gnu
[email protected]:~$ sudo apt-get install gcc-mips64-linux-gnuabi64
[email protected]:~$ sudo apt-get install gcc-mips64el-linux-gnuabi64
           

检验安装成功:

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

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

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