【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别
原文地址
渗透中 PoC、Exp、Payload 与 Shellcode 的区别
概念
PoC,全称“Proof of Concept”,中文“概念验证”,常指一段漏洞证明的代码。
Exp,全称“Exploit”,中文“利用”,指利用系统漏洞进行攻击的动作。
Payload,中文“有效载荷”,指成功 exploit 之后,真正在目标系统执行的代码或指令。
Shellcode,简单翻译“shell 代码”,是 Payload 的一种,由于其建立正向/反向 shell 而得名。
解释
PoC 是用来证明漏洞存在的,Exp 是用来利用漏洞的,两者通常不是一类,或者说,PoC 通常是无害的,Exp 通常是有害的,有了 PoC,才有 Exp。
Payload 有很多种,它可以是 Shellcode,也可以直接是一段系统命令。同一个 Payload 可以用于多个漏洞,但每个漏洞都有其自己的 Exp,也就是说不存在通用的 Exp。
Shellcode 也有很多种,包括正向的,反向的,甚至 meterpreter。
Shellcode 与 Shellshcok 不是一个,Shellshock 特指 14 年发现的 Shellshock 漏洞。
在 Metasploit Framework 6 大模块中有一个 Payload 模块,在该模块下有 Single、Stager、Stages 这三种类型,Single 是一个 all-in-one 的 Payload,不依赖其他的文件,所以它的体积会比较大,Stager 主要用于当目标计算机的内存有限时,可以先传输一个较小的 Stager 用于建立连接,Stages 指利用 Stager 建立的连接下载后续的 Payload。Stager 和 Stages 都有多种类型,适用于不同场景。
举例
想象自己是一个特工,目标是监控一个重要的人,一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个 PoC,于是你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的【窃#听#器】 敏感词 ,这一天你所做的就是一个 Exp,你在他家所做的就是不同的 Payload,就把【窃#听#器】当作 Shellcode 吧!
【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别的更多相关文章
- 转载:java中抽象类和接口的作用与区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和inte ...
- 个人收集(转载)CSS中 display:none和visibility:hidden的区别
visibility和display两个属性都有隐藏元素的功能,display:none和visibility:hidden的区别,简单的总结一句话就是:visibility:hidden隐藏,但在浏 ...
- js中call、apply和bind的区别
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢.在说区别之前还是先总结一下三者的相似之处:1.都是用来改变函数的this对象的指向的.2.第一个参数都是this要指向的对 ...
- CVE-2021-21972 vSphere Client RCE复现,附POC & EXP
漏洞简介 vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi.vCenter Server 等一系列的软件.其中 vCenter Server 为 ESXi 的控制中心,可从单一控 ...
- 内网渗透中的反弹Shell与端口转发
from:https://www.91ri.org/9367.html Web渗透中的反弹Shell与端口转发 php需未禁用exec函数一:生成php反弹脚本msf > msfpayload ...
- 简单的Poc Exp编写(上)
简单的POC EXP 编写 (上) 作者BY Greekn 今天主要讲的 是关于web 方面的 poc 编写 关于web 安全 个人理解的话 一个就是攻击 另一个就是漏洞挖掘了 防御的话 看 ...
- PHP渗透中的奇淫技巧--检查相等时的漏洞
PHP是现在网站中最为常用的后端语言之一,是一种类型系统 动态.弱类型的面向对象式编程语言.可以嵌入HTML文本中,是目前最流行的web后端语言之一,并且可以和Web Server 如apache和n ...
- PHP网站渗透中的奇技淫巧:检查相等时的漏洞
PHP是现在网站中最为常用的后端语言之一,是一种类型系统 动态.弱类型的面向对象式编程语言.可以嵌入HTML文本中,是目前最流行的web后端语言之一,并且可以和Web Server 如apache和n ...
- 转载:WinForm中播放声音的三种方法
转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...
随机推荐
- Java:利用BigDecimal类巧妙处理Double类型精度丢失
目录 本篇要点 经典问题:浮点数精度丢失 十进制整数如何转化为二进制整数? 十进制小数如何转化为二进制数? 如何用BigDecimal解决double精度问题? new BigDecimal(doub ...
- 通过`RestTemplate`上传文件(InputStreamResource详解)
通过RestTemplate上传文件 1.上传文件File 碰到一个需求,在代码中通过HTTP方式做一个验证的请求,请求的参数包含了文件类型.想想其实很简单,直接使用定义好的MultiValueMap ...
- [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
/* 先序遍历构建链表,重新构建树 */ LinkedList<Integer> list = new LinkedList<>(); public void flatten( ...
- mysql-font1251错误
控制台中先连接mysql: ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER US ...
- Win10下mysql5.5和mysql8.0.19共存
Win10下mysql5.5和mysql8.0.19共存 需求:由于之前做的项目用的是mysql5.5,而新接的项目指定用mysql8,需要myql5..5和8同时存在运行. 前提:电脑已经安装mys ...
- Pytest测试框架(二):pytest 的setup/teardown方法
PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性.pytest的setup/teardown方法包括:模 ...
- JAVA初始化及类的加载
在许多传统语言中,程序是作为启动过程的一部分被加载的.然后是初始化,紧接着程序开始运行.这些语言的初始化过程必须小心控制,以确保定义为static的东西,其初始化顺序不会造成麻烦.例如C++期望一个s ...
- Sql语句模糊查询字符串的两种写法
Sql语句模糊查询有两种写法,一种是在jdbcTemplate的查询方法参数里拼接字符串%,一种是在Sql语句里拼接%字符串. public class IsNameDaoImpl implement ...
- vuetify 属性集合
1.v-form 组件具有 three 功能,可以通过在该组件上设置 ref 来访问它们. ref 允许我们访问组件上的内部方法,例如 <v-form ref="form"& ...
- C#:使用连接字符串连接数据库
前言:在上学期选择专业时候,选择的是互联网(还有物联网),这学期相关课程便是使用c#完成一个管理系统:最近的作业是完成一个对数据库操作类,操作数据库?虽然是很简单的一个作业,但也是懵逼了很久,在网上找 ...