在准备安装之前.可以换一下源: 参考

1.虚拟环境:Ubuntu 18.04

2.必备一般软件

vim:个人必备,强烈建议学习一点vim的相关知识,可以提高效率,避免安装过多的编辑器或者IDE
git:必备,很多高效的插件都是放在GitHub上的
python:必备,建议python3,毕竟python2已经不支持了
pip:必备,有一些插件需要使用pip进行安装
一款编辑器:这个看个人需求,vscode、sublime text等,个人喜欢就好。如果有条件的话,可以设置一下配置,当作一个简单的开发IDE使用,毕竟Pwn环境中开发的代码不会很多。

以上各软件根据官方文档自行安装即可。

3.Pwn常用软件

pwntools

一个ctf框架和漏洞利用开发库,用python开发,必备神器,作用不多解释。
安装方法:

   $ apt-get install python python-pip python-dev libssl-dev libffi-dev build-essential$ pip install -U setuptools$ pip install --upgrade pip$ pip install --upgrade pwntools

个人使用的是python2版本,需要注意一下。pwntools现在支持python3了,这里给出GitHub地址,有需要的可以参考其readme进行安装python3的pwntools。支持python3的pwntools
安装完成后,打开python测试, 执行from pwn import *不会报错即可。
备注:在mac平台下不要使用pip安装,你会怀疑人生的,使用homebrew安装

gdb

动态调试软件,必备。
安装方法:

apt-get install gdb

peda/pwngdb/gef

这是常见的gdb的三个插件,配合gdb使用可以提升调试效率。

安装pwndbg

 1. git clone https://github.com/pwndbg/pwndbg2. cd pwndbg3. ./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

因为在同一时刻只能使用一种插件,而且在解决不同类型的题目时使用不同的插件,因此需要配置三种插件的快捷切换。

首先,gdb使用哪种插件是在.gdbinit文件(一般在root目录下)中使用source进行控制的,我们可以在使用插件时注释掉其他的source命令,即可单独使用某一插件。但是每次都编辑该文件实在是麻烦,因此可以使用脚本进行选择。巧合之下,之前看到一位师傅写了个自动选择插件的脚本,很是好用。

#!/bin/bashfunction Mode_change {name=$1gdbinitfile=~/.gdbinit    #这个路径按照你的实际情况修改# gdbinitfile=/root/Desktop/modepeda="source ~/peda/peda.py"   #这个路径按照你的实际情况修改gef="source ~/.gdbinit-gef.py"   #这个路径按照你的实际情况修改pwndbg="source /opt/pwndbg/gdbinit.py"   #这个路径按照你的实际情况修改sign=$(cat $gdbinitfile | grep -n "#this place is controled by user's shell")    #这是一个定位flag,此处上面的查找内容要和你自己的保持一致pattern=":#this place is controled by user's shell"number=${sign%$pattern}location=$[number+2]parameter_add=${location}iparameter_del=${location}dmessage="TEST"if [ $name -eq "1" ];thensed -i "$parameter_del" $gdbinitfilesed -i "$parameter_add $peda" $gdbinitfileecho -e "Please enjoy the peda!\n"elif [ $name -eq "2" ];thensed -i "$parameter_del" $gdbinitfilesed -i "$parameter_add $gef" $gdbinitfileecho -e "Please enjoy the gef!\n"elsesed -i "$parameter_del" $gdbinitfilesed -i "$parameter_add $pwndbg" $gdbinitfileecho -e "Please enjoy the pwndbg!\n"fi}echo -e "Please choose one mode of GDB?\n1.peda    2.gef    3.pwndbg"read -p "Input your choice:" numif [ $num -eq "1" ];thenMode_change $numelif [ $num -eq "2" ];thenMode_change $numelif [ $num -eq "3" ];thenMode_change $numelseecho -e "Error!\nPleasse input right number!"figdb $1 $2 $3 $4 $5 $6 $7 $8 $9

现在我们把这个shell脚本放到一个环境变量指向的路径里面,查看一下自己的路径,shell脚本放进去。我放在了/usr/local/sbin目录下,这样就可以执行 gdb.sh,输入对应插件的数字就可以选择使用哪个插件,无需手动更改.gdbinit文件。

实在不会可以参考这位师傅的教程:自动选择gdb插件

32位程序支持

必备,装它。
   apt-get install libc6-dev-i386

qemu
这是arm的pwn环境,前期可以不安装,但是终究是逃不过的,建议一步到位。
安装qemu:

 sudo apt-get install qemusudo apt-get install qemu-system qemu-user-static binfmt-support

安装依赖库:

 sudo apt-get install -y gcc-arm-linux-gnueabisudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential gdb-arm-none-eabi synaptic gcc-aarch64-linux-gnu eclipse-cdt git

LibcSearcher

泄露libc库中函数的偏移的库,建议安装,可以节省时间,提高效率。
安装LibcSearcher:

    sudo pip install capstonegit clone https://github.com.cnpmjs.org/lieanu/LibcSearcher.gitcd LibcSearcherpython setup.py install

ROPgadget和one_gadget

ROPgadget是用来找gadget的,one_gadget用来寻找libc库中的execve(’/bin/sh’, NULL, NULL)可以一个gadget就可以getshell,建议安装。

安装ROPgadget:

   # 先安装Capstone,它是一个轻量级的多平台架构支持的反汇编架构。sudo apt-get install python-capstone# 下载好ROPgadget解压,并进入文件夹中python setup.py install

安装one_gadget:

sudo apt install ruby
gem install one_gadget

IDA

静态调试必备,不多解释。这里建议安装52上的版本:
52上的IDA

CTF-PWN环境搭建相关推荐

  1. pwn环境搭建_pwndbg、pwntools环境搭建(Unix系统)

    目录 [TOC] pwndbg环境搭建 项目地址 https://github.com/pwndbg/pwndbg 搭建过程 1.安装环境基础 git python python-pip 2.安装过程 ...

  2. 二进制安全学习:最新指导Pwn环境搭建教程(安装Peda插件Pwn库 IDApro for Mac15)

    1.首先下载Ubuntu 16.0.4 ,推荐使用网易镜像站. ubuntu16.0.4下载地址 2.使用虚拟机安装Ubuntu,博主在Mac平台上使用的是Parallels Desktop,只需要将 ...

  3. 从0-1的CTF比赛环境搭建过程

    博主 @Vicosna 已经对CTFd v3.3.1官方源码进行了更换国内镜像源.添加CTFd-Whale子模块.配置frp网络.设置静态文件CDN加速等工作,可前往使用作者修改的版本进行安装部署.请 ...

  4. pwn环境搭建_[原创]CTF_Pwn环境搭建

    peda/pwngdb/gef 这是常见的gdb的三个插件,配合gdb使用可以提升调试效率. 安装pwndbg: git clone https://github.com/pwndbg/pwndbg ...

  5. linux内核pwn,[内核pwn] 环境搭建

    照着师傅们的教程弄的,顺便记录一些自己遇到的问题 编译内核 or 下载内核 自己编译内核 安装所需要的依赖 sudo apt-get update sudo apt-get install git f ...

  6. Pwn环境配置(三)——ubuntu环境搭建

    Pwn环境配置(三)--ubuntu环境搭建 目录 Pwn环境配置(三)--ubuntu环境搭建 PWN python2安装 安装setuptools pip安装 2021.10.7补充 安装相关依赖 ...

  7. Pwn环境配置(三)——ubuntu环境搭建(新)

    Pwn环境配置(三)--ubuntu环境搭建(新) 前言 当初不知道怎么搭建好的ubuntu16.04的环境这次搭建有点问题,搭建了大半天pwntools还是不行.准备出一个新搭建教程. 本教程是针对 ...

  8. CTF|pwn栈溢出入门题level3解题思路及个人总结

    CTF|pwn栈溢出入门题level3解题思路及个人总结 解题思路 拿到题目将文件下载下来拖入ubuntu 发现这一次的文件比较特殊:是一个linux环境下的压缩包,自然而然想到的是解压它 通过命令行 ...

  9. 基于kali的域控环境搭建——黑盒测试环境搭建

    前言 本环境为黑盒测试,在不提供虚拟机帐号密码的情况下进行黑盒测试拿到域控里面的flag. 环境搭建 攻击机: kali:192.168.1.10 靶场: CentOS(内):192.168.93.1 ...

最新文章

  1. 64位 java 数据类型_全面解析Java支持的数据类型及Java的常量和变量类型
  2. ARM开发培训的总结报告
  3. spring statemachine的企业可用级开发指南1-说些废话
  4. boost::math::quadrature::gauss_kronrod用法的测试程序
  5. P2048 [NOI2010] 超级钢琴(RMQ 贪心)
  6. eclipse没有日志_强化公共DHT以抵抗eclipse攻击,ipfs官方还说了什么?
  7. java二维数组两个框代表什么_在java语言中,二维数组的两个中括号[][]分别表示()和()。...
  8. javascript将内嵌式广告隐藏
  9. openjdk替换java_ubuntu中将java环境由安装版的openjdk替换为Oracle的jdk
  10. Nginx + FastCGI架构部署指导
  11. 项目总结(四)邮件订阅
  12. 190130每日一句
  13. HDU1846 Brave Game
  14. 一篇关于感情的文章(转) PS:觉得写得还不错,虽然有些还做不到
  15. 计算机的发展导致了计算思维的诞生,尔雅电子计算机的诞生(上)
  16. python凹多边形分割_直线切割凹多边形
  17. mtk 耳机accdet检测驱动分析
  18. 汽车不同的电源接通状态
  19. 最爱经典歌曲TOP500
  20. Linux内核版本代号

热门文章

  1. 计算机软件基础-(软件开发过程管理)
  2. 1月26日学习内容整理:reverse函数补充,modelform对象补充,form表单参数补充
  3. 一位数据科学家的私房工具清单
  4. 等待多线程完成的CountDownLatch
  5. 东南亚“最能喝”的国家:越南取消禁止在线销售烈性酒禁令
  6. linux内核__force,Linux内核学习:I2C_SLAVE_FORCE
  7. python中fit内参数的类型_Python fit
  8. 【学习笔记】硬件设备选型
  9. ABAP在ALV工具栏显示一个计时器
  10. ABAP常用function 收藏