APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

admin 2024年3月20日10:30:57评论20 views字数 6420阅读21分24秒阅读模式
APT-C-55
Kimsuky

APT-C-55(Kimsuky)组织,也被称为Mystery Baby、Baby Coin、Smoke Screen、BabyShark、Cobra Venom等多个别名,最早由Kaspersky在2013年公开披露。长期以来,该组织专注于对韩国的智囊团、政府外交部门、新闻媒体和教育学术机构等进行网络攻击。在过去几年中,Kimsuky的攻击范围已经扩大,目标包括美国、俄罗斯和欧洲等国家。其主要目的是进行信息窃取活动,以获取关键的政治和军事情报。

近期,在对Kimsuky组织的基础网络架构进行监控和分析的过程中,360高级威胁研究院成功捕获并分析了名为RandomQuery的攻击活动及其相关的信息窃取组件。这一攻击活动通过多阶段载荷的部署,成功窃取了包括系统细节和浏览器相关数据在内的敏感信息。

 一、受影响情况  

在我们的分析过程中,我们注意到该样本尝试窃取与Naver Whale浏览器相关的信息。鉴于Naver Whale是由韩国公司Naver开发的网页浏览器,我们推测此次攻击活动可能主要针对与韩国有关的组织或个人。    

 二、攻击活动分析  

1.攻击流程分析  

在攻击的初始阶段,攻击者通过向目标用户发送含有伪造HTML文件的恶意邮件来启动攻击。这些邮件旨在诱使用户下载并打开内含恶意内容的RAR压缩文件。该压缩文件内部隐藏着恶意的lnk快捷方式和用作诱饵的文档。一旦用户执行了这个恶意lnk文件,它便会激活并释放一个恶意VBS脚本,该脚本负责从远程服务器上的list.php?query=1路径拉取更多的恶意代码。接下来,攻击者利用已释放的PowerShell脚本从服务器上的其他路径加载更多恶意脚本,进而释放并执行额外的窃取信息的脚本。这一连串的操作展示了攻击者如何通过电子邮件传播恶意软件,并逐步深入目标系统以执行其窃密活动。

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 1 攻击链条

引人注目的是,在我们对攻击基础设施进行分析的过程中,我们注意到攻击者迅速更改了部分路径下的脚本命令。具体来说,他们使用了taskkill命令来清除系统痕迹,这一行为表明攻击者持续监控着访问记录,并随时准备根据情况变化下发新的命令。这种敏捷的调整策略不仅展示了攻击者对于其操作的精细控制,也反映了他们为了保持隐蔽性和有效性而采取的策略。这种对动态环境的快速响应,以及对被攻击系统状态的持续监测,揭示了攻击者高度的战术灵活性和对目标的深入理解。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 2 清理痕迹

2.攻击组件分析

在对这次攻击活动的深入分析中,我们着重分析远程服务器上的窃密组件,以深入了解其攻击工具的功能和演变过程。

  • list.php?query=1路径代码分析  

该样本根据检测到的操作系统版本展示不同的功能。对于Windows 10以下的版本,样本会将特定PowerShell脚本写入%AppData%RoamingMicrosoftWindowsThemes目录,并创建一个计划任务来执行这个脚本,设置为每三小时执行一次。该PowerShell脚本的主要功能是请求list.php?query=6路径以获取下一阶段的恶意VBS代码。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 3 获取远程C2 list.php?query=6代码

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 4 获取特定目录

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 5 创建任务计划

在Windows 10及更高版本上,样本将一段PowerShell代码写入%AppData%RoamingMicrosoftWindowsThemes目录,并随后通过PowerShell执行该代码。这段PowerShell代码的核心功能是从lib.php?ix=1路径下载载荷,接着使用Rfc2898DeriveBytes方法,基于指定的密码('pa55w0rd')和盐值(从下载的载荷中提取)来生成加密密钥和初始化向量(IV)。之后,该脚本利用AES算法对载荷进行解密处理。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 6 解密载荷

随后,该样本为另一段PowerShell代码创建计划任务。这一段代码主要通过绕过执行策略的方法,从lib.php?ix=11路径下载载荷。接着,它使用Windows管理工具(WMI)来创建并启动一个新进程,该进程负责执行上述的PowerShell命令。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 7 下载载荷

  • list.php?query=6路径代码分析  

该样本的主要目的是搜集用户信息。其内置的SyInf函数旨在提供系统信息的全景概览,覆盖了硬件和操作系统的关键细节,这有助于攻击者了解系统的配置和潜在的脆弱性。该函数首先执行WMI查询,针对Win32_ComputerSystem类,从而获得计算机系统相关的信息,这包括系统计算机名、主要使用者、制造商、计算机型号以及系统类型。接着,通过查询Win32_OperatingSystem类,样本能够获取到操作系统的详细信息,如操作系统名称、版本、构建号以及总可见内存容量。此外,该样本还通过Win32_Processor类获取处理器信息,包括处理器名称和当前的时钟速度。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 8 获取系统信息

FInf 函数的主要职责是搜集特定于用户和系统的信息。此类信息搜集行为可能针对更具侵略性的目标,比如识别和定位具有价值的数据以便窃取,或为后续的攻击阶段搜集重要情报。该函数访问Word的最近文件列表,表明其可能用于获取敏感文档的路径信息。同时,它还检查特定系统目录,可能用于揭露用户的活动模式或文件存储习惯。

具体来说,该函数启动一个Word应用程序实例,并遍历Word最近使用的文件列表,收集这些文件的路径和名称。除此之外,它还会搜集系统桌面、文档、收藏夹、浏览历史记录、Windows字体目录、启动目录以及用户下载文件夹中的子文件夹和文件名称。通过这些详细的数据搜集,该函数为恶意行为者提供了广泛的系统和用户信息。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 9 获取word和目录信息

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 10 遍历目录信息

QProc 函数主要用于生成当前运行的进程列表。收集此类信息可能旨在识别系统上正在运行的其他软件(可能包括安全软件),或用于支持更深层次的恶意行为,例如进程注入或终止特定进程。该函数主要通过WMI(Windows管理工具)执行系统上所有当前运行进程的查询。它遍历查询结果中的每个进程对象,并收集关于进程的关键信息,包括进程名称、进程ID和会话ID。

这种对运行中进程的详细审查可以提供攻击者关于目标系统的操作环境的洞察,帮助他们制定针对性的攻击策略或规避安全检测。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 11 获取进程信息

随后,程序会对前述收集的信息进行Base64编码处理,然后利用Req函数将其发送到远程服务器上的show.php路径。在此过程中,程序模拟文件上传操作,将编码后的信息作为名为Info.txt的文件进行上传。此举使得数据传输在表面上看似普通的文件上传,实则是将收集到的信息秘密传送给远程服务器。

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 12 数据编码    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 13 信息发送到C2

  • lib.php?ix=1路径代码分析  

该样本不只是搜集了广泛的系统级别信息,还能够详细地获取指定目录下的所有文件和文件夹信息。这种全面的数据搜集策略可能被用来识别并窃取有价值的数据,或用于评估系统的安全漏洞,为深入侦察目标系统并为后续的攻击活动做准备。样本的操作流程包括:

1)搜集系统信息:获取包括操作系统信息、当前运行任务及其相关联的服务信息、防火墙配置状态等在内的系统信息。

2)检查安全软件状态:获取反病毒软件的状态。

3)遍历关键目录:扫描并记录桌面、文档、用户下载、最近访问的文件目录、开始菜单、程序文件目录以及程序文件 (x86) 目录中的内容。

4)获取驱动器信息:搜集包括卷标、名称、类型、文件系统格式等驱动器信息,并列出每个可用驱动器根目录下的所有文件和文件夹。

通过这样的深入搜集和记录,样本能够为攻击者提供丰富的目标系统信息,使其能够更有效地规划和执行后续的恶意行为。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 14 收集系统详细信息

接下来,样本将使用前文中同样的密钥,结合AES算法对收集到的信息进行加密处理。完成加密后,加密数据会被发送至show.php路径。这一过程确保了敏感信息在传输过程中的安全性,同时使攻击者能够安全地接收目标系统的详细情报。

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 15 加密并发送到远程目录

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 16 AES加密    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 17 将信息发送到C2的函数

  • lib.php?ix=11路径代码分析  

该样本的核心功能是定期从远程服务器接收指令并执行,以及将诸如日志文件等敏感数据经过加密处理后上传至远程服务器。为了保障数据传输的安全,样本采用AES加密技术。同时,通过实施互斥锁机制,样本确保了脚本实例在同一时间内的独占运行。具体如下所示。

1)互斥体创建:样本首先生成一个名为“Main#200913”的互斥体,以确保脚本在任一时刻只有一个实例在运行。

2)文件检查与处理:样本随后检查%appdata%MicrosoftWindowsThemesversion.xml文件的存在性。如果该文件存在,样本将读取其内容,执行AES加密,然后将加密后的数据上传到show.php路径。值得注意的是,version.xml文件是包含键盘记录等敏感日志信息。

通过这些步骤,样本不仅能够执行远程指令,还能够安全地提取并传输关键信息,为攻击者提供了重要的数据支持。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 18 检查相关日志

样本随后计算出一个时间间隔,确保该间隔位于45至85分钟之间,并且每次增加5分钟。生成的时间间隔值被用作URL lib.php?ix=5&iv=路径的一部分,其中该间隔单位为分钟。这个时间间隔随后被用作脚本的休眠时间。通过这种方法,样本能够告知远程服务器它将在多少分钟后重新建立与服务器的连接。这样的设计旨在控制与服务器的通信频率,同时向服务器传达下一次联系的预计时间,从而更加隐蔽地维持持久的连接。

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 19 连接远程服务器    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 20 获取随机时间

  • lib.php?ix=5路径代码分析  

该样本中包含一个名为BrowserInfo的函数,其主要目的是搜集用户计算机上特定浏览器的信息,并将这些信息上传至指定服务器。为此,样本首先初始化一个用于存储待检测浏览器类型的变量,重点关注的浏览器包括Chrome、Edge和Whale。特别值得一提的是,Whale浏览器由韩国的Naver公司开发,这一点表明攻击者可能特别针对韩国用户。这一策略展现了攻击者在选择目标时的地域特定性,进一步揭示了其潜在的攻击动机和目标群体。

接着,样本会检查存储浏览器用户数据的目录是否存在,这些目录分别为“GoogleChromeUser Data”、“MicrosoftEdgeUser Data”和“NaverNaver WhaleUser Data”。

一旦找到这些目录,样本便会从其中的Local State文件中读取数据。该文件通常包含浏览器的配置信息及可能的加密密钥。样本从这些文件中提取出加密密钥和其他重要信息,然后将这些信息进行压缩和Base64编码处理后上传至show.php路径。此过程旨在秘密收集并传输浏览器相关敏感信息,以便攻击者可以利用这些信息进行进一步的恶意行为。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 21 收集浏览器信息

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 22 发送到远程C2

当样本检测到已获取的加密密钥时,它首先对该密钥进行Base64解码。接下来,样本检查解码后的密钥的前5个字节是否与“DPAPI”的字节表示一致,这一步骤用于验证加密密钥的格式是否正确。如果密钥格式验证通过,样本随即使用DPAPI对从第五个字节开始的剩余部分进行解密。解密完成后,样本再次对这些解密后的密钥进行Base64编码,然后将编码后的数据压缩编码,并上传到远程服务器。此过程确保了敏感密钥的安全提取、处理和传输,以供攻击者远程利用。    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 23 解密密钥

随后,该样本提取并整合Local State文件的内容以及解密后的密钥,随后将这些信息进行压缩并转换为Base64编码。此外,样本还会搜集浏览器的Cookies数据、浏览历史记录以及登录信息。这些浏览器相关数据在被搜集后也会经过压缩处理,并转化为Base64编码格式。最终,所有这些经过编码的数据会被发送至远程服务器。通过这一系列操作,样本能够高效地收集、加工并安全传输大量用户浏览器相关的敏感信息。

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 24 收集浏览器信息    

APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

图 25 远程地址

 三、归属研判 

根据公开的威胁情报[1][2][3]所使用的域名域IP相同,且攻击链条具有高度一致性。基于这些信息,我们可以合理推断,此次攻击活动是由Kimsuky组织所发起。

 四、防范排查建议 

攻击者通过发送含有恶意代码的钓鱼邮件展开攻击,这些邮件内嵌有伪装的HTML文件。随后,HTML文件会下发RAR压缩文件,诱导用户执行压缩文件中的LNK快捷方式,从而触发多种窃密脚本的执行。针对这种攻击策略,我们提出以下防范和排查建议:

1. 提高意识教育:对员工进行安全意识培训,教育他们识别钓鱼邮件的常见迹象,例如检查发件人地址、邮件内容的准确性和专业性,以及避免点击未经验证的链接或下载未知附件;
2. 邮件安全筛查:部署高效的邮件过滤和安全扫描工具,以识别并隔离含有恶意附件或链接的邮件;
3. 禁用或限制未知来源的执行文件:在系统中实施策略,禁止或限制执行来自未知来源或不可信的执行文件,特别是邮件附件中的lnk文件;
4. 定期系统扫描:使用360安全卫士定期检查系统,以发现和移除恶意软件;
5. 监控系统活动:监控系统的异常活动,如未知进程的启动,或不寻常的网络流量,这可能是恶意脚本执行的迹象;
6. 备份重要数据:定期备份重要文件和数据,以防万一需要恢复;
7. RAR文件安全检查:对于RAR文件,特别是来自外部邮件的,应进行安全检查和扫描,以确保其内容安全;
8. 应急响应计划:制定并实施应急响应计划,以便在发现攻击时迅速采取行动。

360聚能过去20年实战经验及能力推出360安全云,目前,360安全云已实现对此类威胁的全面检出,全力守护千行百业数字安全。

附录 IOC

67b455be12537a9195b4d614f3d5ac1b

54a11842db77475f2aaab5b2dc8a9319

cb9ee0593e822f36a75e428fe9018483

http://ba-reum.co.kr/adm/status/down/list.php?query=1

http://ba-reum.co.kr/adm/status/down/list.php?query=6

http://ba-reum.co.kr/adm/status/down/list.php?query=7

http://ba-reum.co.kr/adm/status/down/lib.php?ix=1

http://ba-reum.co.kr/adm/status/down/lib.php?ix=11

http://ba-reum.co.kr/adm/status/down/lib.php?ix=5&iv=

http://165.154.230.24/show5/show.php
参考
[1]https://asec.ahnlab.com/wp-content/uploads/2023/11/Sep_Threat-Trend-Report-on-Kimsuky-Group.pdf
[2]https://www.genians.co.kr/blog/kimsuky
[3]https://asec.ahnlab.com/en/59042/ 

360高级威胁研究院

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

原文始发于微信公众号(360威胁情报中心):APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月20日10:30:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   APT-C-55(Kimsuky)组织的RandomQuery窃密攻击活动分析http://cn-sec.com/archives/2579136.html

发表评论

匿名网友 填写信息