新瓶装老酒–近期APT32(海莲花)组织攻击活动样本分析

APT 2年前 (2022) admin
1,300 0 0
新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析

作者:知道创宇APT威胁情报团队imortalwk


1

Part.1

概述

APT32(海莲花)组织是目前对我国进行攻击窃密行为最为活跃的APT组织之一,该组织主要针对我国及其他东亚国家(地区)政府、海事机构、海域建设部门、科研院所和航运企业等国家重要行业部门的核心关键单位进行攻击,具有强烈的政治背景。知道创宇APT威胁情报团队长期对该组织的攻击活动进行跟踪分析。


近日知道创宇APT威胁情报团队捕获了该组织最新的一次攻击活动,此次捕获的木马有如下3个新的特征是在之前的攻击活动中未发现的:


  1. 使用Nim语言编写的开源loader NimPacket

  2. 未使用原始的NimPacket的有bug的获取进程方法,通过自定义的createprocess方法来获取进程,说明该组织对nimpacket进行了研究并非简单的使用

  3. NimPacket loader中默认加入Shellycoat,用于unhook安全软AV/NGAV/EDR/Sandboxes/DLP等,以此做到免杀。


2

Part.2

详细分析

此前,APT32组织通常采用自己编写的攻击武器,通过利用dll劫持与大量带有合法签名的白文件结合,作为交付Cobalt Strike Beacon和Remy等木马的Loader,来实施攻击活动。


而近期,创宇APT威胁情报团队捕获了一起APT32组织的最新攻击活动,结合之前捕获的攻击样本,我们发现,APT32组织在执行最终的RAT时,开始采用更加多样化的Loader程序来实施攻击活动,而这次攻击活动就采用了一种较为小众的Nim语言编写的开源工具,来作为其交付Cobalt Strike Beacon的Loader,而在此之前,与该组织相关的采用此类武器攻击的活动几乎很少被提及。


Nim 语言是一种静态类型的编译系统编程语言。它结合了 Python、Ada 和 Modula 等成熟语言的成功概念。通过Nim 编译器生成本机无依赖性可执行文件,不依赖于虚拟机,这些可执行文件很小且易于重新分发。Nim可执行文件支持所有主要平台,如 Windows、Linux、BSD 和 macOS。同时可以编译为 C、C++ 或 JavaScript,以便 Nim 可用于所有后端和前端需求。


近期,研究人员发现,恶意软件的开发者越来越多地使用 Go、Rust、Nim 和 DLang 等鲜为人知的编程语言来创建新的攻击工具。根据最近的统计报告显示,使用这些语言的恶意软件家族数量正在增加。这些不常见的编程语言不再像以前想象的那样很少使用,威胁参与者已经开始采用它们来重写已知的恶意软件系列或为新的恶意软件集创建工具。


一是因为这些语言的背后拥有强大的社区支持,攻击者可以快速重写和构建自己的武器。


二是因为这些小众语言编写和编译的恶意程序,可以有效的规避大部分基于常见语言的AV检测特征,同时增加恶意软件研究人员的识别难度和分析成本。


以Nim语言为例,经过转译为C语言代码后,在进入真正的入口函数之前会添加非常多用于初始化Nim环境的代码,这无疑会增加没有此类型程序分析经验的研究人员寻找关键代码的难度。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


并且由于Nim语言的这种面向对象的语言特性,很多基础变量类型如字符串,在转译为C语言后也会面临着一系列实例化的过程,这些也都会增加代码的复杂度。由于篇幅有限,关于Nim程序相关的介绍,这里就不再过多赘述。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


3

Part.3

样本分析

本次捕获的攻击样本,其被放置在Windows Mail目录下,伪装成64位版本的Windows 地址簿程序wab64.exe(正常Windows系统并无此文件)。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


样本是由GCC编译器编译的64位Windows可执行程序,编译语言为Nim,从编译时间戳为与受害者系统下的文件创建时间,基本可以断定受害者系统被入侵的时间与文件创建时间一致。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


Nim语言编译的二进制文件中,仅存在少量的必要导入函数,其余API通过初始化过程动态加载。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


样本文件中存放了两段加密shellcode。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析

新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


其中第一段加密shellcode,会先经过一次base64解码,随后通过硬编码在代码中的Key和IV,再对解码后的数据进行一次AES解密,得到shellcode_1。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


第二段加密shellcode则使用同一套Key和IV,直接经过AES解密得到shellocde_2


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


然后创建一个固定的进程“TapiUnattend.exe”,通过两次远程线程注入操作,将两段shellcode注入该进程中执行。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析

新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


首先,执行注入操作的shellcode_2,会在远程内存中解密并映射一个PE文件,该PE文件被抹除了DOS头部来逃避AV检测。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


由于PE文件的DOS头都是一样的,复制一份其它 PE文件的DOS头填充一下,可以将该文件dump下来,可以看出该文件实际上是一个64位dll文件,在内存展开完成后调用dll的入口函数执行。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


该dll文件会先根据PEB来获取系统版本,并根据系统版本来初始化几个必要的NT函数,这些函数均通过对应系统版本的调用号来执行操作。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


接着映射一个新的Ntdll.dll模块到进程内存中,同时获取当前进程原始Ntdll.dll模块基址,解析PE文件,通过用新映射的Ntdll.dll的.text段覆盖原始Ntdll.dll的.text段来达到应用层解Hook的目的,推测用来做AV对抗,为后续的恶意代码执行初始化环境。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


当执行完上述UnHook操作后,继续远程注入shellcode_1来执行操作,而shellcode_1从入口来看,具有明显Cobalt Strike木马特征。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


解密后的配置文件如下,HTTPs协议,


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


4

Part.4

样本关联分析

根据样本中保留的NimPackt可疑字符串,和其独特的NT解Hook操作,我们关联到一个开源项目:NimPackt-v1


项目链接:

https://github.com/chvancooten/NimPackt-v1

新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析

NimPackt 是一个基于 Nim 语言的打包器,用于面向 Windows 的 .NET (C#) 可执行文件和 shellcode。它自动将有效负载包装在编译为 Native C 的 Nim 二进制文件中,并且可以作为CS的插件来使用。


根据与NimPacket项目源码对比分析,可以确定该样本为NimPacket打包生成的,但与原始NimPacket项目生成的文件有所区别的地方在于,该样本在远程注入目标的获取上做了调整。原始的NimPacket通过WMI查询进程,与打包时参数中指定的进程名做比对后获取进程ID,该样本则直接通过CreateProcess创建一个固定的进程来进行远程注入。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


而之所以做这个调整的原因,推测如项目作者描述的一样:不稳定。所以为了让进程注入操作稳定,攻击者采用了一个系统自带的并能稳定注入的进程,通过CreateProcess创建,然后进行注入操作。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


这个项目中还整合了另一个开源项目:Shellycoat


项目链接:

https://github.com/slaeryan/AQUARMOURY/tree/master/Shellycoat


Shellycoat是一个实用程序,旨在帮助绕过AV/NGAV/EDR/Sandboxes/DLP等使用的用户模式Hook。


通过对Shellycoat源码分析,可以确定该项目就是Loader进行第一次远程线程注入时,在内存中解密出的用于去除进程中可能存在的AV程序的Hook的dll文件。


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析


5

Part.5

总结

如前所述,虽然APT32组织非常依赖于使用CS木马作为其最终的RAT来进行攻击活动,但其在攻击手法上多采用定制化的Loader来交付最终的木马,而采用开源的Loader 如NimPacket非常少见,且在一定程度上,让攻击溯源时很难对它进行定性。


但即使如此,知道创宇APT威胁情报团队还是通过自有APT威胁情报最终发现并锁定了该木马,结合已掌握的威胁情报综合研发分析确认该木马为APT32使用。


IOCs:

MD5:

790d676ac024fa1343afaa817ee1277d9f9da51a                               


知道创宇猎幽-APT流量监测系统


知道创宇猎幽-APT流量监测系统是知道创宇同一线作战人员一起实战打造,针对活跃APT组织的流量检测分析工具,与创宇安全智脑联动,通过对流量进行智能分析,快速高效发现针对我国关键基础设施的APT攻击。


目前,知道创宇猎幽-APT流量监测系统及知道创宇云防御创宇盾都已经支持对此APT攻击团伙攻击活动的精准检测。

新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析

原文始发于微信公众号(知道创宇):新瓶装老酒–近期APT32(海莲花)组织攻击活动样本分析

版权声明:admin 发表于 2022年7月23日 上午10:00。
转载请注明:新瓶装老酒–近期APT32(海莲花)组织攻击活动样本分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...