教你如何开发不可检测的C#、C+反向Shell

本文仅用于技术讨论,严禁用于不法用途。

在这篇文章中,我将跟大家分享如何利用C#和C++来开发反病毒产品无法检测到的反向Shell。

简单的C#反向Shell

GitHub上有很多能够通过cmd.exe打开反向Shell的C#代码样本。在这篇文章中,我会从GitHub上借鉴部分代码,然后用到了下面这个C#程序中。这个程序不能绕过AV,没有混淆代码,它能做的只有“在目标设备上打开socket,启动cmd.exe”:

源码链接:【GitHub传送门】

我用netcat开启了监听模式(端口443),然后编译并执行我的代码。

你可以看到,.exe文件通过了Windows Defender的检测,说明从AV的角度来看,它不会执行任何恶意操作,这也是正常的扫描结果。

执行文件之后,你将会看到命令行窗口,关闭窗口之后Shell也就终止运行了。

运行exe文件之后,会直接在我的Kali上生成Shell。

VirusTotal检测结果

C++反向Shell+一定程度的持续感染

搜索片刻之后,我发现了一份有类似反向Shell功能的C++代码。而且我还找到了@NinjaParanoid的代码,他的代码可以开启一个反向Shell,而且还有一定的持续感染特性【参考资料】。

这个脚本有三个主要优势:

1、 while循环可以每5秒尝试重连一次;

2、 不可见的cmd实例;

3、 如果标准攻击者IP发生变化,可自动获取新参数;

这份代码所要做的事情游走于“恶意”与“合法”之间,但是Windows Defender检测为“无威胁”。当你运行这个文件之后,Shell将会在5秒钟之后以“静默模式”打开。

对于用户来说,屏幕上啥也不会出现,但如果出现了问题,后台进程每5秒就会尝试自动重连我的Kali。

VirusTotal检测结果

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181221B1891J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券