安全分析与研究
专注于全球恶意软件的分析与研究
前言概述
前不久群里有朋友咨询笔者关于NET Native AOT恶意样本分析的问题,目前暂时没有特别有效的方法来分析这类恶意软件,如下所示:
NET Native AOT(Ahead-of-Time Compilation)是.NET 6及更高版本的一项功能,旨在将.NET程序编译成本地代码(机器码)而不是依赖于运行时的JIT(Just-In-Time)编译,这与传统的.NET编译方式不同,传统方式在应用程序运行时会将中间语言(IL)代码即时编译为机器代码,而AOT编译则在构建时将代码完全转换成目标平台的机器码,减少了程序启动时间并提高了性能。
说简单点,就是传统的NET二进制文件编译,如下所示:
采用AOT方式编译,如下所示:
这也导致了NET Native AOT恶意样本无法像其他NET语言编写的样本一样,通过工具反编译成C#源码,传统的.NET二进制文件相对容易反编译成分析,因为它们包含大量关于已定义类型及其已定义字段和方法的元数据,这使得像ILSpy这样的工具几乎可以轻而易举地将未受保护的.NET 二进制文件转换为近乎完美且可重新编译的源代码,但是对于NET Native AOT恶意样本,不会发现任何字节码痕迹,分析起来就非常费劲。
分析插件
此前国外安全研究人员分享过一篇如何分析NET Native AOT恶意软件的方法,通过创建IDA符号表等方式,近日国外一个安全研究人员发布了一篇相关的分析文章,链接:
https://blog.washi.dev/posts/recovering-nativeaot-metadata/
里面分享了一个插件帮助分析NET Native AOT恶意软件,插件项目地址:
https://github.com/Washi1337/ghidra-nativeaot
笔者下载该Ghidra插件源代码,然后编译,如下所示:
该Ghidra插件功能,如下所示:
通过Ghidra打开二进制文件之后,分析的时候加载该插件,如下所示:
加载完成之后,勾选该分析插件,如下所示:
后面就会自动分析NET Native AOT,同时还可能这个插件的其他功能,可以自行摸索使用。
当我们拿到一个恶意样本的时候,如何判断一个程序是否为NET Native AOT恶意软件样本,其实方法很简单,只需要判断两点:
1.导出函数,如下所示:
2.包含.managed区段,如下所示:
有兴趣的可以自己研究一下,有啥问题,再来找笔者交流。
总结结尾
黑客组织利用各种恶意软件进行的各种攻击活动已经无处不在,防不胜防,很多系统可能已经被感染了各种恶意软件,全球各地每天都在发生各种恶意软件攻击活动,黑客组织一直在持续更新自己的攻击样本以及攻击技术,不断有企业被攻击,这些黑客组织从来没有停止过攻击活动,非常活跃,新的恶意软件层出不穷,旧的恶意软件又不断更新,需要时刻警惕,可能一不小心就被安装了某个恶意软件。
笔者一直从事与恶意软件威胁情报等相关安全分析与研究工作,包含挖矿、勒索、远控后门、僵尸网络、加载器、APT攻击样本、CS木马、Rootkit后门木马等,涉及到多种不同的平台(Windows/Linux/Mac/Android/iOS),笔者做安全研究的兴趣就是喜欢研究一些最新的恶意软件家族样本,跟踪国内外报道的各种安全事件中涉及到的攻击样本等,通过详细分析各种安全攻击事件中涉及的样本、漏洞和攻击技巧等,可以了解全球黑客组织最新的攻击技术以及攻击活动趋势等,同时还可以推判出他们大概准备做什么,发起哪些攻击活动,以及客户可能会受到什么危害等,通过研究全球的黑客组织以及攻击活动,做到知已知彼,各位读者朋友如果有遇到什么新的恶意软件家族样本或最新的家族变种都可以私信发给笔者,感谢给笔者提供样本的朋友们!
安全分析与研究,专注于全球恶意软件的分析与研究,深度追踪全球黑客组织攻击活动,欢迎大家关注,获取全球最新的黑客组织攻击事件威胁情报。
王正
笔名:熊猫正正
恶意软件研究员
长期专注于全球恶意软件的分析与研究,深度追踪全球黑客组织的攻击活动,擅长各种恶意软件逆向分析技术,具有丰富的样本分析实战经验,对勒索病毒、挖矿病毒、窃密、远控木马、银行木马、僵尸网络、高端APT样本都有深入的分析与研究
原文始发于微信公众号(安全分析与研究):NET Native AOT恶意样本分析插件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论