渗透中POC、EXP、Payload与Shellcode的区别
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漏洞。
shell代码
3. Payload模块
在Metasploit Framework 6⼤模块中有⼀个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是⼀个all-in-one的Payload,不依赖其他的⽂件,所以它的体积会⽐较⼤,Stager主要⽤于当⽬标计算机的内存有限时,可以先传输⼀个较⼩的Stager⽤于建⽴连接,Stages指利⽤Stager建⽴的连接下载后续的Payload。Stager和Stages都有多种类型,适⽤于不同场景。
4. 总结
想象⾃⼰是⼀个特⼯,你的⽬标是监控⼀个重要的⼈,有⼀天你怀疑⽬标家⾥的窗⼦可能没有关,于是你上前推了推,结果推开了,这是⼀个POC。之后你回去了,开始准备第⼆天的渗透计划,第⼆天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要⽂件,离开时还安装了⼀个隐蔽的qie ting qi,这⼀天你所做的就是⼀个EXP,你在他家所做的就是不同的Payload,就把qie ting qi当作Shellcode吧!