转载-ubuntu20.04 pwn(x86、arm、mips)环境搭建

转载-ubuntu20.04 pwn(x86、arm、mips)环境搭建

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

已装工具列表

  1. vim
  2. ROPgadget
  3. git
  4. one_gadget
  5. gcc
  6. seccomp-tools
  7. python3-pip
  8. LibcSearcher
  9. python-is-python3
  10. patchelf
  11. qemu
  12. gcc-arm-linux-gnueabi
  13. gdb-multiarch
  14. gcc-aarch64-linux-gnu
  15. pwntools
  16. gcc-mips-linux-gnu
  17. pwndbg
  18. gcc-mipsel-linux-gnu
  19. peda
  20. gcc-mips64-linux-gnuabi64
  21. gef
  22. gcc-mips64el-linux-gnuabi64

1.虚拟机安装

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQNK7hNZ-1629648326302)(https://i.loli.net/2021/08/20/M3FCp7KrVmYe4fk.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JaNEyARZ-1629648326304)(https://i.loli.net/2021/08/20/5D7uloyv4fNAQjh.png)]

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0sKrT3Zy-1629648326305)(https://i.loli.net/2021/08/20/DFjeNKgxWw6oE9h.png)]

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

2. vim

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

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

安装命令:

hollk@ubuntu:~$ sudo apt install vim

检验安装成功:

3.git

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

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

安装命令:

hollk@ubuntu:~$ sudo apt install git

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LU7vnf4u-1629648326309)(https://i.loli.net/2021/08/20/e3hvgZuDNJxyHQF.png)]

4.gcc

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

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

安装命令:

hollk@ubuntu:~$ sudo apt install gcc

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rL8HX0sG-1629648326311)(https://i.loli.net/2021/08/20/lDTISCjYEXMRLO7.png)]

5.python3-pip

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

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

安装命令:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R64qktGq-1629648326312)(https://i.loli.net/2021/08/20/ZbpPmvwxohlnRks.png)]

6.python-is-python3

设置python命令默认为python3

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

安装命令:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L5kowiAY-1629648326313)(https://i.loli.net/2021/08/20/7oYPlc4OTgnFkvN.png)]

7.qemu

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

安装命令:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFpdEiJl-1629648326314)(https://i.loli.net/2021/08/20/rzMYy29JkX8RdHN.png)]

8.gdb-multiarch

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

安装命令:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3I5QU2p-1629648326316)(https://i.loli.net/2021/08/20/VOhvQdy5HUacLlB.png)]

9.PWN工具

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

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

9.1 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

检验安装成功:

9.2 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

-------------------------------------------------------------------------

hollk@ubuntu:~$ source ~/.gdbinit

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CzYj42Rg-1629648326317)(https://i.loli.net/2021/08/20/RQpluIPvZTNhJjb.png)]

9.3 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

若出现下列错误:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1y8J5oqH-1629648326318)(https://i.loli.net/2021/08/20/vuy2WemPp697GqN.png)]

则输入:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zq1msiR3-1629648326320)(https://i.loli.net/2021/08/20/DU9CGNrAIjQuhvk.png)]

9.4 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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VhSl3JQN-1629648326321)(https://i.loli.net/2021/08/20/bs9h5nqIlmNFOKH.png)]

9.5 seccomp-tools

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

分析沙盒题必备工具

安装命令:

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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTDcWEvm-1629648326322)(https://i.loli.net/2021/08/20/DnqKeaLTxZNj6Sw.png)]

9.6 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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DdAR5Ymj-1629648326324)(https://i.loli.net/2021/08/20/ztpb5aAPDy6FI29.png)]

9.7 patchelf

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

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

安装命令:

hollk@ubuntu:~$ sudo apt install patchelf 

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JpfWuZi0-1629648326325)(https://i.loli.net/2021/08/20/rQpgq1OGYFMyEeV.png)]

10. 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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rAD7Tl6Y-1629648326326)(https://i.loli.net/2021/08/20/4iLvJnUGjcwtIQD.png)]

11.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

检验安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fFHqzJ8U-1629648326328)(https://i.loli.net/2021/08/20/hMSDmujnvUTlY61.png)]

转载于:https://blog.csdn.net/qq_41202237/article/details/118188924

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值