关键词:DoNot Team、APT-C-35、APT、Powershell、VBA

1. 执行摘要

DoNot组织,也被称为APT-C-35,是一个至少从2016年就开始活动的高级可持续威胁(APT)组织。该组织有着高度复杂的技战术,尤其是在目标系统和网络上建立持久化操作。因此,DoNot组织被认为是对组织和个人的一个重大威胁。该组织主要针对南亚国家,包括印度、巴基斯坦、斯里兰卡和孟加拉国。近期研究发现了一个疑似针对巴基斯坦的利用Excel邮件附件的攻击活动。该Excel文件打开后会通过宏执行VBA代码,VBA代码会释放其他文件并在特定时间执行。

2. 技术分析-第一阶段

APT-C-35是一个经常利用鱼叉式钓鱼邮件攻击的APT组织。该活动通过分发包含Excel附件的钓鱼邮件尝试对巴基斯坦的国防部门进行攻击。

攻击者使用社会工程学战术(例如钓鱼信息)来欺骗受害者下载并打开恶意的Excel文件。这些Excel文件包含恶意宏代码,一旦激活,就会在受害者的设备上下载并安装APT-C-35恶意软件。

APT-C-35组织能够窃取登录凭证和键盘记录等敏感信息,还能让攻击者远程控制被感染的设备。

图1:Excel恶意文件

Excel文件中的宏启动后,会执行混淆的VBA代码并在"C:\\ProgramData\\WindowsSecurity"目录下创建两个文件,在"\\Users\\Public\\Documents"目录下创建另一个文件。随后通过一个掉线的动态链接库(dll)文件来访问上述文件。VBA代码会设置一个Windows计划任务在特定的时间运行这些文件。

图2:Excel文件中的恶意宏代码

如下图代码所示,在打开excel文件并启用宏后,会检查"C:\\ProgramData\\WindowsSecurity"文件夹是否存在。若该文件夹不存在,就创建文件夹,然后创建一个文本文件"C:\\Users\\Public\\Documents\\desktop.ini.txt"。

宏代码从Execl某个文本框中读取一组字符串作为字节数组写入到文件"C:\\ProgramData\\WindowsSecurity\\winnet.dll"中,这个过程可以在随后的图中看到。

图3:去混淆化后的VBA代码

它使用Windows任务计划程序创建一个计划任务来运行第二阶段,如下图所示。

图4:设置计划任务来运行第二阶段

3. 技术分析-第二阶段

该恶意软件的第二阶段是一个动态链接库(DLL),其中包含了 "webservice" 这个恶意导入函数。通过对DLL文件的逆向分析,该恶意软件会读取 "desktop.ini.txt" 文件,该文件由Excel文件释放。这个过程可以在附图中观察到。

恶意软件利用了一个简单的解密算法,通过利用不同的十六进制值进行循环来解密关键字符串。

图5:简单的算法描述

利用调试器解密的数据如下图所示。

图6:解密的字符串

图7:打开desktop.ini.txt

在对该恶意软件的分析中,由于在攻击的第三阶段读取desktop.ini.txt文件时其中的数据为零导致恶意软件无法继续分析。下面的附图中说明了这个问题。

图8:desktop.ini.txt

在感染后,恶意软件会与远程服务器建立TCP连接以接收字节数据。初始的套接字连接和与服务器的通信可以用于识别该恶意软件的特征。恶意软件随后将收到的字节与 "#" 字符进行比较,这个字符代表创建一个利用PowerShell执行代码的进程的指令。这段PowerShell代码来自于 "destop.ini.txt "文件,用于执行以实现恶意软件的其它目的。

图9:与C2的连接

经过进一步分析,可以确定该恶意软件具备通过PowerShell进程执行下列程序的能力。

  • whoami.exe是一个命令行工具,用于显示当前用户的用户名和组信息。

  • tasklist.exe是一个命令行工具,用于显示系统上当前运行的进程列表。

  • findste.exe是恶意软件用来执行特定功能的工具。

通过对相关PowerShell代码的全面分析,可以确定该代码是利用了Base64加密。在对Base64编码的数据进行解码后,进一步的分析呈现出如下图所示的结果。

图10:对编码的数据进行解码

对嵌入的PowerShell代码进行反混淆处理后的代码如下图所示。

图11:对Powershell代码反混淆处理后的代码

根据作者的分析,这个脚本可能旨在检查主机系统上是否存在特定的文件夹,如果不存在就创建这些文件夹。然而,它还建立了一个与外部IP地址和端口号的连接,并使用IEX命令来执行从该连接中接收到的数据。

4. C2通信

在恶意软件运行的第二阶段,它会与特定 IP 地址建立通信。该 IP 地址是在内存中通过一个简单的算法解密得到的。

解密 IP 后,通过 TCP 协议与 IP 地址 213.227.154[.]196 建立连接以接收可执行文件 (PE),随后该文件将被解析并加载到内存中执行。

图12:TCP连接

分配给该程序使用的IP地址范围是 "213.227.128[.]0 - 213.227.159[.]255",该范围的子网掩码都是相同的。该范围均属于IPv4版本,ASL为 "NL-LEASEWEB-20000721",状态为 "ALLOCATED PA",代表提供商可聚合地址空间,国家代码为 NL。

附录 攻击指标

附录1:Yara规则

    rule DoNot_APT_DLL: DoNot APT DLL{ meta: description ="DoNot_APT_DLL” author = "@malgamy12" date = "2023/1/14" sample1 = "d1b828440268685f40a1bb45dda46748d0713a2365e669806d3b6b14f370bb3f" strings: $op = {2C ?? 8D 49 ?? 88 41 ?? 8A 01 84 C0 75} $pdb = "C:\\\\Users\\\\user\\\\source\\\\repos\\\\psdll\\\\Release\\\\psdll.pdb" ascii $s1 = "webservice" ascii $s2 = "CreateProcessA" ascii condition: uint16(0) == 0x5A4D and all of them}

    附录2:Mitre ATT&CK 技战术

    Tactic

    Technique ID

    Technique Name

    Execution

    T1064

    T1203

    Scripting confidence

    Exploitation for Client Execution confidence

    Defense Evasion

    T1036

    T1064

    Masquerading confidence

    Scripting confidence

    Discovery

    T1083

    T1082

    File and Directory Discovery confidence

    System Information Discovery confidence

    Defense Evasion

    T1218.011

    T1497

    Rundll32 confidence

    Virtualization/Sandbox Evasion

    附录3:失陷指标(IOC)

    Hashes

    • 9de6b542a323b5198dbf472d612313f0cc236e9156e78c583da055d0ce7a29f7

    • d1b828440268685f40a1bb45dda46748d0713a2365e669806d3b6b14f370bb3f

    • b59913878de7c9b10a2c4dfc4f9d1634b95510b4efafb546c46ef076f917911c

    Paths

    • \\Users\\Public\\Documents\\desktop.ini.txt

    • C:\\ProgramData\\WindowsSecurity\\winnet.dll

    • C:\\ProgramData\\WindowsSecurity\\winnet.zip

    IPs

    • 213.227.154[.]196

    参考链接:https://threatmon.io/donot-team-apt-c-35-analysis-of-latest-campaing/

    编辑|涂晨鹏

    审校|何双泽、王仁

    本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。

    声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。