作者:知道创宇404高级威胁情报团队
近期,知道创宇404高级威胁情报团队在日常跟踪APT过程中发现了APT-K-47组织利用“朝觐”话题发起的攻击活动,攻击者利用CHM文件执行相同目录下的恶意载荷。最终载荷功能比较简单,仅支持cmd shell,且使用异步编程实现,这与团队在2023年-2024年上半年的跟踪周期内该组织曾多次使用的“Asynshell”极其相似。根据我们的跟踪观察,此前掌握的Asynshell进行了多个版本的更新,基于代码逻辑和功能,我们有理由怀疑本次捕获样本为升级后的Asynshell。相较于以往,此次样本有如下特点:
利用base64变种算法隐藏字符串。
伪装成正常的网络服务请求来下发C2。
去除大量的log信息。
为方便后续描述,将最新样本记为Asynshell-v4,以下将围绕本次捕获样本以及团队发现Asynshell版本变化的过程展开描述。
APT-K-47,也被称为Mysterious Elephant,是知道创宇404高级威胁情报团队首先披露活动细节的APT组织[1]。据推测该组织发源于南亚地区,其攻击活动最早可追溯至2022年。在对APT-K-47的技术手法、战术策略、工具运用以及行动目标进行深入分析时,可以看到南亚多个其他APT组织的影子,包括但不限于Sidewinder、Confucius和Bitter等。
本次发现的初始样本为zip文件,包含加密的RAR压缩文件,并将包含解压密码的“Password.txt”置于同目录下。值得注意的是,由于文件被加密,导致无任何杀软报毒
图1 加密的压缩文件
RAR压缩文件解压后其中包含了一个chm文件和一个pe文件,其中PE文件被设置为隐藏:
图2 解压后的文件
chm的主要功能是显示诱饵文件并使用快捷方式静默运行同目录下的“Policy_Formulation_Committee.exe”。
诱饵文件主要是关于宗教“朝觐”相关事宜:
图3 诱饵文件
3.1 Policy_Formulation_Committee.exe分析描述
Policy_Formulation_Committee.exe功能比较单一,通过特殊算法解密出伪装成正常的网络服务请求地址,并连接该请求下发的C2服务器完成cmd shell,利用这种方式能够灵活的改变连接地址,以保证长时间的控制受害者主机。
利用变种的base64编码解密出伪装成网络服务请求的服务器地址:
图4 伪装成网络服务请求的服务器地址
服务端返回数据为json,再对其中 RequestId对应的值进行标准base64解码得到最终shell连接的C2。
通过实例化名为“MagicFunctions”的类,并调用其中的“GraciousMagic”函数实现cmd shell的功能,cmd shell在交互过程中使用AES+标准Base64进行数据加解密:
图5 相关代码
知道创宇404高级威胁情报团队在披露APT-K-47组织后对该组织使用的多款武器进行了持续跟踪,就Asyncshell而言,团队根据部分特征的变化将其分为4个版本,详见下表:
表1 Asyncshell的4个版本以下将对以时间线为主轴就Asyncshell的发现过程及版本更新进行描述。
4.1 首次发现Asyncshell
团队首次发现Asyncshell要追溯到2024年1月份,当时我们发现一个利用CVE-2023-38831漏洞的恶意样本,整体攻击链如下图:
图6 攻击链
攻击者利用关于在外地临时休假期间的公务员及临时公务人员的薪酬相关内容作为诱饵:图7 诱饵文件
最终载荷使用Async编程实现shell功能,故将其命名为AsyncShell,为方便后续版本描述,记为AsyncShell-v1:图8 相关代码
AsyncShell-v1支持cmd命令和powershell命令:图9 相关代码
在对AsyncShell-v1分析后,我们从样本库中,关联出一个同类型样本,样本代码非常一致,最终接收的指令仅支持使用powershell进行解析执行:
图10 相关代码
对AsyncShell-v1进一步拓线后发现了多个同类型样本,并且猜测文件原始信息与入侵时间有一定的联系,根据目前拓线分析,此类型攻击首次投递可能在2023年9月份,针对的国家及主体包括巴基斯坦、孟加拉国、土耳其等,这与我们此前通过知道创宇遥测大数据观察到的该组织的攻击目标基本一致。
图11 多个同类型样本
4.2 利用CHM执行Asyncshell
从样本库中入库时间来看,2024年3月,团队曾发现过APT-K-47使用Asyncshell的攻击活动,这也是我们首次发现APT-K-47利用CHM执行Asyncshell。
图12 利用CHM执行Asyncshell
图13 样本
图14 样本
图15 诱饵文件图16 诱饵文件
4.3 从tcp到https的转变
时间来到2024年4月,团队发现该组织1个新的Asyncshell攻击样本,攻击者将诱饵文档与载荷置于同一目录下,并将载荷文件名与诱饵文档设置为相同,在未开启文件后缀显示时,诱使受害者将载荷视为pdf文件点击执行:图17 诱饵文件当恶意载荷执行后将去掉文件路径的后4个字符,并执行该路径所指文件,即诱饵文档:图18 诱饵文件图19 诱饵文件载荷通信从tcp变为https,记为Asyncshell-v2:图20 相关代码样本计划使用“file.dat”回传执行结果,但实际对应的功能函数实现后并未调用。
根据以上信息,团队从样本库中关联到另外一个使用相同C2的同类型样本,部分诱饵如下图:
图21 诱饵文件
该样本使用名为“commands.txt”的文件分发cmd指令,最终执行结果被上传到服务端。
4.4 从文件中解密C2
在2024年7月,团队捕获到Asyncshell变种,与此前版本不同的是:此次捕获样本整个攻击链条已经更新,记为Asyncshell-v3,详细见下图:
图22 攻击链
初始样本为zip文件,初始目录下的lnk文件主要完成VBS脚本的执行,VBS创建名为“WinNetServiceUpdate”的计划任务,计划任务执行主体为“cal.exe”(即Asyncshell-v3)。
诱饵文档如下图:
图23 诱饵文件
cal.exe运行后,将读取同目录下的“license”并使用AES解密,从中获取“ServerIP”和“ServerPort”:
图24 相关代码
同类型的攻击还使用了以下诱饵:
图25 诱饵文件
最终载荷使用ConfuserEx进行混淆,读取并解密“SysConfig.enc”:
图26 相关代码
基于以上分析,可以看出APT-K-47从2023年开始频繁使用Asyncshell发起攻击活动,并逐步对攻击链和载荷代码进行升级。而在近期的攻击活动中,该组织更是巧妙的利用伪装的服务请求来控制最终shell服务端地址,从之前版本的固定C2变换为可变C2,可见APT-k-47组织内部对于Asyncshell的重视。
知道创宇404高级威胁情报团队自2023年披露该组织细节后,一直密切跟踪该组织动向,对于其使用的包括ORPCBackdoor、walkershell、Asyncshell、MSMQSPY和LastopenSpy等武器都有着深入分析,后续团队将持续对部分已掌握武器进行披露。若您对相关内容感兴趣,可联系[email protected]交流探讨。
Hash:
5afa6d4f9d79ab32374f7ec41164a84d2c21a0f00f0b798f7fd40c3dab92d7a8
5488dbae6130ffd0a0840a1cce2b5add22967697c23c924150966eaecebea3c4
c914343ac4fa6395f13a885f4cbf207c4f20ce39415b81fd7cfacd0bea0fe093
原创Paper | 揭秘南亚新 APT 组织 APT-K-47 “神秘象”