不过万事万物都是个矛盾体,因为一旦一种很牛×的绕过技术被公之于众,那杀毒软件的公司就会对这种技术进行分析并找到应对之策。
不过今天,我会公开一个技术,就是使用C#加密攻击载荷,就目前来看使用该方法还是可以绕过所有杀毒软件。
不过对于阅读本文的读者,我还是建议你对渗透测试、Kali Linux以及Metasploit后门载荷有一定的了解。同时,你还应掌握一门编程技术,具体要求如下:
首先:你需要了解杀毒软件的基本特征及其应用。
其次:你需要了解基于Linux的系统以及用于渗透测试的Kali Linux或其他Linux操作系统。
最后:你需要了解Windows编程技术,比如,本文中的C# .Net编程技术。
这样,在阅读完本文后,你就可以使用C#源代码完成更多绕过任务了。
不过在阅读本文时要注意,绕过杀毒软件或防火墙需要提前了解如何在Layer7应用层绕过。
使用C#加密载荷绕过杀毒软件的四步骤
第一步:我在Kali Linux的环境下制作了一个C语言的后门载荷,其十六进制格式如下图所示。使用Reverse_tcp反向连接载荷的原因就是,这种载荷最容易绕过禁止入站连接的防火墙了。
第二步:你应该使用异或(XOR)或其他加密算法对第一步的载荷进行加密。
虽然我用加密算法对我编写的简单C#应用进行了加密,但我要说的是源码其实非常多。
如上图所示,我使用的是VS.NET 2015来开发C#代码,但其实所有版本的VS.NET都支持这一代码。
你会在上图中发现一个名为payload.txt的文本文件,这个文件就是我在第一步中使用msfvenom工具生成的载荷。
所以,在这一步中,你应该使用payload.txt文件中的内容替换代码中的载荷变量{0xfc , ….}。
第三步:程序的输出如下图所示,加密后的载荷也会一同输出。
如上图所示,加密过的载荷是以“217,119,88….,82,12,210”开头的,由于到这一步,你已经有一个加密载荷了,你可以在backdoor.exe文件中放心使用该载荷,因为密或解密载荷的密钥只有你掌握,杀毒软件是无法检测该载荷的。
第四步:现在我需要一个C#代码在目标计算机中执行此加密有效载荷。
如下图所示,我会使用一个C#代码来执行加密后的载荷,在源码中,需要将Payload_Encrypted变量值替换为图3中的加密载荷,此外,还需要用步骤2中使用的密钥值替换KEY值。
不过要注意的是,你在步骤2以及步骤4中使用的KEY值要一致。
在第四步生成的源码中,由于会根据命令行中的参数来生成加密载荷,所以我会在命令行中输入字符串形式(如图5所示)的加密载荷,执行程序的命令如下:
dos C:> backdoor.exe “217,119,88,…….,82,12,210”
在这个时候,加密的有效载荷将在目标计算机的内存中解密和执行,如果你已经完成以上四步,那么在攻击者端的kali linux中,你可以通过后门进行篡改会话,如图5所示::
如下图所示,我设备中的杀毒软件没有检测到这个使用了加密载荷的后门:
事实上所有的杀毒软件都无法检测这种后门,检测结果如下图所示:
为此,我还开发了一个取证工具,可以实时检测内存中的Meterpreter载荷。