pwn手环境搭建
作为一个pwn手,一个自己的环境是少不了的,这个博客记录一下环境的搭建过程给需要的同学
前置准备
pwn的环境可以用 vmware 创建一个虚拟机去承载,也可以用 WSL2 去承载,WSL相对方便一些但是有时候可能会出一些问题,vmware 虚拟机全面一些但是相比 wsl 总显得有些笨重(我也不知道为啥会这么觉得)
WSL安装并升级到WSL2
详情请参照此处 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
PS: 先开启wsl功能即可,先不安装具体的linux分发
WSL管理工具LxRunOffline下载以及手动安装WSL
首先从这儿下载我们需要的LxRunOffline工具 https://github.com/DDoSolitary/LxRunOffline/releases
有了这个工具我们就可以在任何我们想的地方安装WSL并且可以很方便的去管理他们
其次,我们需要手动下载需要安装的Linux分发的包 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual
下载下来以后就可以参照这篇文章 https://sspai.com/post/61634 进行 linux 子系统的安装啦
PS:文章中的方法没验证过,当时我用的那个文章找不到了,随便找了一个,有问题记得反馈
其他
linux安装好后便可以使用了,可以在 cmd 或者 Windows Terminal 中输入 WSL 启动(只安装了一个 wsl linux 的情况下,其他的自行百度解决)
也可以在 vs code 中使用,vs code 中有对应的 wsl 插件,开启 wsl 功能后进入 vs code 会自动提示安装,安装好后便可以在 vs code 中连接 wsl linux 进行使用,体验行对可以好一些
VMware workstation pro 发布16版本了
运行Windows DirectX11游戏和应用程序
使用vctl进行运行、生成、推送或拉取OCI容器
支持在桌面上部署K8S环境
新增无障碍模式
fusion 12
新增VM规格,32vCPU、128G内存,8GVRAM
支持vSphere7本地和远程连接
优化VM操作性和文件传输能力
在隔离的沙盒中运行vGPU渲染引擎
支持暗黑模式
支持Windows Hpyer-V
支持最新版Windows 10和Linux最新版本(发行版本)
集成Linux Vulkan 渲染引擎
官网下载地址
https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
虚拟机
虚拟机推荐使用ubuntu16.04或者ubuntu14,比赛时用的基本也就是这两个版本的系统,用起来相对方便一些
虚拟机安装
走默认 VMware 的默认安装,设置好账户名密码主机名后坐等完成即可
pwn环境搭建
好了,到了这儿就默认大家已经有一个可以使用的 linux 系统的,接下来我们在这个系统上安装我们需要的各种东西
- pwntools
pwntools是一个CTF框架和漏洞利用开发库,用Python开发,旨在让使用者简单快速的编写exploit。python环境推荐使用python2, 虽然这玩儿慢慢被淘汰了,但是好多 exp 是用他写的,在你复现的时候可以舒服一些1
2
3
4apt-get update
apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
pip install --upgrade pip
pip install --upgrade pwntools1
2
3
4apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools - LibcSearcher
这是针对CTF比赛所做的小工具,在泄露了Libc中的某一个函数地址后,常常为不知道对方所使用的操作系统及libc的版本而苦恼,这个工具就是解决这个问题的1
2
3git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop - one_gadget
one-gadget 是glibc里调用execve(‘/bin/sh’, NULL, NULL)的一段非常有用的gadget。这个工具可以帮我们找到它。1
2apt install ruby
gem install one_gadget - GDB 实用插件
GDB 在我们的学习过程中使用的相当频繁,好多有问题的地方,动态跑一跑就能知道问题在哪儿,针对 GDB 有几款好用的插件,通过更改 ~/.gdbinit 中的信息我们可以来切换他们
安装:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21peda
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
peda-heap (搭配peda一起使用)
git clone git://github.com/Mipu94/peda-heap.git ~/peda-heap
echo "source ~/peda-heap/peda.py" >> ~/.gdbinit
gef
sh -c "$(wget http://gef.blah.cat/sh -O -)"
pwndbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
pwngdb
cd ~/
git clone https://github.com/scwuaptx/Pwngdb.git
cp ~/Pwngdb/.gdbinit ~/
PS:有一个就够,一般用 peda 就行 - IDA Pro
交互式反汇编器专业版。是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!
推荐在 windows 下安装、使用,方便一些
下载地址:- 链接: https://pan.baidu.com/s/1bdBhVTBYMk0lNIOtCxIjPw 提取码: w28g
- gfree-libc(可以没有)
gfree-libc可以使你获取任意libc版本源码级(.c级别)的调试能力,你只需要gclibc指令。它希望你的gdb使用的是pwndbg插件,因为其他插件可能会出现错误。
你只需要以下几条命令即可获取从2.19到2.29libc版本的源码级调试能力详情参考 这里1
2
3
4git clone git@github.com:dsyzy/gfree-libc.git
cd gfree-libc
sudo sh ./install.sh
build #PS:此命令执行后会下载2.19-2.29所有的glibc源码进行本地编译,时间较久,执行前做好心理准备 - 32位系统依赖
sudo apt install libc6-dev-i386
sudo apt-get install lib32z1
逆向常用工具
- 吾爱破解虚拟机 2.0
集合了逆向破解中经常用到的工具,并且已安装好吾爱破解论坛最新工具包!
PS:有这一个基本就够了,啥都有- 虚拟机文件下载:
360网盘(推荐):https://yunpan.360.cn/surl_yrj3q8K4YCU 密码:0c3a
腾讯微云:https://share.weiyun.com/d606513b540c6cf69a5ac5210af58079 密码:6g35hh
百度网盘:https://pan.baidu.com/s/1N7aSUndy7NqZ0XNZEoW6WA密码:nhvw - 哈希值校验工具下载:
百度网盘:http://pan.baidu.com/s/1slRv0JV 密码:yzzg
- 虚拟机文件下载: