闲谈免杀三_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

闲谈免杀三

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


闲谈免杀三

本文作者:zedxx10,本文为zedxx10大佬投稿文章,感谢师傅的文章! 1. 前言 本次文章主要讲解和展示cobalt strike在对抗主流国外edr和主流大型杀软的测试效果。 本文使用的cobalt strike马分别为:cobalt strike 4.5二开(完全抹除特征版 ),cobalt strike 4.7以及cobalt strike 4.9。 测试edr sentelone 。杀软kb endpoint, eset smart。 shellcode的加载形式为:loader+shellcode以及白加黑。 2. 静态规避 之前的两期文章我说过(闲谈免杀1、闲谈免杀2):cs目前在对抗这些杀软上完全处于一个极其糟糕的情况,这里我再次指出问题的主要原因:特征码! 不管是静态层面还是动态层面上,几乎可以说是被各大厂商研究透彻。但是在静态层面上面,如果你对shellcode采用强加密和分离式,或者白加黑的方法,是完全可以绕过静态检测的,这里我们排除赛门铁克(这个杀软在静态层查杀不太一样)。 3. 动态规避 3.1 卡巴查杀测试 这个作为整个shellcode运行链最关键的一环, 首先我们测试卡巴,目前三个版本都是可以上线的。 我之前说过卡巴在你的loader中没有使用特别敏感操作api的情况下,基本上都是可以正常上线的,但是为什么上线一段时间之后就被查杀了(这里我未做任何操作)? 答案是内存扫描发现了cs特征码,即便是使用堆栈混淆sleep操作cs4.5二开和cs4.7依旧是被查杀,目前只有cs4.9的混淆睡眠较为稳定。 简单的分析一下: 很多睡眠混淆的大部分基于一叫做SystemFunction032函数实现的混淆,该函数很可能被hook了或者说通过卡巴的栈回溯定位该函数的返回地址,然后追踪到了我们的恶意代码上。 在这里loader使用了dll hollow技术,或许也可能是hollow的行为导致其被卡巴查杀,但基于cs4.9在没有在sleep时就被查杀,所以这个暂时也不太好说。 3.2 eset查杀测试 在上线测试中,shellcode和loader均未被查杀,只是提示某个线程存在联网的情况。有可能是我在局域网内进行测试,没有使用代理或是eset将当前的地址直接当作一个非法链接的地址,只是阻止了连接,但未报毒。 当我换成代理或者一个《合法地址》的时候,eset并未查杀;同时执行sleep混淆操作,3个版本的cs都可以正常上线。但当我执行shell命令的时却立马被查杀,这也就是我之前所说的,eset是一个对行为操作极其敏感的杀软。所以在对抗行为检测类杀软的时候,cs尽量使用模块化插件的方式去获取cmd或者pw回显信息。 3.3 sentinelone edr查杀测试 这个sentinelone edr和CrowdStrike是齐名的,在国外的大型公司很受欢迎。在这里使用cs4.9的shellcode直接成功上线,但cs4.9在我执行了一些操作之后也是被查杀了。 但是二开的4.5和cs4.7是直接落地无法运行,并在一段时间被杀软删除。 在这里需要补充一下一个前置知识: edr和正常的杀软的查杀模式不太一样,虽然整体上都是大差不差的。但是edr会使用userland hook或者对接etwti进行日志行为分析,由于现在市面上绕过userland hook的手法太多了,edr渐渐都会以内核层的etwti作为主流的日志行为进行分析,如果在r3层你想要对抗etwti,是非常的困难的,至少目前市面上很多开源的c2都只是尝试的bypass。 回到查杀原因,我认为在流量层面和行为层面都是查杀的原因,但具体的原因我并未细究,因为用cs(差不多算是开源了。。。)去挑战顶级edr,本身就是不太现实的,分析这个比较浪费时间,所以这也就是为什么顶级红队使用自研c2的原因。 4. 简单的总结 以下仅属于个人观点: cs目前已经不能在作为主流的c2了,建议放弃,可以选择使用其它的小众的c2或者使用最新的版本c2,也可以是带有源码的二开版本c2,cs的特征非常明显,在各大厂商的特征库中更新极快。 edr和传统的杀软存在一定的差异,它们或许对于cs静态和动态不一定非常敏感,而是更多根据你的行为操作,作为跳板进行日志分析和回溯,进一步确定你的行为操作。所以堆栈欺骗的重要性就显得较为重要,其次对于bypass etwti在r3层或许对于cs来说是一个无法绕过的问题了,最好的方法就是使用自研c2,但是自研的c2依旧需要进行一些必要的混淆欺骗的操作! 本文不会去重点讲解sentinelone,鉴于大部分安全人员无法拿到该杀软的实体以及对windows系统的安全日志机制可能了解不太多,所以这里只是作为一个杀软的参照。 自研c2对于大部分安全人员来说太困难了,这个我在以前就说过了,完成一套商用版的c2仅仅靠一个人是很难完成的。如果不想自己去自研的话,我建议还是使用havoc 来进行二开。 项目地址: https://github.com/HavocFramework/Havoc/tree/main 这是可以自己编译的源码,在这里推荐的主要原因是havoc的qt的界面比起sliver c2的更好。 文章来源:乌鸦安全 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END

闲谈免杀三