赞
踩
本文将讲解pwn的环境搭建:系统和工具的搭建
pwn初期多接触的是由linux系统中GLIBC这一C运行库链接而成的C语言程序,且前期大多数glibc版本为2.23
所以前期至少需要搭建一个ubuntu16.04系统
安装两个工具
前者是用于搭建系统
(网络联盟招新群:344085145 中有资源可供下载)
VMworkstation安装教程:https://blog.csdn.net/weixin_63104855/article/details/124550083
许可证激活:http://www.ahcar.com/shenghuo/20220331/49546.html
,后者是用于逆向分析pwn题中碰见的C语言程序
ubuntu16.04镜像准备: http://iso.mirrors.ustc.edu.cn/ubuntu-releases/16.04/ubuntu-16.04.7-desktop-amd64.iso
镜像下载的位置需要确定,后续会用
VM安装ubuntu镜像:
此处的ISO文件,就是前面下载的镜像文件
此时即进入安装中,等待即可
安装完成后,自动重启
** 用于物理机和虚拟机的文件传输等等**
选择将压缩包解压到桌面
双击进入文件夹
启动终端
鼠标右键-打开终端 或者 Ctrl+Alt+T
sudo su
:提权,变为root用户
输入开始创建系统时设置的密码,linux密码是无回显的,输完按回车即可
./vmware-install.pl
执行文件
之后第一个选择,键入 Y
此后全部默认,按回车即可
安装完成
再次重启下虚拟机
接下来就可以开始安装pwn工具了
(ps: 如果是ubuntu18及以上版本采用pyhton3的安装方式,如未注明python2/3,则采取默认的方法)
1.apt更新
sudo apt-get update
2. python2.7
apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
3. pip:
用于快捷的安装其他软件
#不用apt进行更新,python2会崩
sudo apt install wget
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 ./get-pip.py
#python3安装,此处不采用
sudo apt install python-pip
4. git, gdb, gdb-mutiarch
git用于克隆代码托管他人项目
gdb用于调试程序
gdb-mutiarch在之后用于arm架构的调试
sudo apt-get install git gdb
sudo apt-get install gdb-multiarch
sudo apt-get install "binfmt*"
5. pwndbg(gdb的插件)
因为gdb对于pwn题的调试不便,所以需要通过功能更适合的插件pwndbg进行
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
gedit ./setup.sh
#注释掉这一行:${PYTHON} -m pip install ${INSTALLFLAGS} --upgrade pip
./setup.sh
Ctrl+F:搜索
然后添个井号键
6. pwntools
pyhton的一个库,集合了一整套pwn工具集,涵盖了pwn题利用脚本所需要的各种工具。包括方便的IO交互函数,ROP、格式化字符串等利用的自动化工具,shellcode生成器等等。
pwntools是目前最好用也是仅有的大型pwn利用框架。
#python2.7
sudo pip install setuptools==44.0
sudo pip install MarkupSafe==0.9.2
sudo pip install cryptography==2.5
sudo pip install configparser==3.5
sudo pip install zipp==0.5
sudo pip install importlib-metadata==0.12
sudo pip install importlib-resources==1.0
sudo pip install pwntools==4
#python3安装,此处不采用
pip install pwntools
7. ROPgadget(pwntools的一个组件)
在栈溢出的基础上,可以利用程序中已有的小片段(gadgets)改变某些寄存器或者变量的值,便于控制程序的执行流
而ROPgadget可以实现方便地查找好用的gadgets
#校验是否安装成功
ROPgadget -v
8. LibcSearcher
用于解决pwn题中不明libc版本的问题,可以根据泄露的某函数地址,推测服务端使用的libc版本
git clone https://github.com/wjhwjhn/LibcSearcher.git
cd LibcSearcher
python2 setup.py develop #python2
#python3安装,此处不采用
pip3 install LibcSearcher
9. one_gadget
unbuntu16.04下安装高版本rubyhttps://blog.csdn.net/henryhu712/article/details/89224467
sudo apt install ruby
sudo gem install one_gadget
在高版本ubuntu中可以直接安装
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。