Kali渗透测试:Metasploit 6.0 中的Evasion模块
Metasploit 开发团队一直致力于免杀技术的研究,并且将一些研究成果应用在了这款产品中。其中Evasion模块可以生成免杀的远程控制被控端。在启动Metasploit时,可以看到Evasion模块,启动命令如下:
┌──(root💀kali)-[~]
└─# msfconsole
8个evasion模块,如下图所示:
使用show evasion命令可以列出Metasploit 6.0中的所有Evasion模块
msf6 > show evasion
如下图所示:
上图中列出的这些模块实际上是对被控端进行免杀处理的方法,生成和使用的方法与其他模块区别不大。现在选择一个可以在Windows操作系统下运行的模块—windows/windows/_defender_exe,使用show options命令查看它的用法。
首先选择这个模块,命令如下:
msf6 > use windows/windows_defender_exe
使用show options命令查看它的用法:
msf6 evasion(windows/windows_defender_exe) > show options
如下图所示,这里需要配置的只有一个FILENAME属性,也就是生成被控端的名字(默认是随机的名字)。
其实我们还需要指定要使用的远程控制模块payload、主控端LHOST和被控端LPORT。完整的设置如下图所示:
使用run命令可以生成这个免杀被控端,但是这个文件所在的msf4目录是不可见的,将其复制到/root/PowerSploit目录下,命令如下:
┌──(root💀kali)-[~/.msf4/local]
└─# cp payload.exe /root/PowerSploit
接下来检测这个被控端的免杀效果,一般情况下只需要检测360杀毒软件是否能够对其进行查杀即可。注意要分别对被控端的未运行和运行两种状态进行查杀,因为杀毒软件大都存在静态分析和行为查杀两种能力。如果要综合评估免杀效果的话,可以使用VirSCAN或者VirusTotal提供的在线检测,这两个网站中集成了大量的常见优秀杀毒软件, 这样我们可以一次性获得被控端免杀的全面苹果,下图是Vir SCAN支持的部分杀毒软件:
可以通过入下图所示的浏览框将文件提交上去。
之后VirSCAN机会对其进行扫描,然后会给出一个检测结果,其中包含51个杀毒软件的检测结果,如下图所示:
这个结果显示51个杀毒软件中,只有5个杀毒软件中发现了病毒,具体杀毒软件的反应如下图所示:
需要注意的是,当你在VirSCAN上传了一个文件以后,如果该文件被检测后发现可疑,VirSCAN会将可疑文件和检测结果发送给各个提供引擎的反病毒厂商,供其参考并更新奇反病毒软件。也就是说,即使你今天发现了一个可以躲避所有杀毒软件的方法,可能明天你就会发现它已经失效。另外, 虽然刚刚在检测中有些杀毒软件表现不佳,但这有可能由一些其他因素导致,并不能说明在实际应用中这些杀毒软件不会发现恶意文件。如我们以nod32为例,在VirSCAN中检测结果无威胁,如下图红框所示:
但是在VirusTotal中检测结果中则存在威胁,如下图所示:
因此,病毒在线检测的结果只能作为参考,不能据此做出一些关键性决策。