# 环境搭建
# 虚拟机安装
安装 VMware Workstation PRO
下载 Ubuntu 镜像
https://ubuntu.com/download/desktop
多个版本,选择 Ubuntu 20.04.3 LTS 即可
打开 VMware Workstation PRO,选择创建新的虚拟机。
选择下载的 Ubuntu 镜像
输入用户名和密码(自定)
设置虚拟机安装位置(一般在 D 盘新建一个文件夹专门放虚拟机)
后面全部性能设置默认就好
安装完成后,输入之前设置的密码登录,弹窗全部跳过即可。
# 虚拟机配置
# 1. 换源
因为 Ubuntu 初始源在美国,从国内访问比较慢,所以这里换成清华源(阿里源)
首先备份一下原文件:
cd /etc/apt
sudo cp sources.list sources.list.bak编辑 sources.list
sudo gedit sources.list
将其中的内容替换为如下内容:(20.04LTS 清华源)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
(20.04LTS 阿里源)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse#deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse* 更新一下源和已安装的软件包 ```bash sudo apt update sudo apt upgrade
# 2. 必备软件安装
# Pip3
Python 包管理工具,很重要。
Ubuntu20 默认安装 python3,故安装 pip3。
安装后 pip/pip3 都可以使用。
sudo apt-get install python3-pip |
# Git
git 的功能是拷贝一个 git 仓库到本地,通常用来下载 Github 上的工具。
sudo apt-get install git |
Github 有时候连接不上,这里改一下 host。
在网站 www.ipaddress.com 查找下面两个域名对应的 ip
h
github.global.ssl.fastly.net github.com然后修改 host 文件
sudo gedit /etc/hosts
保存后重启虚拟机即可。
# Vim
文本编辑器,功能很强大,具体使用需要自己下去学习。
sudo apt-get install vim |
# Pwntools
pwntools 是一个 CTF 框架和漏洞利用开发库,涵盖了 pwn 题利用脚本所需要的各种工具。包括方便的 IO 交互函数,ROP、格式化字符串等利用的自动化工具,shellcode 生成器等等,是目前最好用也是仅有的大型 pwn 利用框架。能节省大量编写脚本的时间。
极其重要!!!
python3-dev git libssl-dev libffi-dev build-essential | |
sudo python3 -m pip install --upgrade pip | |
sudo python3 -m pip install --upgrade pwntools |
# 32 位依赖库
sudo apt-get install lib32ncurses5-dev | |
sudo apt-get install lib32z1 |
# Pwndbg/Peda/Gef
GDB 是一款功能强大的程序调试工具,是动态调试必不可少的工具,可以很方便的查看堆中链表的状态,各个地址的内容。GDB 拥有多个插件(peda、pwndbg、gef 等)这些插件提供了一些额外的命令,在可视化和功能上都进行了扩展。
推荐安装一个插件即可,多个插件的切换与系统环境变量相关,自行百度。
- Pwndbg
git clone https://github.com/pwndbg/pwndbg | |
cd pwndbg | |
./setup.sh |
- Peda
git clone https://github.com/longld/peda.git~/peda | |
echo "source ~/peda/peda.py" >> ~/.gdbinit |
- Gef
wget -q -O-https://github.com/hugsy/gef/raw/master/scripts/gef.sh| sh |
Pwndbg/Peda/Gef 插件可以自由切换,
sudo gedit ~/.gdbinit
打开 gdb 环境变量路径文件
以使用 pwndbg 为例:
source /home/coldwinds/pwndbg/gdbinit.py
#source ~/peda/peda.py
需要使用哪一个插件,在其他插件前面加上
#
注释即可
# 3. 实用软件安装
# ROP-garget
用来查找程序中一些指令的地址,64 位程序中运用较多。
sudo pip3 install capstone | |
git clone https://github.com/JonathanSalwan/ROPgadget.git | |
cd ROPgadget | |
sudo python3 setup.py install |
# One_gadget
可以找到 libc 中的 execve ('/bin/sh', NULL, NULL),在构造其他条件后,利用一个 Gadget 就可以 GetShell。
sudo apt install ruby | |
sudo apt-get install gem | |
sudo gem install one_gadget |
# LibcSearcher
在开启地址随机化后,通过泄露某一个函数的地址偏移,利用 LibcSearcher 可以搜索到该程序使用的 libc 版本,从而计算出其他函数的地址。
git clone https://github.com/lieanu/LibcSearcher.git | |
cd LibcSearcher | |
sudo python3 setup.py develop |
# seccomp-tools
用来读取 seccomp 沙箱规则。
sudo apt install gcc ruby-dev | |
sudo gem install seccomp-tools |