CTF-pwn入门–基础环境安装

2023-11-09

pwn的入门–环境安装:

虚拟机安装–Linux–ubuntu:

PWN的题大多数是在Linux上打,先安装一个Ubuntu是成为pwn手的开始。
VMware Workstation Pro:VMware Workstation Pro官网
Ubuntu镜像网站:Ubuntu镜像网站
Ubuntu 官网:Ubuntu官网

pwn环境搭建:

#换源
先备份一下自带的源,以防以后再用

cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list

替换成(如果版本不是20.04可以去阿里、清华、中科大的官网找适合自己版本的源)

#  阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

 # 清华源
 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
 deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
 deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
 deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
 deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
 deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

#  中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

然后更新源信息

sudo apt update
sudo apt upgrade
安装软件 安装指令
vim $ sudo apt install vim
git $ sudo apt install git
gcc $ sudo apt install gcc
python3-pip $ sudo apt install python3-pip
python-is-python3 $ sudo apt install python-is-python3
gdb-multiarch $ sudo apt-get install gdb-multiarch

vim

vim
vim
VIM 是 Linux 系统上一款文本编辑器,它是操作 Linux 的一款利器。
当前有很多优秀的 IDE 都支持安装 VIM 插件,原因就是使用它便捷,高效,很爽!
基础使用方法:
VIM 常用的有四个模式,:
正常模式 (Normal-mode)
–在任意模式下按键进入
–正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作。
插入模式 (Insert-mode)
–按 i 键会进行插入模式。
命令模式 (Command-mode)
–在正常模式中,按下:(冒号)键或者/ (斜杠),会进入命令模式。
可视模式 (Visual-mode)
–在正常模式按下v, V, +v,可以进入可视模式。
检验安装成功:
vim

git

Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
后边要用到很多github上的东西,git是必装软件。
检验安装成功:
在这里插入图片描述

gcc

gcc是一款非常优秀的编译器,像vc6.0++、vs code等编译器都有内置,将源文件编译成为计算机可执行的二进制文件。

gcc常用编译命令:
NX:-z execstack / -z noexecstack (关闭 / 开启)    不让执行栈上的数据,于是JMP ESP就不能用了
Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启)  栈里插入cookie信息
PIE:-no-pie / -pie (关闭 / 开启)   地址随机化,另外打开后会有get_pc_thunk
RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启)  对GOT表具有写权限

检验安装成功:
在这里插入图片描述

pip

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能
由于python2不在提供维护,本文建议装python3
检验安装成功:
在这里插入图片描述

python-is-python3

输入python是少输入一个3 ,还是很舒服的
检验安装成功:
在这里插入图片描述

gdb-multiarch

gdb嘛,几乎完美的动调工具
检验安装成功:
在这里插入图片描述

pwntools:

先创建一个 tools的文件夹,同一工具的存放目录,方便后期安装其他工具。

$ cd ~
$ mkdir tools
git 下来 pwntools 
$ cd tools
$ git clone https://github.com/Gallopsled/pwntools
$ cd pwntools
$ python setup.py install

检验安装成功:
在这里插入图片描述

github官方网站:https://github.com/Gallopsled/pwntools
pwntools写脚本时的基本使用方法:

remote("一个域名或者ip地址", 端口) 会连接到我们指定的地址及端口 
send(payload) 发送payload
sendline(payload) 发送payload,并进行换行(末尾\n)
sendafter(some_string, payload) 接收到 some_string 后, 发送你的 payload
recvn(N) 接受 N(数字) 字符
recvline() 接收一行输出
recvlines(N) 接收 N(数字) 行输出
recvuntil(some_string) 接收到 some_string 为止
 p64()  p32()
p32()可以让我们转换整数到小端序格式 

这里仅写入门用法,详细可以去看 看雪论坛。看雪论坛

pwngdb

pwngdb 可以优化gdb的使用体验,是个很不错的插件。

$ git clone https://github.com/pwndbg/pwndbg
$ cd pwndbg
$ ./setup.sh

检验安装成功:
在这里插入图片描述

ROPgadget

$ sudo apt-get install python-capstone
$ git clone https://github.com/JonathanSalwan/ROPgadget.git 
$ cd ROPgadget
$ sudo python setup.py install

检验安装成功:
在这里插入图片描述

ROPgadged: https://github.com/JonathanSalwan/ROPgadget

one_gadget

当有了ROP_gadget之后就会发现one_gadget也是必须的

$ sudo apt -y install ruby
$ sudo gem install one_gadget

检验安装成功:
在这里插入图片描述

安装pwntools出现错误

pwntools出现错误解决方案
https://www.cnblogs.com/pcat/p/5451780.html
这篇文章适合于刚入门pwn的pwn手,这些工具是前期必须的,进阶工具会在后续的文章中介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTF-pwn入门–基础环境安装 的相关文章

  • 为什么 .setGeometry() 不改变 QWidget 实例的大小?

    我想使用 QWidget 更改 QPushButton 的大小 setGeometry https doc qt io qtforpython 5 PySide2 QtWidgets QWidget html PySide2 QtWidge
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 将 Pandas 列中的列表拆分为单独的列

    这是我在 pandas 数据框中的 特征 列 Feature Cricket 82379 Kabaddi 255 Reality 4751 Cricket 15640 Wildlife 730 LiveTV 13 Football 4129
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 如何在与应用程序初始化文件不同的文件中迭代 api 路由

    我有一个 apiroutes py 文件 其中定义了许多路由 例如 api route api read methods GET api route api write methods POST 其中 api 是导入 from import
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • 张量流:注册 numpy bfloat16 扩展

    正如我所见 tensorflow 中有 bfloat16 的 numpy 扩展 https github com tensorflow tensorflow blob 24ffe9f729160a095a5cab8f592392018280
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • 使用 Python 生成类似于 Messenger 或 kik 代码的圆形二维码

    我可以使用 Python 生成圆形 QR 码 就像 Facebook Messenger 或 kik 使用的那样吗 我访问了很多网站 但找不到这种类型的二维码 默认情况下 Python 生成方形 QR 码 但在我的项目中我想要圆形 QR 码

随机推荐

  • 关于编译性语言、解释性语言和脚本语言的区别

    计算机是不能理解高级语言 当然也就不能直接执行高级语言了 计算机只能直接理解机器语言 所以任何语言 都必须将其翻译成机器语言 计算机才能运行高级语言编写的程序 一 翻译和解释的不同 翻译的方式有两种 一个是编译 一个是解释 两种方式只是翻译
  • CUDA编程性能分析工具 nvprof/ncu --metrics参数含义

    摘要 在网上没有比较全的中文 ncu metrics 参数含义 于是自己整理了一下官方和外国友人的笔记 nvprof 和 ncu nvprof 是过去比较常用的命令行工具 但在终端直接输入nvprof o会得到以下 Warning Warn
  • 宝塔 ssl https无法访问使用

    https 使用的是443端口 请确保 云上的与宝塔上的443端口开放即可 转载于 https www cnblogs com wdw31210 p 11058824 html
  • 用手绘画图方式解释numpy.mgrid函数的二维三维数组

    这个np mgrid 起始值 结束值 步长 起始值 结束值 步长 表示的一个 起始值 结束值 的数组 其中间隔为步长 而x ravel 将x变为一维数组 把 前变量拉直 这样讲很难理解 直接看例子 来吧 1 首先看这个二维数组例子 impo
  • Linux、网络编程

    1 linux系统内核态和用户态是什么 有什么区别 当一个进程在执行用户自己的代码时处于用户运行态 用户态 当一个进程因为系统调用陷入内核代码中执行时处于内核运行态 内核态 用户运行一个程序 该程序创建的进程开始时运行自己的代码 处于用户态
  • 3DMax 不断崩溃,常见的5种处理方案!

    Autodesk 3DS Max 是一种流行的 3D 建模和动画软件 被图形设计和游戏行业的许多专业人士使用 但是 与任何其他软件一样 用户会遇到崩溃问题 本文列出了 5种常见的解决方案 用于排除故障并解决 3DS Max 崩溃问题 Aut
  • Mysql 的 聚簇索引和二级索引

    原文地址 聚簇索引和二级索引 增加部分补充和理解 目录 1 索引的简述 1 聚簇索引 2 非聚簇索引 二级索引 辅助索引 2 示例 聚簇索引 主键索引 二级索引 辅助索引 3 结论 结论一 结论二 写在前面 针对原博主的讲述 网友提出相应补
  • 【算法】骑士周游 ---递归的说明

    因为说明中没有对应具体代码 请先看最下方代码在看说明 普通递归 创建一个二维空表做棋盘 用step记录走过的步数 用来增加条件判断游戏是否成功 棋盘上记录步数 使用visted记录是否该点是否走过 一张一维标记对应二位棋盘是否已走过 递归的
  • ElasticSearch RestHighLevelClient 教程(三) 删除&&查

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net paditang article details 79172837 前言 删除文档作为
  • C语言在字符串中删除特定字符

    当出现特定字符的位置用一个新定义的字符串进行类似跳过特定字符的操作 输入 s 输出 adlfjaljgowea include include void delSpace char s char c int main char str 80
  • xss跨站之代码及http only绕过

    什么是http only 在cookie中设置了http only属性 那么通过js代码无法获取cookie 并不能防止xss漏洞 在上一节的靶场网站源代码里面 写上这一串代码就是启动http only 再加上带去cookie的代码 然后我
  • Hibernate工作原理(图解)

    在 Hibernate操作数据库一节的学习中 我们主要涉及到了 Configuration SessionFactory Session Transaction 和 Query 等多个接口 这些接口在 Hibernate 运行时都扮演着十分
  • 货币银行学入门知识

    用IT技术玩金融系列文章 将介绍如何使用IT技术 处理金融大数据 在互联网混迹多年 已经熟练掌握一些IT技术 单纯地在互联网做开发 总觉得使劲的方式不对 要想靠技术养活自己 就要把技术变现 通过 跨界 可以寻找新的机会 创造技术的壁垒 金融
  • ncl泰勒图(均方根误差、标准差、相关系数)

    最近学习了一下泰勒图的做法 对2001年泰勒的文章进行了简单学习 说一点自己的理解 泰勒图一般是用来评估多个模式对观测数据的模拟能力 包括标准差 中心型均方根误差 相关系数这三部分 这三部分可以构建一个三角关系 相关系数是用来量化模式之间的
  • SQLyog安装教程详解

    安装SQLyog的详细步骤 1 复制连接 https pan baidu com s 19DHHrCqvg 0 StazHqGhcg 提取码 1111 2 等待下载 3 解压到新建文件夹 4 点击解压后的X64 右键 以管理员的身份运行 5
  • WEB前端网页设计-Bootstrap5 提示框 & JavaScript 对象

    目录 Bootstrap5 提示框 如何创建提示框 指定提示框的位置 JavaScript 对象 真实生活中的对象 属性和方法 JavaScript 对象 对象定义 实例 实例 对象属性 访问对象属性 实例 1 实例 2 对象方法 实例 实
  • PostgreSQL一些常用命令

    最近一直在学习Postgresql 下面是自己整理的Postgresql的常用命令 连接数据库 默认的用户和数据库是postgres psql U user d dbname 切换数据库 相当于mysql的use dbname c dbna
  • shuffleNet V2

    论文出发点 旨在设计一个轻量级但是保证精度 速度的深度网络 分析当前 1 直接用FLOP来衡量算力 不够准确 因为不同的网路 即使参数量相同 模型大小相同 但是模型速度还是存在差异 改为直接用速度 speed 来衡量 2 直接影响速度的因素
  • 最小二乘法的实现与线性回归的应用

    1 简介 简单线性回归中 您有一个因变量y和一个自变量X 该模型可以表示为 y m x b y mx b y
  • CTF-pwn入门–基础环境安装

    pwn的入门 环境安装 虚拟机安装 Linux ubuntu PWN的题大多数是在Linux上打 先安装一个Ubuntu是成为pwn手的开始 VMware Workstation Pro VMware Workstation Pro官网 U