工欲善其事,必先利其器。搭建一个良好的 pwn 环境能使 pwn 学习事半功倍。本篇文章介绍下使用 wsl2 搭建 pwn 环境的过程,使用 vmware 搭建 linux pwn 环境过程也是类似的,本文可以供作参考。
wsl 全称 Windows Subsystem for Linux。但是 wsl 与传统虚拟机相比,没有虚拟硬件的过程,而是在 windows 上虚拟一个 linux 内核,模拟 linux 调用。它的底层实现还是 windows ,所以只能用作轻量开发,很多 linux 的功能不能实现。而 wsl2 是使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核,是跑在虚拟机中的完整 linux ,基本实现了 linux 的功能,并且可以兼容 docker 以及 vmware 。相比于 vmware 虚拟机 ,wsl 能够快速启动以及有着与 windows 良好的交互体验,所以萌生了使用 wsl2 搭建 pwn 环境的想法。
本文搭建的是 ubuntu16 ,因我原来 vmware 使用的就是 ub16 ,以及其兼容性较好。不过 ub16 现已经停止维护,所以可以考虑更新的版本。
wsl2-官方手册
windows 终端功能十分丰富,这里就不过多介绍了。我使用它的主要目的是为了美化终端,毕竟好看就是生产力。
效果如下图:
vscode 有 remote wsl 插件,可以很方便在 wsl 上使用。 vscode 我就主要用来在 linux 上写写 python 脚本,写项目的话还是推荐 visual studio 跟 Jetbrains 全家桶这类 IDE。
安装 remote wsl 插件后,在 wsl2 中键入 code .,即可打开 vscode 。
IDA Pro 就不用过多介绍了,二进制玩家人手必备的反编译利器。
原来的白底看久了太刺眼,推荐一个 ida 配色插件。
IDASkins-github
效果如下:
docker 可以很方便的构建容器,可以理解为一个非常轻量级的虚拟机。
我使用的是 docker-desktop ,在 设置->Resources->WSL INTEGRATION 勾选对应的 Ubantu 版本即可在 wsl2 中使用 docker 。
docker-desktop
wsl2 的默认是 64 位环境,并不兼容 32 位,所以要先配置 32 位环境。
python2
python3
以上命令安装 pwntools 同时也配置了 pwntools 所需的 python 环境,安装完成后我们可以使用 asm 测试一下是否成功。
当然常用的功能类似的插件还有gdbpeda-github,两个插件我都有使用过,命令和功能都差不多,现在我更倾向于使用 pwndbg 。需要注意是这两个插件不能同时在 gdb 中兼容,可以通过编辑 .gdbinit 文件来切换插件。
.gdbinit 配置文件如下:
里面提供了下载脚本,具体使用请参考官方手册。
如何切换 glibc 环境,请参考官方手册。
这个工具主要用来分析 seccomp 沙盒题的,能够查询程序禁用哪些系统调用。
seccomp-tools 需要 ruby 环境,一开始用 rvm 装 ruby 老是遇到版本问题,后来直接卸载了 rvm 上ruby官网下载源码自己编译安装,成功解决问题。
ruby 安装
seccomp-tools_github
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12207.html