背景
2021年8月BeaconEye项目发布,这是一个基于CobaltStrike内存特征进行检测的威胁狩猎工具。BeaconEye具有优秀的检出率与检测效率,使大多数已有规避技术无效化,在网络安全圈内掀起了关于CS内存攻防的新一轮讨论热潮。
为何BeaconEye切中要害
BeaconEye能够扫描运行中的程序或 Minidump中的程序,识别出被Beacon注入的进程,并以上帝视角窥视其内部行为。
· 提取Beacon配置
· 获取执行命令的返回结果
· 检测使用了sleep_mask功能的Beacon
BeaconEye利用对解密后配置特征值进行匹配,简单的几行规则便将无数隐匿手段斩于马下,达到这种令人瞠目结舌的效果并非一日之功。能在攻击技术与检测技术都高度内卷的今天一枝独秀则源于两点:
1. 将Beacon Config作为特征匹配对象
2. 将堆作为内存扫描的对象
阿喀琉斯之踵-Beacon Config
Beacon Config存储了Beacon运行时的配置信息包含了C2配置,通讯参数,内存隐匿方式等重要信息。这些配置数据以典型的TLV格式来组织,偏移与内容相对固定,因而这些敏感信息非常易于根据特征被提取与解析。
官方救火员-C2 profile改变静态特征
但通过Malleable C2 profile这一官方提供的定制化配置文件,攻击者可对Beacon的内存属性静态特征等做进一步的定制和隐匿:
· 自定义内存属性 rwx/rx
· 自定义或删除文件头
· 自定义命名管道名称、替换字符串
通过其强大而灵活的特性,C2 profile帮助Beacon成功规避大部分针对内存属性与静态特征的检测,大大增强了Beacon的隐匿能力,增加了检测的成本。
固定密钥异或?直接解密提取Beacon配置
由于某些原因,CobaltStrike在导出Beacon时仅会对其中包含的Beacon配置信息用简单的异或加密进行保护。更致命的是加密密钥是固定的,对3.x版本的CobaltStrike默认是0x69,对4.x版本的CobalStrike默认是0x2e,用户并不能通过C2 Profile等方式对加密方式或密钥进行修改。
Beacon Config默认以固定密钥加密的孱弱的加密方式给检测工具提取Beacon配置提供了可乘之机,攻击者仍可通过魔改二进制的手段修改该密钥。但只要加密方式不变,通过爆破异或等方式依然不难提取加密后的配置。
小结
BeaconEye的检测思路切中CobaltStrike要害,除非彻底变更数据结构,不存在一劳永逸的绕过方法。未来类似BeaconEye将C2框架内的固定数据结构作为检测对象的工具将会更多出现,各种隐匿技术也会相伴而生,将这场拉锯战继续下去。
CS内存检测与对抗技术的发展,显示了攻防双方在博弈中共同成长的路径。由内存特征到Beacon配置,随着理解的加深,攻防阵地越来越接近底层;由C2profile官方定制到动手魔改,社区研究在实战驱使下补全官方未提供的对抗能力。
以上就是爱惜日网»内存检测工具哪个好(鲁大师检测内存条好坏)的相关内容了,更多精彩请关注作者:爱惜日知识
声明:本文由爱惜日网【创业者资源平台】作者编辑发布,更多技术关注爱惜日技术!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/83172.html