我们简要介绍了三种主要的Payload类型:singles,stagers 和 stages。Metasploit包含许多不同类型的Payload,每个Payload都在框架内发挥独特作用。我们来简要介绍一下可用的各种Payload,并了解何时应使用每种类型的Payload。
payload三种主要类型:
1、singles:独立载荷,可直接植入目标系统并执行相应的程序,如:shell_bind_tcp这个payload。
2、stagers:传输器载荷,用于目标机与攻击机之间建立稳定的网络连接,与传输体载荷配合攻击。通常该种载荷体积都非常小,可以在漏洞利用后方便注入,这类载荷功能都非常相似,大致分为bind型和reverse型,bind型是需要攻击机主动连接目标端口的;而reverse型是目标机会反连接攻击机,需要提前设定好连接攻击机的ip地址和端口号。
3、stages:传输体载荷,如shell,meterpreter等。在stagers建立好稳定的连接后,攻击机将stages传输给目标机,由stagers进行相应处理,将控制权转交给stages。比如得到目标机的shell,或者meterpreter控制程序运行。这样攻击机可以在本端输入相应命令控制目标机。
Metasploit中的Payload类型有以下几种,包括Inline、Stager、Meterpreter、PassiveX、NoNX、Ord、IPv6 和 Reflective DLL注入;下面 分别详细说明一下各类型都是做什么的?有什么区别?
Inline (非Staged)
包含所选任务的漏洞利用和完整shell代码的single payload。Inline Payloads(有效载荷)在设计上比 其它更稳定,因为它们将所有内容都包含在内。但是,一些漏洞不会支持这些payloads(有效负载)的结果大小。
Stager
Stager payloads 与stage payloads一起工作以执行特定任务。stager在攻击者和受害者之间建立一个通信通道,并读入一个stage payloads在远程主机上执行。
Meterpreter
Meterpreter是Meta-Interpreter的缩写,它是一种先进的,多方面的Payload(有效载荷),通过dll注入进行操作。Meterpreter完全驻留在远程主机的内存中,并且不会在硬盘上留下任何痕迹,因此使用传统的取证技术很难进行检测。脚本和插件可以根据需要动态加载和卸载,并且Meterpreter的开发非常强大并且不断发展。
PassiveX
PassiveX也是一个Payload(有效载荷),可以帮助规避限制性出站防火墙。它通过使用ActiveX控件来创建Internet Explorer的隐藏实例。使用新的ActiveX控件,它通过HTTP请求和响应与攻击者进行通信。
NoNX
NX(No eXecute)位是内置于某些CPU中的功能,用于防止代码在某些内存区域执行。在Windows中,NX被实现为数据执行保护(DEP)。Metasploit NoNX Payloads(有效载荷)旨在规避DEP。
Ord
Ord Payloads是基于Windows stager的有效载荷,具有明显的优点和缺点。它的优点是可以追溯到Windows 9x的每一种风格和语言,而不需要明确定义返回地址。他们也非常小。然而,两个非常具体的缺点使他们不是默认选择。首先是它依赖于ws2_32.dll在被利用之前被加载的事实。第二个是它比其他stagers不太稳定。
IPv6
正如名称所示,Metasploit IPv6 Payloads(有效载荷)构建于IPv6网络上。、
Reflective DLL injection(反射性DLL注入)
反射式DLL注入是一种技术,将stage payload注入到运行在内存中的受损主机进程中,从不接触主机硬盘。VNC和Meterpreter Payload(有效载荷)都使用反射式DLL注入。
总结:
现在我们已经了解了payload是什么?payload类型?下一节就分享何时使用它们可以生成一些payload?