PWN环境搭建


为漏洞挖掘做准备

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.设置代理

机场的节点需要自己找 按需设置代理即可

  • 为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作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。

  • 手动安装

    https://apt.metasploit.com/

    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-zshzsh的一个拓展 更加方便 并且有一些好用的插件

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 开冲

环境搭个差不多了就该该开冲了

冲的过程中有新内容再回来补

学习记得保持记录和总结 给自己打气

做题练习站点推荐

0x05 参考链接


Author: Luluting
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Luluting !
 Previous
Next 
冒冒图色脚本记录 冒冒图色脚本记录
过去两年的时间里冒冒的时间占了一大半和朋友们从国际服玩到日服再到东南亚服再到私服 肝起来可以说是一天48小时都完全不够用,可谓是精神鸦片。好在现在弃坑了回归正常人的生活,将自己以前写的冒冒脚本的一些渣代码拿出来分享分享,以供纪念。
2021-11-21
  TOC