POC(Proof of Concept,概念验证)
一段 证明漏洞 存在的代码
Exp(Exploit,利用)
一段 漏洞利用的代码,利用系统漏洞进行攻击的动作
Payload(有效载荷)
成功 Exp 之后,真正在目标系统执行的代码或指令
Shellcode(shell 代码)
Payload 的一种,利用软件漏洞执行的代码,让攻击者获得shell
注意
PoC 是用来证明漏洞存在的,Exp 是用来利用存在的漏洞,两者不是一类,PoC 通常是无害的,Exp 通常是有害的,有了 PoC,才有 Exp。
Payload 针对目标执行的一些操作,shellcode 是根据执行的 payload,获得对应的权限。
另外Payload 有很多种,它可以是 Shellcode,也可以直接是一段系统命令。同一个 Payload 可以用于多个漏洞,但每个漏洞都有其自己的 Exp,也就是说不存在通用的 Exp。
例子
假如你是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗户可能没有关,于是你上前推了推,结果推开了,这是一个 POC,于是你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞(窗户)渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的窃听器,这一天你所做的就是一个 Exp(利用窗户进行的一些动作),你在他家所做的就是不同的 Payload,就把窃听器当作 Shellcode 吧!
参考
https://howiezhao.github.io/2018/04/29/payload-shellcode-exp-poc/