本文仅用于技术讨论,严禁用于不法用途。
在这篇文章中,我将跟大家分享如何利用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检测结果
领取专属 10元无门槛券
私享最新 技术干货