Cobalt Strike Powershell过360+Defender上线

0x01 生成powershell脚本

PS:本文仅用于技术研究与讨论,严禁用于非法用途,违者后果自负

前几天看了Y4er大佬免杀思路文章,我按照他的思路扩展了下总结的方法给大家参考,如有问题请大佬执教。

首先通过Cobalt Strike生成的powershell脚本。

然后直接运行生成的powershell脚本,微软的Defender跟360都直接秒杀了

0x02 Powershell免杀

现在把FromBase64String改成FromBase65String,那就解决掉FromBase64String,直接改成byte数组。

然后输入$string查看转码后的值,发现进度条拉到顶都看不完。

此时把变量文件输出到文件中查看,有些用户权限不够会报错,更换路径就行了。

运行下,测试是否能上线,可以看到是没问题的。

接下来就是上VT查杀看看。https://www.virustotal.com

这样还不能够,继续改关键字。

先使用看有没有改到不能上线,再检测免杀能力。

可以成功上线,再来测试免杀。VT完美免杀

0x03 生成无落地执行Powershell文件

生成无落地执行powershell文件

访问http://xxx.xx.xxx.xx:80/a这个连接看看文件内容,并保存下来

查看VT,一列全红,要是我买的股票这样多好,扯远了,

使用上面方法,直接把FromBase64String改成FromBase65String。

然后再丢到VT上面查看

不能够啊,还要继续改,首先将byte数组分成两个段。

老规矩使用命令看看是否影响上线

注:这里有一点要注意,我把cobalt strike恶意代码链接复制出来另存为一个txt,服务器另外起了一个http服务提供这个txt访问。可以看到上线成功了。

图片中的命令跟上面我写的命令不一样是因为我使用了混淆绕杀软,可以不管,后面会讲。

这次还是不完美,差一个,都是命令没有关键字替换,现在就是用混淆解决。

先上线后查杀

老规矩,先上线后查杀。

上线成功,没有被杀的了。完美~

0x04 总结

VT确实免杀了,不过呢实际执行的时候360跟defender还是会拦截(翻车现场,勿喷),通过混淆执行语句可以绕过,昨天试过了还没问题,今天写文章发现defender的amsi更新了,没有截图。文章的目的也不是直接给大家使用,不是最新版本的直接使用确实没问题,对于最新版的杀软这里的思路还是可用,只是需要加入更多的混淆,或者加一些编码进去。

0x05 扩展

下面讲下执行远程执行脚本时代码混淆,有的时候直接执行cs生成的语句杀软会拦截。

原始语句:

只是后我们就需要混淆下代码了,可以使用Replace替换关键字部分字母,加上通过拆分后重新组合

例如:

或者

还有powershell语言的特性来混淆代码

常规方法:

管道输入流:

利用环境变量:

从其他进程获取参数:

免杀要不断尝试,活学活用,一次混淆不行多混淆几次,加上替换关键字等。

参考链接:

https://y4er.com/post/cobalt-strike-powershell-bypass/

https://www.cnblogs.com/linuxsec/articles/7384582.html

最后更新于

这有帮助吗?