0、前言
今年4月份参加某某杯线下赛的时候,尝试去做pwn的基础题目结果环境报错落败而逃😂,在M1/M2芯片的MacBook上因为arm架构的原因,搭建pwn环境并不是那么顺利,于是回来以后就尝试搞了下相关环境。
结合在B站看到的UP主:Retr0的寄存器的视频「零基础向」有趣的Pwn博主的Mac x86虚拟机Pwn环境搭建教程,成功使用UTM虚拟机搭建了x86架构下的Pwn环境;然后再结合UP主BOYcc1的视频pwn环境安装成功安装了相关工具。
在搭建、安装的过程中,顺便截图记录了一下,4月写的,今天整理文件的时候翻到了,顺便传上来,希望能对有需要的师傅提供些帮助。
1、虚拟机选择:UTM
UTM
https://github.com/utmapp/UTM
2、镜像选择
阿里云镜像站下载utuntu 20.04.5
(这里用的是桌面版的,然后删除了桌面环境。也可以尝试直接取下载服务器版的,能更方便些👀)
About us
ubuntu-releases安装包下载_开源镜像站-阿里云
3、导入UTM
选择模拟CPU
打开刚创建的虚拟机 等待加载至桌面后选择install Ubuntu
安装完成后点击重启
按提示删除刚才的iso文件后 输入ENTER键 等待进度条读取加载完成后看到图形界面然后关机
关机完成后 清除iso路径后再打开虚拟机 等待
更新的都不更新 一律跳过/下一步
移除桌面环境
打开终端
安装git
1 | sudo apt install git |
下载Retr0做好的脚本
脚本链接https://github.com/DDizzzy79/Reg-Retr0.git
1 | git clone https://github.com/DDizzzy79/Reg-Retr0.git |
1 | #输入用户名密码后 进入之前的目录 |
安装ssh 方便连接
1 | sudo apt install openssh-server |
4、工具安装
ubuntu20自带python版本为3.8.10
pip
1 | sudo apt-get install python3-pip |
pwntools
1 | pip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple |
安装好后终端内输入python3 然后输入
1 | from pwn import * |
如果没有报错就证明安装成功了
并且会得到俩个工具 checksec 和 ROPgedget
添加环境变量后即可运行checksec
1 | #安装pwntools后checksec在~/.local/bin下 |
gdb
1 | mkdir tools |
下载peda
1 | git clone https://github.com/longld/peda.git |
下载Pwngdb
1 | git clone https://github.com/scwuaptx/Pwngdb.git |
下载pwndbg
1 | git clone https://github.com/pwndbg/pwndbg |
安装pwndbg
1 | vim pwndbg/setup.sh |
最后报错 pip重新安装指定的包和版本即可
1 | pip install -i https://pypi.tuna.tsinghua.edu.cn/simple launchpadlib |
配置Pwngdb
1 | cd .. |
1 | #source ~/tools/peda/peda.py |
seccomp-tools(查沙盒)
1 | sudo apt install gcc ruby-dev |
ropper
1 | pip install ropper |
qemu(系统内核题)
1 | sudo apt-get install qemu-user qemu-system |
glibc-all-in-one
1 | git clone https://github.com/matrix1001/glibc-all-in-one.git |
1 | #更新最新版本的glibc |
patchelf(修改可执行程序的libc版本)
1 | git clone https://github.com/NixOS/patchelf.git |
zstd
预防报错(extract脚本在解压的时候用到了zstd解压命令)提前安装
1 | sudo apt-get install zstd |
LibcSearcher用来泄露libc库中函数的偏移的库,
one_gadget用来寻找libc库中的execve(‘/bin/sh’, NULL, NULL)可以一个gadget就可以getshell