1、POC、EXP、Payload与Shellcode
POC:全称 ’ Proof of Concept ',中文 ’ 概念验证 ’ ,常指一段漏洞证明的代码。
.
EXP:全称 ’ Exploit ',中文 ’ 利用 ',指利用系统漏洞进行攻击的动作。
.
Payload:中文 ’ 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。
.
Shellcode:简单翻译 ’ shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。
2、几点注意
POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。
.
Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。
.
Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。
.
Shellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。
3、Payload
在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。
4、总结
想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的窃听器,这一天你所做的就是一个EXP,你在他家所做的就是不同的Payload,就把窃听器当作Shellcode吧!
5、payload和exploit的区别
- Exploit
- 渗透攻击,是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。攻击者使用渗透攻击去入侵系统时,往往会造成开发者所没有预期到的一种特殊结果。
- 流行的渗透测试攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),以及利用配置错误等。
- Payload
- 攻击载荷,是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入。
- 例如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供Windows命令行shell的攻击载荷;而bindshell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。
- 总结
一句话,exploit是拿下系统前进行的活动,目标是拿下目标系统;payload是在拿下目标系统后所进行的操作,目标是提升权限、加强控制等操作,属于后渗透测试。