软件安装包伪装下的Kimsuky(APT-Q-2)窃密行动
Contents
Kimsuky,别名Mystery Baby、Baby Coin、Smoke Screen、Black Banshe等,奇安信内部跟踪编号为APT-Q-2。该APT组织于2013年公开披露,攻击活动最早可追溯至2012年,疑似具有东北亚国家背景。Kimsuky主要攻击目标为韩国,涉及国防、教育、能源、政府、医疗以及智囊团等领域,以机密信息窃取为主。该组织通常使用社会工程学、鱼叉邮件、水坑攻击等手段投递恶意软件,攻击手法多样,拥有针对Windows和Android平台的攻击武器。
近期奇安信威胁情报中心发现一批以韩国软件公司SGA旗下产品安装程序为伪装的窃密攻击样本,样本运行后释放正常的安装包迷惑受害者,并暗中执行经过VMProtect处理的恶意DLL,恶意DLL由Go语言实现,收集感染设备上的各类信息回传给攻击者,然后清除攻击痕迹。
根据窃密软件样本携带的数字签名我们关联到另一种用作后门的恶意软件,同样为Go编写,并带有VMProtect保护壳。此后门软件与Kimsuky组织历史攻击样本存在多处特征重叠,因此我们认为这两种恶意软件均和Kimsuky组织存在关联。
以软件安装包为伪装的攻击样本基本信息如下。
程序文件数字签名的签名者为”D2innovation Co.,LTD”。
MD5
文件类型
数字签名时间
27ef6917fe32685fdf9b755eb8e97565
EXE
2023-12-13 08:25:21 UTC
7457dc037c4a5f3713d9243a0dfb1a2c
DLL
2023-12-13 08:10:34 UTC
7b6d02a459fdaa4caa1a5bf741c4bd42
EXE
2024-01-05 08:04:01 UTC
88f183304b99c897aacfa321d58e1840
DLL
2023-12-18 01:57:13 UTC
19c2decfa7271fa30e48d4750c1d18c1
EXE
2024-01-08 13:58:33 UTC
c8e7b0d3b6afa22e801cacaf16b37355
DLL
2023-12-18 01:57:34 UTC
上面攻击样本可以分为3组:EXE为初始样本,起到dropper的功能,DLL为释放的窃密软件。3组样本对应的正常安装程序去重后共有如下两个。
以样本27ef6917fe32685fdf9b755eb8e97565为例,执行流程如下。
MD5
安装程序名称
eb8d073840e95cf24c9c3f5a2b6470e0
NXTPKIENT.exe
(TrustPKI Enterprise Non-ActiveX Client Setup)
d259ef7500e7e667afc42e9570f9707a
NX_PRNMAN.exe
(SGASolutions NX_PRNMAN Setup)
Dropper初始EXE样本首先在同目录释放正常安装程序NXTPKIENTS.exe,然后在"%Temp%"目录释放bat脚本。Bat脚本的文件名格式为"%Temp%\[4字节随机字符串].tmp.bat",该脚本负责删除初始EXE样本和自身。
接着在"%AppData%\Media"目录释放恶意DLL,文件名格式为"%AppData%\Media\win-[随机字符串].db"。
启动释放的bat脚本和安装包程序NXTPKIENTS.exe。Bat脚本由于此时的初始EXE样本还处于运行状态,因此会进入循环。
释放用于DLL运行的标志文件"C:\programdata\hai.a",调用rundll32.exe启动恶意DLL中名为"hai"的导出函数。初始EXE样本至此完成主要工作。
窃密DLL恶意DLL由Go语言实现,根据样本中的Go元数据信息,该窃密软件的代号似乎为TrollAgent。
恶意DLL首先调用schtasks.exe命令删除名为"ChromeUpdateTaskMachineUAC"的计划任务。随后检查标志文件"C:\programdata\hai.a"是否存在,如果不存在则表明DLL不是由初始EXE样本启动,直接进入自删除过程:再次删除计划任务"ChromeUpdateTaskMachineUAC",释放并执行用于自删除的powershell脚本。
如果标志文件hai.a存在,则将其删除,然后执行窃密软件的主要功能。
在配置初始化过程中,窃密软件将版本设为"[email protected]",获取感染设备网络接口的MAC地址,并以此生成标记受害者的UID,设置用于C&C通信的URL列表。
在C&C通信时,窃密软件先调用SendPing函数与服务器建立连接,向服务器发送"init"信息,并检查响应消息是否为"ok"。
http://ar.kostin.p-e.kr/index.php
http://ai.kostin.p-e.kr/index.php
用于组织窃密软件与C&C服务器通信数据的结构体名为NpwwMsg。窃密软件将其转换为字节序列后,使用XorCBC的方式进行加密,密钥为[0xDD, 0x33, 0x99, 0xCC],再对加密数据进行Base64编码。
窃密软件通过SendPing函数获取到C&C的"ok"响应后,开始收集感染设备的各类信息,将其保存到文件中,加密后回传给C&C服务器。收集的信息包括以下几类。
(1) 窃密软件的配置数据配置数据转换为JSON字符串后,保存在".org"后缀的临时文件中,加密回传给C&C后删除该临时文件。
(2) 指定目录的数据依次查找4个特定的目录是否存在,如果存在,将该目录数据打包为zip压缩包,然后加密回传。查找的目录如下。
未知目录或文件的搜索方式为:遍历C盘,将子目录或文件名转换为小写形式,前面拼接字符串"aaxxyyzz",后面拼接"zzyyxxaa",所得字符串计算其SHA-512 hash值,与下面的硬编码值进行比较,如果相同则表明找到指定目录或文件。
目录
说明
"%USERPROFILE%\.ssh\"
SSH数据
"%USERPROFILE%\appdata\roaming\filezilla\"
FileZilla数据
"%USERPROFILE%\appdata\local\packages\microsoft.microsoftstickynotes_8wekyb3d8bbwe\localstate\"
Microsoft Sticky Notes数据
C盘下某未知目录或文件
-
17ccb0832c3382b5f9e86236e035d899a351c98f3871080c138d4494218cbbc2b6f9dc43705ed97e8b0b09f25752302094e0d297151f67b22328af95610f72f1
(3) 浏览器数据这部分功能疑似使用了Github开源项目HackBrowserData的修改版。HackBrowserData针对Windows平台的浏览器数据目录配置信息如下。
窃密软件中配置的浏览器数据目录如下,多了一款由韩国Naver公司开发的Naver Whale浏览器。
使用kbinani/screenshot库获取截屏。
命令
收集信息说明
systeminfo
Windows系统软硬件
net user
系统的用户
query
user
系统的用户会话
powershell
Get-CimInstance -Namespace root/SecurityCenter2 -Classname AntivirusProduct
安装的杀毒软件
wmic
qfe
安装的Windows系统和软件更新
wmic startup get
启动项
wmic
logicaldisk get
磁盘
ipconfig /all
网络配置
arp
-a
ARP缓存
route print
路由表
tasklist
进程列表
wmic process get
Caption, Commandline
进程命令行
dir
"%programfiles%"
%programfiles%目录
dir
"%programfiles% (x86)"
%programfiles% (x86)目录
dir
"%programdata%\Microsoft\Windows\Start Menu\Programs"
系统开始菜单的程序目录(包含一些安装软件的信息)
dir
"%appdata%\Microsoft\Windows\Recent"
当前用户最近访问的文件或文件夹
dir
/s "%userprofile%\desktop"
当前用户桌面
dir /s
"%userprofile%\downloads"
当前用户下载目录
dir
/s "%userprofile%\documents"
当前用户文档目录
以上5类信息的加密文件保存在窃密软件配置数据的LocalPath目录中,回传C&C后立即删除。使用的加密文件名称以及存放的对应信息分别如下。
信息收集完毕,窃密软件不会保持驻留状态,而是进入自删除过程,清除攻击痕迹。
加密文件名称
保存信息
gcfg@[时间戳].gte1
窃密软件配置数据
tcd@[时间戳].gte1
C盘下某未知目录或文件的数据
tfd@[时间戳].gte1
FileZilla目录数据
tsd@[时间戳].gte1
SSH目录数据
tnd@[时间戳].gte1
Sticky Notes目录数据
tbd@[时间戳].gte1
浏览器数据
ccmd@[时间戳].gte1
Cmd命令收集的信息
ssht@[时间戳].gte1
截屏数据
这种单次运行的方式可以增加攻击行动的隐蔽性,窃密软件从感染设备上收集的丰富数据,有助于攻击者从中挑选出高价值目标采取进一步行动。
与窃密软件带有相同数字签名的后门程序基本信息如下,Go代码使用的项目名称为"mirror"。
MD5
87429e9223d45e0359cd1c41c0301836
文件名
svchost.exe
文件大小
7.67 MB (8043416 bytes)
数字签名时间
2024-01-05 06:12:29 UTC
后门运行后首先检查运行环境,如果检查不通过,则立即删除对应的磁盘文件并退出程序。检查操作包括:(1) 获取注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateName"的值;(2) 启动时的命令行参数数量是否等于2。以上两点表明该后门是由其他恶意软件启动。
后门通过当前用户HOME目录下是否存在锁文件"update.lock"保证单例运行。命令行的第2个参数支持两种选项:"UpdateAll"和"UpdateNormal"。
参数UpdateAll"UpdateAll"参数负责建立持久化。首先设置注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateTime"的值,作为与C&C建立连接的时间。
然后将后门文件复制为当前用户HOME目录下的"svchost.exe"文件。创建名为"WindowsUpdate"的计划任务,以参数"UpdateNormal"运行复制的svchost.exe文件。最后删除当前程序的磁盘文件并退出运行。
参数UpdateNormal"UpdateNormal"参数负责与C&C服务器通信。首先根据感染设备的计算机名和用户名生成标记受害者的UID。获取注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateTime"的值,判断是否到达与C&C建立连接的时间。未到时间则休眠20s后再次检查,反之则调用LoopSession函数进入与C&C服务器交互的过程。
C&C通信C&C服务器使用的域名coolsystem[.]co.kr很可能来自被攻陷的网站。
后门获取指令和回传结果均是向URL "hxxp://coolsystem.co.kr/admin/mail/index.php"发送POST请求。
获取指令的请求数据格式如下,参数1的值为"2",参数2的值在UID后添加了字符"1"。
a[9字节随机字符串]=2&b[9字节随机字符串]=[UID]1&c[9字节随机字符串]=
回传结果的请求数据格式如下,参数1的值为"1",参数2的值在UID后加了字符"2"。
x[9字节随机字符串]=1&y[9字节随机字符串]=[UID]2&z[9字节随机字符串]=[加密数据]
获取指令后,后门根据响应数据的前两字节进行指令分发,之后的数据作为指令参数。
后门支持的指令如下:
C&C指令
函数名
功能
"01"
(0x3130)
Process_Sleep
休眠指定时间,设置注册表LastUpdateTime值,结束当前C&C通信会话
"02" (0x3230)
Process_Cmd
执行shell命令
"03"
(0x3330)
Process_Pwd
获取当前工作目录
"04" (0x3430)
Process_Cd
切换工作目录
"05"
(0x3530)
Process_Conn
向指定服务器建立TCP连接
"06" (0x3630)
Process_Exit
退出程序
"07"
(0x3730)
Process_Where
获取程序的文件路径
"08" (0x3830)
Process_Dirsize
获取指定目录的统计信息(子目录和文件数量,目录中文件总大小)
"09"
(0x3930)
Process_GetInfo
获取设备信息,包括主机名、用户名、CPU信息、内存信息、网卡信息
"10" (0x3031)
Process_CmdPath
设置执行shell命令的文件路径(默认为cmd.exe)
"11"
(0x3131)
Process_Codepage
设置代码页,默认为euc-kr(韩语)
"12" (0x3231)
Process_Hibernate
设置下次连接的具体日期时间(解析时区为韩国时区Asia/Seoul),设置注册表LastUpdateTime值,结束当前C&C通信会话
"13"
(0x3331)
Process_Die
删除持久化对应的计划任务,删除程序文件并退出程序
"14" (0x3431)
Process_SocksAdd
添加Socks5代理
"15"
(0x3531)
Process_SocksList
列出Socks5代理
"30" (0x3033)
Process_Upload
向感染设备上传文件
"31"
(0x3133)
Process_Download
从感染设备下载文件
窃密软件和后门两种恶意样本除了数字签名相同、保护壳相同、编程语言相同外,在代码上也有一些相似之处。首先,标记受害者的UID的生成方式均是计算感染设备某个系统信息的hash值,然后截取其中一部分。其次,两者均内置了自删除功能。
另一方面,后门与几个月前披露的Kimsuky攻击活动[1]使用的攻击样本(MD5: d6abeeb469e2417bbcd3c122c06ba099)存在下面多处特征重叠。
(1) 生成受害者UID方式相似后门生成的UID在hash值前拼接了"g-"字符串,而之前的攻击样本生成的UID是在系统盘序列号后拼接"0-2.3"字符串。
(2) 部分远控指令相同均有getinfo, where, die, pwd, cd, sleep等攻击指令。
(3) C&C通信格式相似都借助POST请求获取指令和回传结果,并且请求数据中参数的名称为随机生成的字符串,而参数值的构造方式相同。之前的攻击样本获取攻击指令的数据格式如下,参数1的值为"2",参数2的值在UID后添加字符"1"。
[10字节随机字符串]=2&[10字节随机字符串]=[UID]1&[10字节随机字符串]=
攻击样本回传结果的数据格式如下,参数1的值为"1",参数2的值在UID后添加字符"2"。
[10字节随机字符串]=1&[10字节随机字符串]=[UID]2&[10字节随机字符串]=[加密数据]
综上,我们认为此次发现的窃密软件和后门与Kimsuky近期的攻击活动有关。
对恶意软件进行加壳处理不仅可以避开静态特征检测,也能阻碍分析恶意软件具体功能的进程。Kimsuky在此次攻击活动中使用的恶意软件保持着一贯风格,通过检测运行环境中的特定设置判断是否由初始投递的攻击样本启动,并使用自删除代码清理攻击痕迹。以软件安装包进行伪装的窃密软件只负责信息收集工作,意味着攻击者很可能以此为基础筹划后续更加隐蔽且深入的攻击行动。
奇安信威胁情报中心提醒广大用户,谨防钓鱼攻击,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。
若需运行,安装来历不明的应用,可先通过奇安信威胁情报文件深度分析平台(https://sandbox.ti.qianxin.com/sandbox/page)进行判别。目前已支持包括Windows、安卓平台在内的多种格式文件深度分析。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
27ef6917fe32685fdf9b755eb8e97565
7457dc037c4a5f3713d9243a0dfb1a2c
7b6d02a459fdaa4caa1a5bf741c4bd42
88f183304b99c897aacfa321d58e1840
19c2decfa7271fa30e48d4750c1d18c1
c8e7b0d3b6afa22e801cacaf16b37355
87429e9223d45e0359cd1c41c0301836
C&C
ar.kostin.p-e.kr
ai.kostin.p-e.kr
qi.limsjo.p-e.kr
ai.limsjo.p-e.kr
ol.negapa.p-e.kr
ai.negapa.p-e.kr
URL
hxxp://ar.kostin.p-e.kr/index.php
hxxp://ai.kostin.p-e.kr/index.php
hxxp://qi.limsjo.p-e.kr/index.php
hxxp://ai.limsjo.p-e.kr/index.php
hxxp://ol.negapa.p-e.kr/index.php
hxxp://ai.negapa.p-e.kr/index.php
hxxp://coolsystem.co.kr/admin/mail/index.php
[1].https://asec.ahnlab.com/en/59387/
近期奇安信威胁情报中心发现一批以韩国软件公司SGA旗下产品安装程序为伪装的窃密攻击样本,样本运行后释放正常的安装包迷惑受害者,并暗中执行经过VMProtect处理的恶意DLL,恶意DLL由Go语言实现,收集感染设备上的各类信息回传给攻击者,然后清除攻击痕迹。
根据窃密软件样本携带的数字签名我们关联到另一种用作后门的恶意软件,同样为Go编写,并带有VMProtect保护壳。此后门软件与Kimsuky组织历史攻击样本存在多处特征重叠,因此我们认为这两种恶意软件均和Kimsuky组织存在关联。
以软件安装包为伪装的攻击样本基本信息如下。
程序文件数字签名的签名者为”D2innovation Co.,LTD”。
MD5
文件类型
数字签名时间
27ef6917fe32685fdf9b755eb8e97565
EXE
2023-12-13 08:25:21 UTC
7457dc037c4a5f3713d9243a0dfb1a2c
DLL
2023-12-13 08:10:34 UTC
7b6d02a459fdaa4caa1a5bf741c4bd42
EXE
2024-01-05 08:04:01 UTC
88f183304b99c897aacfa321d58e1840
DLL
2023-12-18 01:57:13 UTC
19c2decfa7271fa30e48d4750c1d18c1
EXE
2024-01-08 13:58:33 UTC
c8e7b0d3b6afa22e801cacaf16b37355
DLL
2023-12-18 01:57:34 UTC
上面攻击样本可以分为3组:EXE为初始样本,起到dropper的功能,DLL为释放的窃密软件。3组样本对应的正常安装程序去重后共有如下两个。
以样本27ef6917fe32685fdf9b755eb8e97565为例,执行流程如下。
MD5
安装程序名称
eb8d073840e95cf24c9c3f5a2b6470e0
NXTPKIENT.exe
(TrustPKI Enterprise Non-ActiveX Client Setup)
d259ef7500e7e667afc42e9570f9707a
NX_PRNMAN.exe
(SGASolutions NX_PRNMAN Setup)
Dropper初始EXE样本首先在同目录释放正常安装程序NXTPKIENTS.exe,然后在"%Temp%"目录释放bat脚本。Bat脚本的文件名格式为"%Temp%\[4字节随机字符串].tmp.bat",该脚本负责删除初始EXE样本和自身。
接着在"%AppData%\Media"目录释放恶意DLL,文件名格式为"%AppData%\Media\win-[随机字符串].db"。
启动释放的bat脚本和安装包程序NXTPKIENTS.exe。Bat脚本由于此时的初始EXE样本还处于运行状态,因此会进入循环。
释放用于DLL运行的标志文件"C:\programdata\hai.a",调用rundll32.exe启动恶意DLL中名为"hai"的导出函数。初始EXE样本至此完成主要工作。
窃密DLL恶意DLL由Go语言实现,根据样本中的Go元数据信息,该窃密软件的代号似乎为TrollAgent。
恶意DLL首先调用schtasks.exe命令删除名为"ChromeUpdateTaskMachineUAC"的计划任务。随后检查标志文件"C:\programdata\hai.a"是否存在,如果不存在则表明DLL不是由初始EXE样本启动,直接进入自删除过程:再次删除计划任务"ChromeUpdateTaskMachineUAC",释放并执行用于自删除的powershell脚本。
如果标志文件hai.a存在,则将其删除,然后执行窃密软件的主要功能。
在配置初始化过程中,窃密软件将版本设为"[email protected]",获取感染设备网络接口的MAC地址,并以此生成标记受害者的UID,设置用于C&C通信的URL列表。
在C&C通信时,窃密软件先调用SendPing函数与服务器建立连接,向服务器发送"init"信息,并检查响应消息是否为"ok"。
http://ar.kostin.p-e.kr/index.php
http://ai.kostin.p-e.kr/index.php
用于组织窃密软件与C&C服务器通信数据的结构体名为NpwwMsg。窃密软件将其转换为字节序列后,使用XorCBC的方式进行加密,密钥为[0xDD, 0x33, 0x99, 0xCC],再对加密数据进行Base64编码。
窃密软件通过SendPing函数获取到C&C的"ok"响应后,开始收集感染设备的各类信息,将其保存到文件中,加密后回传给C&C服务器。收集的信息包括以下几类。
(1) 窃密软件的配置数据配置数据转换为JSON字符串后,保存在".org"后缀的临时文件中,加密回传给C&C后删除该临时文件。
(2) 指定目录的数据依次查找4个特定的目录是否存在,如果存在,将该目录数据打包为zip压缩包,然后加密回传。查找的目录如下。
未知目录或文件的搜索方式为:遍历C盘,将子目录或文件名转换为小写形式,前面拼接字符串"aaxxyyzz",后面拼接"zzyyxxaa",所得字符串计算其SHA-512 hash值,与下面的硬编码值进行比较,如果相同则表明找到指定目录或文件。
目录
说明
"%USERPROFILE%\.ssh\"
SSH数据
"%USERPROFILE%\appdata\roaming\filezilla\"
FileZilla数据
"%USERPROFILE%\appdata\local\packages\microsoft.microsoftstickynotes_8wekyb3d8bbwe\localstate\"
Microsoft Sticky Notes数据
C盘下某未知目录或文件
-
17ccb0832c3382b5f9e86236e035d899a351c98f3871080c138d4494218cbbc2b6f9dc43705ed97e8b0b09f25752302094e0d297151f67b22328af95610f72f1
(3) 浏览器数据这部分功能疑似使用了Github开源项目HackBrowserData的修改版。HackBrowserData针对Windows平台的浏览器数据目录配置信息如下。
窃密软件中配置的浏览器数据目录如下,多了一款由韩国Naver公司开发的Naver Whale浏览器。
使用kbinani/screenshot库获取截屏。
命令
收集信息说明
systeminfo
Windows系统软硬件
net user
系统的用户
query
user
系统的用户会话
powershell
Get-CimInstance -Namespace root/SecurityCenter2 -Classname AntivirusProduct
安装的杀毒软件
wmic
qfe
安装的Windows系统和软件更新
wmic startup get
启动项
wmic
logicaldisk get
磁盘
ipconfig /all
网络配置
arp
-a
ARP缓存
route print
路由表
tasklist
进程列表
wmic process get
Caption, Commandline
进程命令行
dir
"%programfiles%"
%programfiles%目录
dir
"%programfiles% (x86)"
%programfiles% (x86)目录
dir
"%programdata%\Microsoft\Windows\Start Menu\Programs"
系统开始菜单的程序目录(包含一些安装软件的信息)
dir
"%appdata%\Microsoft\Windows\Recent"
当前用户最近访问的文件或文件夹
dir
/s "%userprofile%\desktop"
当前用户桌面
dir /s
"%userprofile%\downloads"
当前用户下载目录
dir
/s "%userprofile%\documents"
当前用户文档目录
以上5类信息的加密文件保存在窃密软件配置数据的LocalPath目录中,回传C&C后立即删除。使用的加密文件名称以及存放的对应信息分别如下。
信息收集完毕,窃密软件不会保持驻留状态,而是进入自删除过程,清除攻击痕迹。
加密文件名称
保存信息
gcfg@[时间戳].gte1
窃密软件配置数据
tcd@[时间戳].gte1
C盘下某未知目录或文件的数据
tfd@[时间戳].gte1
FileZilla目录数据
tsd@[时间戳].gte1
SSH目录数据
tnd@[时间戳].gte1
Sticky Notes目录数据
tbd@[时间戳].gte1
浏览器数据
ccmd@[时间戳].gte1
Cmd命令收集的信息
ssht@[时间戳].gte1
截屏数据
这种单次运行的方式可以增加攻击行动的隐蔽性,窃密软件从感染设备上收集的丰富数据,有助于攻击者从中挑选出高价值目标采取进一步行动。
与窃密软件带有相同数字签名的后门程序基本信息如下,Go代码使用的项目名称为"mirror"。
MD5
87429e9223d45e0359cd1c41c0301836
文件名
svchost.exe
文件大小
7.67 MB (8043416 bytes)
数字签名时间
2024-01-05 06:12:29 UTC
后门运行后首先检查运行环境,如果检查不通过,则立即删除对应的磁盘文件并退出程序。检查操作包括:(1) 获取注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateName"的值;(2) 启动时的命令行参数数量是否等于2。以上两点表明该后门是由其他恶意软件启动。
后门通过当前用户HOME目录下是否存在锁文件"update.lock"保证单例运行。命令行的第2个参数支持两种选项:"UpdateAll"和"UpdateNormal"。
参数UpdateAll"UpdateAll"参数负责建立持久化。首先设置注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateTime"的值,作为与C&C建立连接的时间。
然后将后门文件复制为当前用户HOME目录下的"svchost.exe"文件。创建名为"WindowsUpdate"的计划任务,以参数"UpdateNormal"运行复制的svchost.exe文件。最后删除当前程序的磁盘文件并退出运行。
参数UpdateNormal"UpdateNormal"参数负责与C&C服务器通信。首先根据感染设备的计算机名和用户名生成标记受害者的UID。获取注册表"HKEY_CURRENT_USER\SOFTWARE\Microsoft"下"LastUpdateTime"的值,判断是否到达与C&C建立连接的时间。未到时间则休眠20s后再次检查,反之则调用LoopSession函数进入与C&C服务器交互的过程。
C&C通信C&C服务器使用的域名coolsystem[.]co.kr很可能来自被攻陷的网站。
后门获取指令和回传结果均是向URL "hxxp://coolsystem.co.kr/admin/mail/index.php"发送POST请求。
获取指令的请求数据格式如下,参数1的值为"2",参数2的值在UID后添加了字符"1"。
a[9字节随机字符串]=2&b[9字节随机字符串]=[UID]1&c[9字节随机字符串]=
回传结果的请求数据格式如下,参数1的值为"1",参数2的值在UID后加了字符"2"。
x[9字节随机字符串]=1&y[9字节随机字符串]=[UID]2&z[9字节随机字符串]=[加密数据]
获取指令后,后门根据响应数据的前两字节进行指令分发,之后的数据作为指令参数。
后门支持的指令如下:
C&C指令
函数名
功能
"01"
(0x3130)
Process_Sleep
休眠指定时间,设置注册表LastUpdateTime值,结束当前C&C通信会话
"02" (0x3230)
Process_Cmd
执行shell命令
"03"
(0x3330)
Process_Pwd
获取当前工作目录
"04" (0x3430)
Process_Cd
切换工作目录
"05"
(0x3530)
Process_Conn
向指定服务器建立TCP连接
"06" (0x3630)
Process_Exit
退出程序
"07"
(0x3730)
Process_Where
获取程序的文件路径
"08" (0x3830)
Process_Dirsize
获取指定目录的统计信息(子目录和文件数量,目录中文件总大小)
"09"
(0x3930)
Process_GetInfo
获取设备信息,包括主机名、用户名、CPU信息、内存信息、网卡信息
"10" (0x3031)
Process_CmdPath
设置执行shell命令的文件路径(默认为cmd.exe)
"11"
(0x3131)
Process_Codepage
设置代码页,默认为euc-kr(韩语)
"12" (0x3231)
Process_Hibernate
设置下次连接的具体日期时间(解析时区为韩国时区Asia/Seoul),设置注册表LastUpdateTime值,结束当前C&C通信会话
"13"
(0x3331)
Process_Die
删除持久化对应的计划任务,删除程序文件并退出程序
"14" (0x3431)
Process_SocksAdd
添加Socks5代理
"15"
(0x3531)
Process_SocksList
列出Socks5代理
"30" (0x3033)
Process_Upload
向感染设备上传文件
"31"
(0x3133)
Process_Download
从感染设备下载文件
窃密软件和后门两种恶意样本除了数字签名相同、保护壳相同、编程语言相同外,在代码上也有一些相似之处。首先,标记受害者的UID的生成方式均是计算感染设备某个系统信息的hash值,然后截取其中一部分。其次,两者均内置了自删除功能。
另一方面,后门与几个月前披露的Kimsuky攻击活动[1]使用的攻击样本(MD5: d6abeeb469e2417bbcd3c122c06ba099)存在下面多处特征重叠。
(1) 生成受害者UID方式相似后门生成的UID在hash值前拼接了"g-"字符串,而之前的攻击样本生成的UID是在系统盘序列号后拼接"0-2.3"字符串。
(2) 部分远控指令相同均有getinfo, where, die, pwd, cd, sleep等攻击指令。
(3) C&C通信格式相似都借助POST请求获取指令和回传结果,并且请求数据中参数的名称为随机生成的字符串,而参数值的构造方式相同。之前的攻击样本获取攻击指令的数据格式如下,参数1的值为"2",参数2的值在UID后添加字符"1"。
[10字节随机字符串]=2&[10字节随机字符串]=[UID]1&[10字节随机字符串]=
攻击样本回传结果的数据格式如下,参数1的值为"1",参数2的值在UID后添加字符"2"。
[10字节随机字符串]=1&[10字节随机字符串]=[UID]2&[10字节随机字符串]=[加密数据]
综上,我们认为此次发现的窃密软件和后门与Kimsuky近期的攻击活动有关。
对恶意软件进行加壳处理不仅可以避开静态特征检测,也能阻碍分析恶意软件具体功能的进程。Kimsuky在此次攻击活动中使用的恶意软件保持着一贯风格,通过检测运行环境中的特定设置判断是否由初始投递的攻击样本启动,并使用自删除代码清理攻击痕迹。以软件安装包进行伪装的窃密软件只负责信息收集工作,意味着攻击者很可能以此为基础筹划后续更加隐蔽且深入的攻击行动。
奇安信威胁情报中心提醒广大用户,谨防钓鱼攻击,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。
若需运行,安装来历不明的应用,可先通过奇安信威胁情报文件深度分析平台(https://sandbox.ti.qianxin.com/sandbox/page)进行判别。目前已支持包括Windows、安卓平台在内的多种格式文件深度分析。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
27ef6917fe32685fdf9b755eb8e97565
7457dc037c4a5f3713d9243a0dfb1a2c
7b6d02a459fdaa4caa1a5bf741c4bd42
88f183304b99c897aacfa321d58e1840
19c2decfa7271fa30e48d4750c1d18c1
c8e7b0d3b6afa22e801cacaf16b37355
87429e9223d45e0359cd1c41c0301836
C&C
ar.kostin.p-e.kr
ai.kostin.p-e.kr
qi.limsjo.p-e.kr
ai.limsjo.p-e.kr
ol.negapa.p-e.kr
ai.negapa.p-e.kr
URL
hxxp://ar.kostin.p-e.kr/index.php
hxxp://ai.kostin.p-e.kr/index.php
hxxp://qi.limsjo.p-e.kr/index.php
hxxp://ai.limsjo.p-e.kr/index.php
hxxp://ol.negapa.p-e.kr/index.php
hxxp://ai.negapa.p-e.kr/index.php
hxxp://coolsystem.co.kr/admin/mail/index.php
[1].https://asec.ahnlab.com/en/59387/
IoC
17ccb0832c3382b5f9e86236e035d899a351c98f3871080c138d4494218cbbc2b6f9dc43705ed97e8b0b09f25752302094e0d297151f67b22328af95610f72f1
19c2decfa7271fa30e48d4750c1d18c1
27ef6917fe32685fdf9b755eb8e97565
7457dc037c4a5f3713d9243a0dfb1a2c
7b6d02a459fdaa4caa1a5bf741c4bd42
87429e9223d45e0359cd1c41c0301836
88f183304b99c897aacfa321d58e1840
c8e7b0d3b6afa22e801cacaf16b37355
d259ef7500e7e667afc42e9570f9707a
d6abeeb469e2417bbcd3c122c06ba099
eb8d073840e95cf24c9c3f5a2b6470e0
http://ai.kostin.p-e.kr/index.php
http://ai.limsjo.p-e.kr/index.php
http://ai.negapa.p-e.kr/index.php
http://ar.kostin.p-e.kr/index.php
http://coolsystem.co.kr/admin/mail/index.php
http://ol.negapa.p-e.kr/index.php
http://qi.limsjo.p-e.kr/index.php
19c2decfa7271fa30e48d4750c1d18c1
27ef6917fe32685fdf9b755eb8e97565
7457dc037c4a5f3713d9243a0dfb1a2c
7b6d02a459fdaa4caa1a5bf741c4bd42
87429e9223d45e0359cd1c41c0301836
88f183304b99c897aacfa321d58e1840
c8e7b0d3b6afa22e801cacaf16b37355
d259ef7500e7e667afc42e9570f9707a
d6abeeb469e2417bbcd3c122c06ba099
eb8d073840e95cf24c9c3f5a2b6470e0
http://ai.kostin.p-e.kr/index.php
http://ai.limsjo.p-e.kr/index.php
http://ai.negapa.p-e.kr/index.php
http://ar.kostin.p-e.kr/index.php
http://coolsystem.co.kr/admin/mail/index.php
http://ol.negapa.p-e.kr/index.php
http://qi.limsjo.p-e.kr/index.php