metasploit攻击载荷模块有三种类型,分别是独立攻击载荷(Singles)传输器载荷(Stager)和传输体载荷(Stage)。
独立攻击载荷是完全自包含的,也就是可以直接独立地植入目标系统并执行。独立攻击载荷功能完整,相应的文件会比较大,一些渗透攻击场合会对攻击载荷的大小和运行条件有所限制。为应对攻击载荷过大而受限的问题,解决的办法是采用分阶段植入技术,也就是不一次性植入过大的攻击载荷,而是分阶段多次植入,为此Metasploit提供了与之对应的传输器和传输体攻击载荷。其原理是由渗透攻击模块首先植入代码短小精悍且可靠的传输器载荷,然后在运行传输器载荷的同时再进一步下载传输体载荷来运行。
(3)空指令模块(Nops)
空指令是一些对程序运行状态不会造成任何实质性影响的空操作或无关操作的指令,其作用是为了填充数据的需要。在多数情况下,需要在真正要执行的Shellcode代码之前填充一些毫无意义的空指令,从而避免由于内存地址随机化、代码执行地址计算偏差、代码返回地址计算偏差等因素导致Shellcode运行失败,从而可以提高渗透攻击的有效性。空指令模块就是用来执行向攻击载荷中添加空指令这一功能的。
(4)编码器模块(Encoders)
在目标系统运行的是攻击载荷模块与空指令模块共同生成的一个带有空指令和Shellcode指令的序列,但是这样的指令序列多数情况下并不能直接在目标系统上运行,需要进行编码,否则很可能无法正常运行或者达不到渗透攻击的效果。
事实上,相当于将原MSF框架中Meterpreter和Shell攻击载荷的一些扩展功能放到了后渗透攻击模块中,进行了一下模块功能的整理和重新分类。后渗透攻击模块其实就是在渗透攻击成功之后,在目标系统上实施进一步攻击功能的组件代码。另外, Meterpreter本身就是一个MSF框架下的功能最强大的、用于后渗透攻击的组件模块,在作为攻击载荷被植入目标系统并运行后,除了具备基本的控制会话功能外,还集成了大量的后渗透攻击命令和功能。此外,后渗透攻击模块需要通过Meterpreter或Shell控制会话加载到目标系统上运行,将后渗透攻击模块与Meterpreter结合起来使用将发挥更大的威力。
编码由编码器模块来执行,它的作用首先是检查指令序列的正确性和完整性,避免“非法字符” (坏字符)影响攻击载荷对漏洞的植入。典型的“非法字符”就是0x00空字符,该字符往往被认为是字符串的结束标志,如果出现在攻击载荷的指令序列中,会导致指令序列的截断,从而导致攻击失败。
其次,编码器模块还要对攻击载荷进行“免杀”处理,防止攻击载荷被各种安全软件,如杀毒软件、入侵检测系统IDS、入侵防御系统IPS等发现、拦截。通过各种形式的编码,打乱指令序列的内容和结构,将攻击载荷变得面目全非,从而避免被安全软件识别。
(5)渗透攻击模块(Exploits)
渗透攻击模块是MSF框架中最为核心的功能组件,它主要利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获取对远程目标主机系统的访问控制权。渗透攻击模块在MSF中的地位毋庸置疑,其数量也最多,用户可在Metasploit源码目录modules/exploits中找到所有(的潜逃攻击模块的源代码,这些模块按照攻击的操作系统类型进行了分类,如图5-2)所示,可以对目前已知的各种类型的操作系统平台发起渗透攻击。
图5-22 motules/explots子眼录的内容
MST框架中的渗透攻击模块按照可以利用的安全漏洞位置分为主动渗透减去和被动物通攻击两类。
主动渗透攻击利用的是位于网络服务端软件以及服务所承载的上层应用程序中存在的安全漏洞,因为这些服务是事先开放的,通常要在主机上开启一些监听端口来等待用户的连接,对于这些服务中存在的安全漏洞,可以主动发起,也就是直接连接服务开放的监听端口,然后注入一些包含恶意请求或代码的内容,触发安全漏洞,进而使得远程服务进程执行恶意代码中包含的攻击载荷,表而资源回标系统的访问控制权。
被动渗透攻击利用的则是客户端软件中存在的安全漏洞,如浏览器、电子邮件、0fire办公软件等。这些客户端程序没有公开的服务端口供攻击者去连接,因此无法采用主动渗透攻击的方式去发起攻击,只能采用被动渗透攻击方式。所谓被动攻击方式就是利用诱骗、欺诈的方式诱使用户下载、安装、执行含有恶意代码的软件,打开含有恶意代码的邮件,访问钓鱼网站或者一些含有恶意代码的内容,一旦用户访问这些内容,执行了相应的操作,客户端软件的安全漏洞就会被触发,从而获取目标系统的控制权。
主动渗透攻击针对的是服务器端,因为服务器端资源丰富,具有较大的攻击价值,因此是一种较为传统的渗透攻击方式,但是目前很多服务器端对安全非常重视,因此主动渗透攻击需要面对防火墙等安全屏障的挑战。
被动渗透攻击针对的是客户端,目前随着网络应用的普及,各种客户端的应用纷至沓来,特别是以手机为代表的移动终端的应用越来越多,客户端的群体日益庞大,对客户端的攻击也越来越有价值,此外客户端可以绕过防火墙等网络边界防护措施,因此近年来针对客户端的被动渗透攻击发展迅猛。
(6)后渗透攻击模块(Post)
后渗透攻击模块是在 Metasploitv4版本中正式引入的一种新的组件模块.其作用是在渗透攻击取得目标系统的远程控制权后,在受控系统中进行各种后渗透攻击动作,比如获取敏感信息、留取后门、擦除痕迹、实施跳板攻击等。