最近在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是因为现在很多打比赛的题目大部分都是libc2.27以上的了,当然在也可以在自己环境中选择升级。下载好镜像之后就可以开始在VMware上装了,下面是我的配置:
处理器:2个内核、内存:4GB、虚拟磁盘:300GB。不用担心虚拟磁盘给的多,他是虚拟机用多少分配多少,不是直接就在你的物理磁盘上划走300GB。这里建议给大点,踩过磁盘给小的坑o(╥﹏╥)o
配置好之后等待安装之后就可以了
装好之后首先会有一个基础服务的配置,除了上图这个界面,如果你不想发送系统信息,要把这个no选项勾上,其他界面直接跳过。基础选项跳过之后会d出一个软件升级,也直接关闭就好了。如果你想做一些美化就自行查一下吧,这里主要讲pwn环境搭建
基础工具后续大部分工具都是命令行安装,所以可以在软件列表中搜索一下Terminal,我这里没有修改源文件,之前踩过阿里源的坑,官方源虽然慢了点,但是没有什么问题
vimVim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件
个人是非常习惯使用vim编辑器的,总感觉在满屏shell里面突然d出一个图形界面文本编辑器怪怪的。。。。。
安装命令:
hollk@ubuntu:~$ sudo apt install vim
检验安装成功:
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
后续会经常在github上拽工具,所以git必装
安装命令:
hollk@ubuntu:~$ sudo apt install git
检验安装成功:
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器
gcc必装啦,这个不用说了,自己想要编写一些demo的时候需要gcc进行编译,后续arm交叉编译环境也需要gcc支持
安装命令:
hollk@ubuntu:~$ sudo apt install gcc
检验安装成功:
pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能
因为python2已经不再维护了,所以后续很多工具所需的依赖python2会出错,python3不会有什么问题
安装命令:
hollk@ubuntu:~$ sudo apt install python3-pip
检验安装成功:
设置python命令默认为python3
我这种python2用习惯的人少打一个3还是很好的体验😂
安装命令:
hollk@ubuntu:~$ sudo apt install python-is-python3
检验安装成功:
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
检验安装成功:
建议在主目录下创建一个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: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
-------------------------------------------------------------------------
检验安装成功:
该工具允许在二进制文件中搜索小工具,以促进对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
## 后路径为图片中红框内报错路径
检验安装成功:
在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
检验安装成功:
该项目旨在(但不限于)分析CTF pwn挑战中的seccomp沙盒。有些特性可能是特定于ctf的,但对于分析真实情况下的seccomp仍然有用
分析沙盒题必备工具
安装命令:
hollk@ubuntu:~$ sudo gem install seccomp-tools
检验安装成功:
这是针对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是一个用于修改现有ELF可执行文件和库的简单实用程序
这个真的是非常滴好用,因为在做题的时候无法避免会出现多版本libc题的情况,但是如果按照libc版本重装多个虚拟机的话实在是太费劲了,patchelf就可以直接修改题目所需的libc
安装命令:
hollk@ubuntu:~$ sudo apt install patchelf
检验安装成功:
具备ARM交叉编译gcc与ARM程序动态链接库
安装命令:
hollk@ubuntu:~$ sudo apt-get install gcc-arm-linux-gnueabi
hollk@ubuntu:~$ sudo apt-get install gcc-aarch64-linux-gnu
检验安装成功:
具备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
检验安装成功:
工具安装就介绍到这了,如果以后安装新的工具,还会在这篇文章中追加的~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)