渗透中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主要用于当目标计算机的内存有限时