查看原文
其他

APT-C-28(ScarCruft)组织对韩国地区攻击活动分析

高级威胁研究院 360威胁情报中心 2023-04-11

APT-C-28  ScarCruft

APT-C-28(ScarCruft),又称Konni,是一个活跃于朝鲜半岛的APT组织,其主要针对周边国家地区的政府机构进行网络攻击活动,以窃取敏感信息为主。该组织的攻击活动最早可追溯到2014年,近年来该组织活动频繁,不断被数个国内外安全团队持续追踪和披露。

近期360高级威胁研究院多次发现该组织针对韩国的定向攻击行动。在本轮攻击中,该组织前后使用“奖励清单”、“支付”等具有诱导性的文件名,同时使用“加密货币”、“通讯录”等诱饵内容诱导用户执行恶意宏文档。宏文档被允许执行后,会从自身下载或者释放CAB载荷并解压执行其中的脚本文件,进行一系列恶意样本的加载,从而对受害者发动网络攻击,达到窃密目的。

 一、攻击活动分析  

1.攻击流程分析  

Konni组织本次攻击流程大致如下图所示:         

Konni组织利用诱饵文件诱导用户点击打开,一旦执行便从远端服务器下载恶意宏模板文件,宏代码主要功能是继续下载CAB文件并解压执行其中check.bat文件,该BAT会判断系统版本及CPU架构,以便在安装服务时根据对应版本选择不同的UAC绕过方式,从而顺利伪装系统服务启动后门模块,达到驻留目的并开启窃密活动。

2.恶意文档分析  

Konni组织在近期针对韩国的定向攻击中,主要使用的样本为恶意文档,其伪装内容都为韩文,结合该组织经常使用鱼叉式网络钓鱼攻击手法,推断本次攻击应该也是使用鱼叉钓鱼投递方式。

以下是一个最近针对韩国地区的攻击样本,其信息如下:

文件名称

paypal.docx

文件大小

14.91  KB (15271 字节)

MD5

7b27586c4b332c5e87784c8d3e45a523

该样本执行时会从地址http://k22012.c1.biz/paypal.dotm下载恶意宏模板文档(MD5: a6736c776d6d44cec7ec07b9fb628ec3),并且宏代码被加密无法正常调试,还原后其恶意代码如下所示:

其功能首先将不易阅读的灰色文字设置为黑色,宏执行前后文档内容如下所示:

接着从地址http://5645780.c1.biz//index.php?user_id=trap&auth=trap&pw=trap下载文件,并保存到%TEMP%\FXSAAENPILogFile.txt(MD5:1ae5b24456d9751dbd15c5c4fccef261),最后利用expand对下载文件进行解压并执行其中的check.bat。

3.攻击组件分析   

1)FXSAAENPILogFile.txt文件

宏代码中下载的FXSAAENPILogFile.txt文件信息如下:

文件名称

paypal.docx

文件大小

14.91  KB (15271 字节)

MD5

7b27586c4b332c5e87784c8d3e45a523

该文件实际上是个CAB文件,解压后如下图所示:

2)check.bat文件

压缩包中的check.bat文件被宏代码运行,作为其他组件加载的入口,文件信息如下:

文件名称

FXSAAENPILogFile.txt

文件大小

127.29KB  (130346字节)

MD5

1ae5b24456d9751dbd15c5c4fccef261

check.bat具体内容如下图所示,执行时首先判断是否存在session,若存在直接执行trap.bat并退出,否则先判断是否是Windows 10系统,若是,设置Num等于4,否则等于1,这两个参数代表了不同的UAC绕过方式,接着判断是否在64位系统下,若是则执行wpnprv64.dll,否则执行wpnprv32.dll。

3)wpnprv32.dll文件

以32位系统为例,check.bat文件调用wpnprv32.dll,并传入参数Num和trap.bat。该DLL提供了两种不同的方式进行Byass UAC。

文件名称

check.bat

文件大小

491B  (491字节)

MD5

079be709ce7e57f4015b0ca8347e8a29

当传入的参数Num为1时,借助wusa.exe白名单文件,并结合令牌模拟登录方式从而进行Bypass UAC。具体过程如下,首先通过ShellExecuteExw拉起wusa.exe进程,由于wusa.exe位于UAC 白名单中,并不进行UAC验证,通过NtOpenProcessToken和NtDuplicatetoken API函数获取复制wusa.exe的Token,然后将得到的Token传入ImpersonateLoggedOnUser模拟用户登录,接着使用CreateProcessWithLogomW执行传入的trap.bat,最后将复制的令牌分配给新创建进程的线程。

当传入的Num为4时,则使用最早由Project Zero披露出来的AppInfo RPC以及PPID欺骗技术进行Bypass UAC。

Appinfo是一个Windows RPC服务,该RPC服务中的RAiLaunchAdminProcess函数主要用于UAC验证。具体过程如下,首先将startFlags设置为0,创建一个普通权限的winver.exe进程,然后通过调用NtQueryInformationProcess函数获取该进程调试对象句柄,然后分离调试器,以便能够将现有的调试对象分配给下一步创建的新进程。

接着重新创建一个具有高完整性级别的taskmgr.exe进程,获取初始进程调试事件,通过NtDuplicateObject获取完全访问进程句柄。

最后使用父进程欺骗技术,创建一个新的高完整性级别进程,用于执行传入的trap.bat。

4)trap.bat文件

通过wpnprv32.dll执行的trap.bat基本信息如下表所示:

文件名称

trap.bat

文件大小

1.67KB (1705字节)

MD5

8a37c1614aed81a2b9d1f44cf84e2515

其具体内容为:

执行时首先判断是否运行在64位系统下,若是则将64位的DLL文件和其相应DAT文件复制到system32目录下并改名为rdssvc.dll及rdssvc.dat,否则将32位的DLL文件和其相应DAT文件复制到system32目录下并改名。接着执行安装步骤,创建rdssvc服务,其服务显示名为“Remote Database Service Update”,执行路径“svchost.exe -k rdssvc”,并在注册表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下创建rdssvc项,其参数指向rdssvc.dll,以此实现永久驻留。最后删除本目录下所有文件,成功创建服务如下所示,该服务加载的DLL程序为最终的远控木马。

4.最终载荷分析  

以32位系统下加载的rdssvc32.dll为例,rdssvc32.dll是一个伪装成服务的远控程序,相关信息如下。

文件名称

rdssvc32.dll

文件大小

80.0KB (81920字节)

MD5

8e50622992a4b4b33127c34ff3fdbd30

解密函数名,并获取相关函数地址。

读取注册表HKEY_CURRENT_USER\Console下的键值,其中MinElapsed表示再次联网测试的等待时间,时间范围为1分钟到1小时中间的随机整数分钟。

通过读取解密rdssvc.dat数据,其中rdssvc.dat的前16个字节为IV(“d3dbd7bb1299096441c5ebba6ce2675e”),剩下的内容是加密之后的C2服务器地址,Key为服务名的Hash256值(“3f96cd95327a8c801972620c7906dcfa9e6b76d3c1935b8648c5c24bfb2c21b8”)。使用AES-CTR解密得到C2服务器地址“4895750.c1.biz”。         

如果rdssvc.dat不存在,则会读取rdssvc.ini文件解密出URL地址,从该URL中下载解密C2服务器地址。

然后分别通过执行“cmd /c systeminfo”和“cmd /c tasklist”获取系统信息和进程信息,并将数据保存到C:\Windows\Temp\目录下。

此外,需要注意的在攻击者在上传信息时,如果文件格式不是 “.cab”、“.zip”、“.rar”,则会使用makecab进行打包加密上传,如果已经是这三种格式则直接加密上传。

最后使用POST方式将加密数据上传到“http://4895750.c1.biz/up.php?name={HostName}”

并且通过InternetReadFile函数读取返回结果,如果结果为“success!”则表示成功。

另外,远控指令主要是向服务端 “4895750.c1.biz/dn.php?name={HostName}&prefix=cc(count)”发送Get请求获取,其中count表示连接次数。

执行的部分命令如下:         

远控样本所支持的命令完整格式如下:

一级命令

参数1

参数2

操作

/stext



以SYSTEM权限执行下载的文件,并保存结果

/user



以用户权限执行文件

/user

/stext或>


以用户权限执行,并保存结果

cmd

pull

/f

将文件复制到临时目录,然后再上传

cmd

pull


上传指定文件

cmd

>

 


远程shell并将结果保存到临时目录

cmd



远程shell

cmd

chmod


保存指定文件

cmd

put


移动文件到指定目录

除上述提到以外的命令,主要是以SYSTEM权限执行下载的文件。

 二、关联分析  

在今年早些时候,我们也发现了Konni组织针对韩国地区的多个攻击样本,关联样本1信息如下表所示:

文件名称

카뱅과  손잡은코인원_비트독주  체제무너뜨릴까.docx

文件大小

1.50 MB (1568752 字节)

MD5

00e6e9ed4666623860686c123ed334f0

Konni组织使用加密货币相关文件名和内容诱导用户点击运行,其执行流程与上述分析类似,首先从远端地址http://word2022.c1.biz/template.dotm下载恶意宏模板,宏代码设置字体为黑色,执行前后伪装内容如下所示。

接着收集主机的操作系统版本信息、主机名、IP地址信息并发送给服务器,收集此类信息可用于后续更加精准的攻击行动中。需要特别注意的是,该样本宏代码中没有后续下载CAB文件并解压执行的过程,因此判断该样本主要是前期侦察模块。

此外,通过分析之前捕获的Konni组织样本,发现该组织前期使用的恶意文档是从自身释放CAB并解压执行其中脚本文件,这种方式没有远端加载CAB灵活,并且也容易暴露使用的恶意载荷。

关联样本2信息如下表所示:

文件名称

보상명부.xlam

文件大小

145.43 KB (148924 字节)

MD5

cf5f18032667bfb4c7373191e7fb1fbf

其利用宏从自身解压出rels.xml文件(实为CBA载荷),再利用expand解压rels.xml并执行其中的check.bat文件,后续流程和本次攻击基本一致,不再详细描述。         

 三、归属研判  

Konni组织本次针对韩国地区的攻击,跟之前针对俄罗斯地区使用的载荷相似度很高,主要集中体现在如下方面:

1.在诱饵文档显示上依然保持着该组织的一贯风格,即成功执行后才将不易阅读的文字置黑显示出来,这个是该组织的一个显著特点;

2.和以前样本一样都采用CAB格式文件层层加载载荷,只是CAB文件获取方式不完全相同,此外批处理脚本也十分类似;

3.最终的远控模块功能相似,并且通信流量上也类似,如4895750.c1.biz/dn.php?name={HostName}&prefix=cc(count),其中count表示连接次数,从零开始。之前该组织使用过/dn.php?client_id={主机ID}&prefix=cc(count)类似的URL格式。

最后结合到该样本是针对韩国地区的攻击,符合该组织一直以来的攻击目标,综上,本次攻击归于Konni组织。


总结
Konni组织自被披露以来长期针对周边国家及地区的网络攻击行动,并且有愈演愈烈的趋势。在本轮攻击中,该组织一如既往的使用恶意文档作为攻击载体,将多个恶意模块打包成CAB格式进行攻击,并且在CAB文件的下发方式上呈现出多样化的特点。这都表明该组织在持续地进行更新恶意代码的功能和形态,呈现出功能化模块化的特点,并开发适配不同的系统环境攻击组件。此外,本文披露的相关恶意代码、C2只是Konni组织针对韩国地区攻击过程中使用的部分武器,该组织不会因为一次攻击行动的暴露而停止活动,反而会持续更新其载荷,后期我们也将持续关注该组织的针对韩国及其他地区的攻击武器。       


附录 IOC

cf5f18032667bfb4c7373191e7fb1fbf
7b27586c4b332c5e87784c8d3e45a523
00e6e9ed4666623860686c123ed334f0
2c0db5d995d997a7687f527c493b4c89
7c77fbf78a0e15be66f9edee7ab21084
0567c9fa7c535e8d09fc5d1c712c66bf
ad868a784cb0303aeb02666fe70495f6
f2ffb3cb75535e4ef70b195de68fd330
020e326d4db035b61f66407acb74521d
f0105f3127de410360a2ed80d697b059
a7da2aaaa7efdd9ee74fc5e517be30b2
50551b96e321fe1b478b7bba77c573e6
a6736c776d6d44cec7ec07b9fb628ec3
1ae5b24456d9751dbd15c5c4fccef261
8e50622992a4b4b33127c34ff3fdbd30
1536e9bf086982c072c2cba7d42b0a62
8ef69701c52dc78df0df1dd0bb4c9f36
2211d9356dd7aeced0ee7b2a05077c75
079be709ce7e57f4015b0ca8347e8a29
371d4255ffe03274f016395fe3a4e380
8a37c1614aed81a2b9d1f44cf84e2515
         
rq7592.c1[.]biz
4895750.c1[.]biz
word2022.c1[.]biz
5645780.c1[.]biz
k22012.c1[.]biz
         
http://k22012.c1[.]biz/paypal.dotm
http://5645780.c1[.]biz/index.php?user_id=trap&auth=trap&pw=trap
http://word2022.c1[.]biz/template.dotm
http://word2022.c1[.]biz/index.php?os={OSVersion}&name={HostName}&ip={IP}
http://4895750.c1[.]biz/dn.php?name={HostName}&prefix=cc(count)
http://4895750.c1[.]biz/up.php?name={HostName}
http://rq7592.c1[.]biz/up.php?name={HostName}
http://rq7592.c1[.]biz/dn.php?name={HostName}&prefix=cc(count)







360高级威胁研究院

360高级威胁研究院是360数字安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存