如何判断你是个牛×黑客:使用C#加密攻击载荷来绕过杀毒软件

luochicun 技术 2017年8月24日发布

导语:今天我会公开一个技术,使用C#加密攻击载荷,就目前来看使用该方法还是可以绕过所有杀毒软件。

timg.gif

衡量一个成功黑客和一款牛×的恶意攻击软件的重要指标之一,就是看其能否绕过所有的杀毒软件。

不过万事万物都是个矛盾体,因为一旦一种很牛×的绕过技术被公之于众,那杀毒软件的公司就会对这种技术进行分析并找到应对之策。

不过今天,我会公开一个技术,就是使用C#加密攻击载荷,就目前来看使用该方法还是可以绕过所有杀毒软件。

在进行具体介绍前,请你先点击以下链接,了解一下C#源代码。

http://github.com/DamonMohammadbagher/NativePayloadReversetcp

不过对于阅读本文的读者,我还是建议你对渗透测试、Kali Linux以及Metasploit后门载荷有一定的了解。同时,你还应掌握一门编程技术,具体要求如下:

首先:你需要了解杀毒软件的基本特征及其应用。

其次:你需要了解基于Linux的系统以及用于渗透测试的Kali Linux或其他Linux操作系统。

最后:你需要了解Windows编程技术,比如,本文中的C# .Net编程技术。

这样,在阅读完本文后,你就可以使用C#源代码完成更多绕过任务了。

不过在阅读本文时要注意,绕过杀毒软件或防火墙需要提前了解如何在Layer7应用层绕过。

使用C#加密载荷绕过杀毒软件的四步骤

第一步:我在Kali Linux的环境下制作了一个C语言的后门载荷,其十六进制格式如下图所示。使用Reverse_tcp反向连接载荷的原因就是,这种载荷最容易绕过禁止入站连接的防火墙了。

1.png

第二步:你应该使用异或(XOR)或其他加密算法对第一步的载荷进行加密。

虽然我用加密算法对我编写的简单C#应用进行了加密,但我要说的是源码其实非常多。

2.png

如上图所示,我使用的是VS.NET 2015来开发C#代码,但其实所有版本的VS.NET都支持这一代码。

你会在上图中发现一个名为payload.txt的文本文件,这个文件就是我在第一步中使用msfvenom工具生成的载荷。

所以,在这一步中,你应该使用payload.txt文件中的内容替换代码中的载荷变量{0xfc , ….}。

第三步:程序的输出如下图所示,加密后的载荷也会一同输出。

3.png

如上图所示,加密过的载荷是以“217,119,88….,82,12,210”开头的,由于到这一步,你已经有一个加密载荷了,你可以在backdoor.exe文件中放心使用该载荷,因为密或解密载荷的密钥只有你掌握,杀毒软件是无法检测该载荷的。

第四步:现在我需要一个C#代码在目标计算机中执行此加密有效载荷。

如下图所示,我会使用一个C#代码来执行加密后的载荷,在源码中,需要将Payload_Encrypted变量值替换为图3中的加密载荷,此外,还需要用步骤2中使用的密钥值替换KEY值。

不过要注意的是,你在步骤2以及步骤4中使用的KEY值要一致。

4.png

在第四步生成的源码中,由于会根据命令行中的参数来生成加密载荷,所以我会在命令行中输入字符串形式(如图5所示)的加密载荷,执行程序的命令如下:

dos C:> backdoor.exe “217,119,88,…….,82,12,210”

在这个时候,加密的有效载荷将在目标计算机的内存中解密和执行,如果你已经完成以上四步,那么在攻击者端的kali linux中,你可以通过后门进行篡改会话,如图5所示::

5.png

如下图所示,我设备中的杀毒软件没有检测到这个使用了加密载荷的后门:

6.png

事实上所有的杀毒软件都无法检测这种后门,检测结果如下图所示:

7.png

为此,我还开发了一个取证工具,可以实时检测内存中的Meterpreter载荷。使用我开发的取证工具,你可以在内存中发现这个后门,取证工具下载链接如下:

http://github.com/DamonMohammadbagher/MeterpreterPayloadDetection

本文翻译自https://www.linkedin.com/pulse/bypass-all-anti-viruses-encrypted-payloads-c-damon-mohammadbagher,如若转载,请注明原文地址: http://www.4hou.com/technology/7371.html
点赞 10
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

    huanghousec 2017-08-25 09:11

    你讲了这么一大段,我不能明白你具体要表达的意思,我只看到了你的加密方式就是对payload进行了一次xor或是其他的加密运算,是这意思吗