前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >闲谈免杀三

闲谈免杀三

作者头像
乌鸦安全
发布2023-12-06 19:12:22
1.3K1
发布2023-12-06 19:12:22
举报
文章被收录于专栏:乌鸦安全

乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!

本文作者:zedxx10,本文为zedxx10大佬投稿文章,感谢师傅的文章!

1. 前言

本次文章主要讲解和展示cobalt strike在对抗主流国外edr和主流大型杀软的测试效果。

  • 本文使用的cobalt strike马分别为:cobalt strike 4.5二开(完全抹除特征版 ),cobalt strike 4.7以及cobalt strike 4.9
  • 测试edr sentelone 。杀软kb endpointeset 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查杀测试

在上线测试中,shellcodeloader均未被查杀,只是提示某个线程存在联网的情况。有可能是我在局域网内进行测试,没有使用代理或是eset将当前的地址直接当作一个非法链接的地址,只是阻止了连接,但未报毒。

当我换成代理或者一个《合法地址》的时候,eset并未查杀;同时执行sleep混淆操作,3个版本的cs都可以正常上线。但当我执行shell命令的时却立马被查杀,这也就是我之前所说的,eset是一个对行为操作极其敏感的杀软。所以在对抗行为检测类杀软的时候,cs尽量使用模块化插件的方式去获取cmd或者pw回显信息。

3.3 sentinelone edr查杀测试

这个sentinelone edrCrowdStrike是齐名的,在国外的大型公司很受欢迎。在这里使用cs4.9shellcode直接成功上线,但cs4.9在我执行了一些操作之后也是被查杀了。

但是二开的4.5cs4.7是直接落地无法运行,并在一段时间被杀软删除。

在这里需要补充一下一个前置知识:

  • edr和正常的杀软的查杀模式不太一样,虽然整体上都是大差不差的。但是edr会使用userland hook或者对接etwti进行日志行为分析,由于现在市面上绕过userland hook的手法太多了,edr渐渐都会以内核层的etwti作为主流的日志行为进行分析,如果在r3层你想要对抗etwti,是非常的困难的,至少目前市面上很多开源的c2都只是尝试的bypass

回到查杀原因,我认为在流量层面和行为层面都是查杀的原因,但具体的原因我并未细究,因为用cs(差不多算是开源了。。。)去挑战顶级edr,本身就是不太现实的,分析这个比较浪费时间,所以这也就是为什么顶级红队使用自研c2的原因。

4. 简单的总结

以下仅属于个人观点:

cs目前已经不能在作为主流的c2了,建议放弃,可以选择使用其它的小众的c2或者使用最新的版本c2,也可以是带有源码的二开版本c2cs的特征非常明显,在各大厂商的特征库中更新极快。

edr和传统的杀软存在一定的差异,它们或许对于cs静态和动态不一定非常敏感,而是更多根据你的行为操作,作为跳板进行日志分析和回溯,进一步确定你的行为操作。所以堆栈欺骗的重要性就显得较为重要,其次对于bypass etwtir3层或许对于cs来说是一个无法绕过的问题了,最好的方法就是使用自研c2,但是自研的c2依旧需要进行一些必要的混淆欺骗的操作!

本文不会去重点讲解sentinelone,鉴于大部分安全人员无法拿到该杀软的实体以及对windows系统的安全日志机制可能了解不太多,所以这里只是作为一个杀软的参照。

自研c2对于大部分安全人员来说太困难了,这个我在以前就说过了,完成一套商用版的c2仅仅靠一个人是很难完成的。如果不想自己去自研的话,我建议还是使用havoc 来进行二开。

项目地址:

代码语言:javascript
复制
https://github.com/HavocFramework/Havoc/tree/main

这是可以自己编译的源码,在这里推荐的主要原因是havocqt的界面比起sliver c2的更好。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乌鸦安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 静态规避
  • 3. 动态规避
    • 3.1 卡巴查杀测试
      • 3.2 eset查杀测试
        • 3.3 sentinelone edr查杀测试
        • 4. 简单的总结
        相关产品与服务
        腾讯云服务器利旧
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档