情报背景
近期来自WithSecure的安全研究人员对名为DUCKTAIL的攻击组织的攻击活动,及其.NET武器化迭代过程进行了分析。该组织使用.NET作为其主要武器的开发语言,并依据实战需要测试与调整。在近期变种中出现了利用NET NativeAOT特性进行封装的新载荷形式,在执行环境、样本体积以及反分析等方面具有独特优势。本文将对NativeAOT技术在实战场景中的优劣势进行分析研判。
组织名称 |
DUCKTAIL |
战术标签 |
初始访问、防御规避 |
技术标签 |
.NET,NativeAOT |
情报来源 |
https://labs.withsecure.com/content/ dam/labs/docs/WithSecure_Research_ DUCKTAIL_Returns.pdf |
01 攻击技术分析
亮点 .NET NativeAOT载荷打包
.NET 7中引入了名为NativeAOT的新特性,该特性允许.NET代码在编译过程中利用JIT技术直接编译为原生二进制程序。相较于普通的.NET程序,NativeAOT的二进制分发形式带来诸多优势。这类二进制程序可脱离.NET运行时独立执行,使其在应对复杂的目标环境时具备更强的灵活性。此外,由于采用了更激进的默认Trim模式,NativeAOT程序与其他.NET单文件程序相比通常具备更小的体积。
从反分析的角度来看,由于NativeAOT形式的二进制具备与传统.NET程序不同的格式,原有的分析工具与积累的检测特征不再适用。由JIT生成的汇编代码在分析调试的难度上也是更上一层楼,带来了更大的分析溯源成本。
图 某NativeAOT二进制反编译结果
由于运行时无JIT等原因,.NET Native AOT存在如下的一些局限性,对武器化实现造成了一些影响:
-
无法动态加载程序集(例如Assembly.LoadFile)
-
无法使用运行时代码生成
-
无法使用C++/CLI,不包含内置的COM与WinRT操作支持
-
不支持无限泛型递归调用
也可能是由于这些局限性的存在,攻击者在NativeAOT版本的载荷中裁剪了一部分功能,并在试水一段时间之后,切换回原有的.NET单文件打包形式。这说明在权衡之下,相较于反分析等优势,功能完备性与一致性需求具备更高的优先级。
02 总结
继PowerShell之后,.NET是当下最主流的蓝军武器开发环境之一。动态加载的灵活特性与强大的语言功能使其深受攻击者青睐。使用.NET开发其主要的植入物也成为在野攻击者的一个选择,.NET多样化的打包分发形式给攻击者足够的空间,以极低的成本进行各种类型的封装,“一次开发,多样投递”。
在本次事件中我们观察到攻击者利用.NET NativeAOT等打包技术使程序于独立运行时,以适应更复杂的实战环境,并且利用载荷形式的转换,增加基于传统特征匹配的分析溯源难度。当IOC与工具规则匹配捉襟见肘,TTPs仍是命中识别攻击者的有效方式。
绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。
研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。
M01N Team公众号
聚焦高级攻防对抗热点技术
绿盟科技蓝军技术研究战队
官方攻防交流群
网络安全一手资讯
攻防技术答疑解惑
扫码加好友即可拉群
往期推荐
原文始发于微信公众号(M01N Team):攻击技术研判|利用.NET NativeAOT特性的新型攻击手法