- A+
这集我将给大家详细介绍一下Payloads。
Payloada介绍
有效载荷(Payload)
在Metasploit框架中有三种不同的种类的攻击载荷模块:独立载荷(Singles)、传输器载荷(Stagers)和传输体载荷(Stages)三种。这些不同种类的有效载荷在很大程度上提升了框架的通用性,并且可以在很多不同情况下使用。传输器与传输体配对的攻击载荷模块以名称’/’标识。例如:”windows/shell_bind_tcp”是一个独立的有效攻击载荷,而”windows/shell/.bind_tcp”是一个由传输器载荷(bind_tcp)和传输体(shell)所组成。
独立载荷(Singles)
独立攻击载荷是完全自包含的(不依赖于其他程序即可运行)。独立攻击载荷可以直接植入目标系统并执行相应程序,比如弹出计算器。
传输器载荷(Stages)
传输器载荷在攻击者和攻击目标之间建立网络通信,常常要求攻击的载荷体积尽力小而且稳定可靠。要同时达到这两种条件是相对困难的。因此,通常情况下,大多传输器载荷基本都是相似的。Metasploit会根据实际情况帮助你选择稳定可靠的还是在必要时选择体积最小的。
无NX(可帮助处理器保护电脑免受恶意软件的攻击)与有NX防御对比:
解决NX与DEP(数据执行保护)的可靠性问题 NX传输器体积很大(虚化分配) 默认情况下是NX+windows 7编译环境
传输体载荷( Stages)
传输体载荷是payload中通过传输器模块下载的组件,不同的传输体有着不同的功能特点,如无大小限制的Meterpreter(驻留在内存的shellcode)、VNC注入(提权)、Iphone权限提升。
传输体载荷自动选择‘中等的传输器’
单向接收体积大的攻击载荷失败后 传输器接收传过来的体积相对小的传输器 开始下载完整的传输器 文件权限强制改变为777(RWX-可读可写可执行)
Payloads类型
载荷类型
Metasploit包含许多不同类型的有效载荷,每种载荷都有其独特作用。让我们简单了解一下提供的各类有效载荷,了解每种类型的使用方法。
内联(无传输器-自包含(独立运行))
独立载荷包含有漏洞利用以及要执行任务的shellcode。对比同类型载荷,内联载荷是比较稳定可靠的,因其包含了所有基本功能。但是有些漏洞模块因这类载荷的大小而出现不支持。
传输器
传输器载荷为了能够更好的执行一些特殊的任务,需要与独立载荷进行关联。传输体在攻击者与攻击目标之间建立通信通道并通过读取传输器载荷在目标主机上执行命令。
会话
会话是通过DLL进程注入方式保持的一种较为隐蔽的微小交互会话,这种会话完全驻留在目标主机的内存中,不会再目标主机得硬盘上留下任何痕迹,所以常常难以检测到这种会话,当我们需要的时候还可以动态地上传或移除脚本、插件,这时Meterpreter 的脚本、插件开发逐渐增多。
PassiveX
PassiveX能帮助我们绕过防火墙的外连(可以简单地理解为从目标主机到攻击者的通信请求过程)规则。PassiveX通过使用ActiveX控件创建一个Internet Explorer隐蔽实例来达到绕过的目的。使用新的ActiveX控件,通过Http请求与响应来进行通信。
无NX
NX位是为了建立于某些CPU防止代码执行的内存特定区域,在windows中,NX是为了实现数据执行保护(DEP)。而NoNX则是为了绕过DEP保护而设计的。
Ord
有序载荷是基于传输器的载荷,有着明显的优点与缺点。其优点是其能在没有明确的返回地址的windows9x中运行,当然也包括windows9x后所有windows版本。这类载荷体积也是非常微小。但是却有两个非常明显的缺点,这也使得我们常常不选择他们作为默认模块,第一个缺点是需要加载ws2_32.dll才能进行相应的利用;第二个缺点则是不像其他传输器载荷那么可靠。
IPv6
IPv6载荷,顾名思义就是能通过IPv6网络进行通信。
反向DLL注射
反向注射是通过在目标主机内存中注入传输体载荷,从而不会接触到硬盘驱动器。VNC和Meterpreter载荷都是使用了DLL注射进行利用的,大家可以通过阅读反向注射技术创造者Stephen Fewer撰写的相关文档进一步了解注射方法。
总结
这节介绍Payloads的内容就到这里,接下来的章节我们考虑到理解和接受度,将推出metasploit公开课系列,敬请期待!
* 作者/Arthur和lazynms,整理/FreeBuf小编banish,应作者要求,未经允许禁止转载!