为漏洞挖掘做准备
0x01 配置系统环境
VMware虚拟机
Ubuntu 18.04或20.04
I.更换源+APT更新
这里推荐清华源
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
记得选择自己对应的系统版本!
记得选择自己对应的系统版本!
记得选择自己对应的系统版本!
Ubuntu 的软件源配置文件是 /etc/apt/sources.list
。将系统自带的该文件做个备份,将该文件内容替换,即可使用 TUNA 的软件源镜像。
#先进行备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
#编辑文件
sudo gedit /etc/apt/sources.list
#之后替换内容存即可
最后更新源
sudo apt update && sudo apt upgrade
II.安装GCC
编译器环境
$ sudo apt-get install gcc
III.安装Python+PIP
ubuntu自带python3
安装python2
$ apt-get install python python-pip python-dev libssl-dev libffi-dev build-essential
安装PIP
注意自己安装PIP是python2 还是python3的
因为这涉及到后续pwntools适配python的版本
Pip2就是python2的pwntools
Pip3就是python3的pwntools
$ pip install -U setuptools $ pip install --upgrade pip # python3 pip $ sudo apt install python3-pip
IV.安装Git
sudo apt install git
现在github被墙 使用git下载东西一般需要代理
V.设置代理
机场的节点需要自己找 按需设置代理即可
Ubuntu系统代理
使用Electron-SSR客户端, 该客户端安装后会自动从github下载Python-SSR
但因为Github被墙 需要下载SSR项目在Electron-SSR客户端里手动设置目录
git代理
git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy http://127.0.0.1:1080
wget命令
使用wget命令下载工具时 如果需要翻的话 需要单独配置代理
具体方法百度即可
为Windows子系统 配置Shell代理
虚拟机环境不用管
export ALL_PROXY="http://127.0.0.1:1080"
0x02 配置PWN环境
下面开始安装pwn相关的
I.安装pwntools
直接使用pip指令安装
# 速度可能比较慢 甚至无法下载
pip install --upgrade pwntools
# 推荐使用下面这条命令 通过清华源安装
pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple/
目前pwntools在python3也普及了 根据pip版本会自动下载对应的pwntools
Pip2就是python2的pwntools
Pip3就是python3的pwntools
这里给出python3-pwntools的GitHub地址,有需要的可以参考
安装完成后,打开python测试, 执行from pwn import *
不会报错即可。
(备注:在mac平台下不要使用pip安装,你会怀疑人生的,使用homebrew安装)
II.安装和配置gdb
1.基础本体
调试工具 必备
apt-get install gdb
apt-get -u dist-upgrade
2.安装gdb插件
目前一般有pwndbg/peda/gef三个插件,选一个先上手就好,推荐pwndbg。
- 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
wget -q -O ~/.gdbinit-gef.py https://github.com/hugsy/gef/raw/master/gef.py
echo source ~/.gdbinit-gef.py >> ~/.gdbinit
实际安装的时候wget不太好使 貌似没法走代理
wget -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh
去掉-q和|sh参数 直接下载 手动拷贝到合适位置 用于加载插件
3.设置插件选择脚本(可选)
初学不需要这个 安装好一个插件就可以了 省的麻烦
当你有能力熟练运用多种插件的时候 再考虑这一条
使用GDB的时候需要根据合适的环境选择合适的插件
一次只能使用一个 所以有一个三合一管理脚本会方便许多
参考地址GDB插件控制——切换pwndbg,peda,gef - 简书 (jianshu.com)
III.基础环境安装
1.安装32位程序支持
sudo apt-get install libc6-dev-i386
2.安装qemu
arm的pwn环境
sudo apt-get install qemu
sudo apt-get install qemu-system qemu-user-static binfmt-support
安装依赖库
sudo apt-get install -y gcc-arm-linux-gnueabi
sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential synaptic gcc-aarch64-linux-gnu eclipse-cdt
IV.特定Pwn工具安装
按需安装
1.安装LibcSercher
泄露libc库中函数的偏移的库
sudo pip install capstone
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop
实际安装的时候git突然也没法走代理了
暂时就手动下载解压安装了
2.安装ROPgadget以及one_gadget
构造ROP攻击的gadget链用
- 安装ROPgadget
# 先安装Capstone,它是一个轻量级的多平台架构支持的反汇编架构。
sudo apt-get install python-capstone
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
sudo python3 setup.py install
注意这里项目是python3的
安装之后报错
pkg_resources.ResolutionError: Script 'scripts/ROPgadget' not found in metadata at '/usr/local/lib/python3.6/dist-packages/ROPGadget-6.6.dist-info'
把ROP包内的script文件夹拷到缺失位置即可
- 安装one_gadget
sudo apt install ruby``gem install one_gadget
3.Metasploit
Metasploit
就是一个漏洞框架。全称叫做The Metasploit Framework
,简称叫做MSF
。
Metasploit
作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。
手动安装
sudo dpkg -i + .deb文件
(Ubuntu为例)脚本安装
sudo wget https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb #或者 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
0X03 其他环境
一些可选的工具,非必要,按照需求安装。
I.Zsh安装及配置
1. 安装zsh本体
直接安装
sudo apt-get install zsh
安装完成后可以通过cat /etc/shells
查看shell列表
2. 安装oh-my-zsh
oh-my-zsh
是zsh
的一个拓展 更加方便 并且有一些好用的插件
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
然后给install.sh
添加权限:
chmod +x install.sh
然后执行install.sh
:./install.sh
安装完可以先去配置一下主题
vim ~/.zshrc
修改主题 可以改为random
保持新鲜感
ZSH_THEME="random"
3. 安装插件
这里只写highlighting, autosuggestions 更多的可以自己搜一搜
安装
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
安装
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
安装完毕后需要去配置文件增加插件
vim ~/.zshrc
找到plugins一行准备修改
plugins=(git)
修改为
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
之后重新加载配置文件即可
source ~/.zshrc
4. 切换用户默认shell为zsh
修改默认shell 注意是重启之后生效
#先查看zsh目录
cat /etc/shells
#方法一: 使用指令更换默认shell '-s'后跟的是zsh目录 最后加上你的用户名
sudo chsh -s /usr/bin/zsh 用户名
#方法二: 直接修改/etc/passwd里的配置 找到自己用户配置 在默认shell处换成zsh目录
vim /etc/passwd
II.Tmux
多终端窗口管理 需要一定学习成本
用好了很酷XD
# Ubuntu 或 Debian
sudo apt-get install tmux
# CentOS 或 Fedora
sudo yum install tmux
# Mac
brew install tmux
快捷键
Ctrl+b s:列出所有会话。
#窗口操作
Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格与上一个窗格交换位置。
Ctrl+b }:当前窗格与下一个窗格交换位置。
Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
0x04 开冲
环境搭个差不多了就该该开冲了
冲的过程中有新内容再回来补
学习记得保持记录和总结 给自己打气
做题练习站点推荐
-
从新手开始练习 题目从易到难 但是前期题型会比较重复
栈溢出原理 - CTF Wiki (ctf-wiki.org)
CTF Wiki倾向于把知识点边学边练 很适合学习
-
循序渐进的题目 不重复