时间 : 2023年07月31日 来源: 安天CERT
安天CERT近期发现APT组织Konni的攻击活动,结合诱饵文件内容及以往的攻击活动推测,此次攻击可能为针对韩国企业进行的网络攻击。APT组织Konni的攻击活动最早可以追溯至2014年,并一直活跃至今。该组织长期针对俄罗斯、韩国等国家进行定向攻击活动,擅长使用社会热点话题作为诱饵对目标进行鱼叉式网络钓鱼攻击。
近期发现,Konni组织可能通过向目标投递与税务相关的ZIP文件实施攻击。在用户打开ZIP文件内的诱饵LNK文件时,执行设置好的PowerShell指令,打开LNK文件内包含的掩饰文档以及压缩包,执行压缩包内的脚本文件,设置注册表实现持久化机制,获取目标机的部分文件列表、进程列表等基础信息并回传至服务端,最终下载后续载荷并执行。
表2-1 ZIP文件
原始文件名 |
|
文件名中译 |
关于要求提交说明材料的指南 |
MD5 |
24949137f4a88bee8a11e0060a5eeb11 |
文件大小 |
|
VT首次上传时间 |
2023-06-29 08:14:39 UTC |
VT检测结果 |
21/61 |
Konni组织可能通过钓鱼攻击的手法投递税务相关主题的ZIP文件,ZIP文件内容如下表:
表2-2 ZIP文件内容
소명자료 목록(국세징수법 시행규칙).hwp.lnk |
申明资料目录(国税征收法实施规则) |
인지세 조사 보고서(인지세 사무처리규정).hwp |
印花税调查报告(印花税事务处理规定) |
자금출처명세서(부가가치세법
시행규칙).hwp |
资金来源清单(增值税法实施规则) |
ZIP文件的内容如下图所示:
图2-1 ZIP文件内容
表2-3 LNK文件
原始文件名 |
소명자료 목록(국세징수법 시행규칙).hwp.lnk |
文件名中译 |
申明资料目录(国税征收法实施规则) |
MD5 |
395b6399fea137783ffdac84f2d4c256 |
文件大小 |
336.54 MB (352885746 bytes) |
VT首次上传时间 |
2023-06-29
08:15:25 UTC |
VT检测结果 |
21/59 |
上表中的LNK文件包含在ZIP文件内,LNK文件指向攻击者构造的一段PowerShell代码,该代码用于解码其中十六进制编码的数据并执行,将这段PowerShell代码提取出来如下所示。
图2-2 LNK文件指向的PowerShell代码
解码后的内容用于释放掩饰文档소명자료 목록(국세징수법 시행규칙).hwp到LNK文件所在的目录、删除LNK文件、提取内嵌的ZIP文件并将ZIP文件中的条目提取到%public%\documents目录下,最终执行start.vbs。
图2-3 释放后续文件
LNK文件内存储的掩饰文档及ZIP文件数据相连,数据结构如下图所示。
图2-4 LNK文件内存储的掩饰文档及ZIP文件
LNK文件释放的掩饰文档正文内容如下所示。
图2-5 소명자료 목록(국세징수법 시행규칙).hwp 申明资料目录(国税征收法实施规则)
ZIP文件内包含的条目及对应文件的功能如下所示。
图2-6 ZIP文件内包含的条目
表2-4 ZIP内的文件及对应功能
文件名 |
主要功能 |
start.vbs |
调用78788188.bat |
78788188.bat |
调用23965250.bat、27355145.bat,调用60937671.bat下载.cab格式的文件并解压,执行解压出的temprun.bat |
23965250.bat |
调用60937671.bat,下载97157.zip文件,解压出压缩包中的文件,获取压缩包中第一个条目对应的文件,通过rundll32.exe执行其Run导出函数 |
27355145.bat |
获取C:\Users\%username%目录下downloads、documents、desktop以及C:\Program Files中的文件及文件夹列表,获取当前进程列表及系统信息,调用28499076.bat将数据传回服务端 |
28499076.bat |
加密及传输数据 |
60937671.bat |
下载文件,可根据传递的第三个参数来选择是否进行加密传输。 |
unzip.exe |
解压程序,白文件 |
ZIP文件内各文件之间的调用关系如下图所示:
图2-7 调用关系图
start.vbs,该文件用于执行78788188.bat文件。
图2-8 Start.vbs文件
78788188.bat,执行流程如下:
1) 判断是否存在23965250.bat,如果存在23965250.bat,会将Start.vbs添加至注册表RUN中实现开机自启动,执行23965250.bat、27355145.bat后删除23965250.bat文件。如果不存在23965250.bat,判断是否存在upok.txt文件,如果upok.txt存在,执行步骤2);如果upok.txt不存在,执行27355145.bat,该文件用于收集本地数据并回传至服务端,然后执行步骤2)。
2) 判断是否存在pakistan.txt,如果存在pakistan.txt,删除该文件并退出;如果不存在pakistan.txt,执行步骤3)。
3) 判断是否存在temprun.bat,如果存在temprun.bat,删除该文件,执行步骤4);如果不存在temprun.bat,直接执行步骤4)。
4) 执行60937671.bat,该文件用于下载文件。传递参数http[:]//overseeby.com/list.php?f=%COMPUTERNAME%.txt、%~dp0SbJAZ.cab、1,下载SbJAZ.cab文件。如果第三个参数为0,会进行加密传输。以上操作完成后,执行步骤5)。
5) 解压SbJAZ.cab到当前路径下,而后删除SbJAZ.cab并执行temprun.bat。以上操作完成后,执行步骤6)。
6) 等待57秒,再次判断是否存在pakistan.txt,如果不存在pakistan.txt,跳到步骤3)继续执行。若存在pakistan.txt,删除该文件并退出。
图2-9 78788188.bat文件
23965250.bat,执行流程如下:
1) 调用60937671.bat,发送http请求,下载97157.zip文件,请求的网址为https[:]//naver.cloudfiles001.com/v2/read/get.php?hs=ln3&fj=bv8702。然后判断下载是否成功,如果97157.zip文件存在,执行步骤2)。如果该文件不存在,退出。
2) 获取压缩包中的第一个条目的名字,如果该名字存在,以字符a作为密码解压97157.zip,而后删除压缩包,执行步骤3);若该名字不存在,直接删除压缩包并退出。
3) 判断压缩包中的第一个条目对应的文件是否存在。若存在,使用rundll32.exe执行该文件的Run导出函数,等待60s;若不存在,等待60s,退出。此次操作将会循环执行三次。
图2-10 23965250.bat文件
27355145.bat,执行流程如下:
1) 获取C:\Users\%username%目录下downloads、documents、desktop以及C:\Program Files中的文件及文件夹列表,并将其输出到bat文件所在目录对应的cuserdown.txt、cuserdocu.txt、cuserdesk.txt、cprot.txt中。然后通过nslookup命令获取myip.opendns.com、resolver1.opendns.com的域名解析地址,通过tasklist和systeminfo获取进程列表和系统信息,将他们分别输出到对应的ipinfo.txt、tsklt.txt、systeminfo.txt中,然后执行步骤2)。
2) 等待5秒后,调用28499076.bat,将其加密处理后上传到http[:]//overseeby.com/upload.php地址。
图2-11 27355145.bat
28499076.bat,该文件内部存在一个自定义的加密函数,获取当前时间作为密钥。该文件的主要功能为加密27355145.bat生成的存放信息的txt文件,并将传入的带有计算机名称的文件名在加密后,与key和加密后的txt文件一同上传到指定的URL。在上传成功后会删除txt文件并在当前目录下新建一个upok.txt文件。
图2-12 28499076.bat
60937671.bat,主要功能用于下载文件,可根据传递的第三个参数来选择是否进行加密传输。若选择加密传输,则会获取当前时间作为密钥,并将其作为参数添加到URL中传递至服务端。
图2-13 60937671.bat
根据初始压缩包内的诱饵文档以及脚本代码的相似性进行关联,发现了几个同为税务主题的压缩包,压缩包内同样包含LNK文件,且LNK文件中的掩饰文档与ZIP数据相连。将包含在LNK文件内的ZIP内容提取出来,发现内部脚本的功能大致相同,部分文件在传输加密、变量命名和文件命名上存在不同。
对关联到的所有文件进行分析,压缩包内的恶意LNK文件及对应域名列表如下所示:
表3-1 LNK文件对应的hash、文件名及域名列表
MD5 |
文件名 |
文件名中译 |
域名 |
c63b1fb883288d9e02e252ea6aca41e8 |
비정기 세무조사
통지서.hwp.lnk |
税务稽查异常通知书 |
breezyhost.net naver.files001.com |
58d726099fdd9fdb8c34e96e13473aa4 |
비정기 세무조사 통지서.hwp.lnk |
税务稽查异常通知书 |
centhosting.net naver.drive001.com |
b132c1ff68e000a70b3c085cfdd72feb |
소명자료 목록(국세징수법 시행규칙).hwp.lnk |
说明材料清单(国税征收法施行细则) |
centhosting.net naver.drive001.com |
b3700ba8ea405008d39d0f1c8a8bdebe |
소명자료 목록(국세징수법
시행규칙).hwp.lnk |
说明材料清单(国税征收法施行细则) |
drvcast.com naver.down001.com |
cda1c98ae070f23ebd3ea1cd3ef2eb8b |
감정평가 실시에
따른
협조
안내.hwp.lnk |
根据评估合作指南 |
drvism.com naver.down001.com |
81101978f4920d9bf1ff29adb4cf87f9 |
소명자료 목록(국세징수법
시행규칙).hwp.lnk |
说明材料清单(国税征收法施行细则) |
elinline.com cachecast001.com |
d668a24ca81e99750fc0808dec51f69e |
소명자료 목록(국세징수법 시행규칙).hwp.lnk |
说明材料清单(国税征收法施行细则) |
headsity.com naver.bigfile020.com |
其中最早发现的两个文件的上传、下载功能的脚本文件内并无加密函数。
图3-1 早期攻击活动中用于文件上传、下载的脚本
图3-2 之后捕获到的攻击活动中用于文件上传、下载的脚本
此次捕获到的样本中,存在从伪装成韩国Naver公司相关的URL中下载文件的行为,具体URL如下表所示:
表3-2 URL列表
https[:]//naver.cloudfiles001.com/v2/read/get.php?hs=ln3&fj=bv8702 |
https[:]//naver.down001.com/v2/read/get.php?nr=ln3&ps=xu6502 |
https[:]//naver.files001.com/v2/read/get.php?fe=ln3^&mp=xu6501 |
https[:]//naver.drive001.com/v2/read/get.php?ra=ln3^&zw=xu6501 |
https[:]//cachecast001.com/v2/read/get.php?vw=ln3&nv=xu6502 |
https[:]//naver.bigfile020.com/v2/read/get.php?si=ln3&fq=xu6502 |
归因分析:
诱饵文件类型均为HWP文件,为韩国常用的文档格式。诱饵文件的文件名与内容所用语言均为韩语,且诱饵文档内容为税务相关内容,与以往Konni组织的攻击目标相符[1]。
在代码层面,仍沿用之前的脚本模式来进行文件的调用、初步的信息收集、文件的上传与下载,代码结构及内容与以往攻击活动相似程度较高,部分内容存在重叠。
图3-3 左侧为本次攻击活动中的信息收集脚本,右侧为以往攻击活动中的信息收集脚本[2]
图3-4 左侧为本次攻击活动中用作文件调用和下载的脚本,右侧为以往攻击活动中用作文件调用和下载的脚本[2]
本次捕获到的Konni组织疑似针对韩国企业的攻击活动共涉及ATT&CK框架中9个阶段的15个技术点,具体行为描述如下表:
表4-1 本次Konni组织攻击活动的技术行为描述表
ATT&CK阶段/类别 |
具体行为 |
注释 |
资源开发 |
获取基础设施 |
攻击者创建载荷挂载站点 |
初始访问 |
网络钓鱼 |
推测投递钓鱼邮件进行攻击 |
执行 |
利用计划任务/工作 |
start.vbs添加到注册表RUN中实现持久化 |
诱导用户执行 |
诱导用户打开压缩包内的LNK文件 |
|
持久化 |
利用计划任务/工作 |
start.vbs添加到注册表RUN中实现持久化 |
防御规避 |
反混淆/解码文件或信息 |
LNK文件中的PowerShell代码会解码其中包含的十六进制数据 |
发现 |
发现文件和目录 |
通过dir命令获取主机当前用户下默认的downloads、documents、desktop以及C:\Program Files文件夹中的内容 |
发现进程 |
通过tasklist获取当前环境下的进程列表 |
|
发现系统信息 |
通过systeminfo获取系统信息 |
|
发现系统所有者/用户 |
通过环境变量获取当前用户名 |
|
收集 |
压缩/加密收集的数据 |
上传与下载前存在可选择的加密选项 |
自动收集 |
自动收集主机中的特定目录的文件列表、进程列表、系统信息 |
|
收集本地系统数据 |
通过systeminfo获取系统信息 |
|
数据暂存 |
收集的信息都会存在脚本所在目录 |
|
命令与控制 |
使用应用层协议 |
文件的上传与下载通过http或https协议传输 |
数据渗出 |
自动渗出数据 |
收集的数据会自动回传 |
将涉及到的威胁行为技术点映射到ATT&CK框架如下图所示:
图4-1 本次Konni组织攻击活动对应的ATT&CK映射图
根据捕获的样本内容并结合已有情报来看,Konni组织从今年年初开始便以采用税务相关主题的诱饵进行钓鱼攻击。该组织继续沿用以往的LNK攻击手法,将恶意脚本文件添加到压缩包内并嵌入LNK文件中,待受害者打开LNK文件,执行恶意脚本文件,下载后续载荷。相比于早些时间捕获到的样本,差别主要存在于脚本中新增的数据传输前的加密功能。
HASH |
24949137f4a88bee8a11e0060a5eeb11 |
abe4bd39d7a5729b2e9ff1835f55eb62 |
00c85f0aa5f0c3ce51505cf807fd5af3 |
7e5cc47880bf2ccd244cf925093d2d16 |
2b2310574eb43608eec2540782e08b35 |
fa016406e48a8ac27102aa4b38c75d8c |
c62a1fb8d29db14fc89fe67430f6bf30 |
c63b1fb883288d9e02e252ea6aca41e8 |
58d726099fdd9fdb8c34e96e13473aa4 |
b132c1ff68e000a70b3c085cfdd72feb |
b3700ba8ea405008d39d0f1c8a8bdebe |
cda1c98ae070f23ebd3ea1cd3ef2eb8b |
81101978f4920d9bf1ff29adb4cf87f9 |
d668a24ca81e99750fc0808dec51f69e |
Domain |
overseeby.com |
drvcast.com |
drvism.com |
breezyhost.net |
centhosting.net |
elinline.com |
headsity.com |
naver.cloudfiles001 |
naver.down001.com |
naver.files001.com |
naver.drive001.com |
cachecast001.com |
naver.bigfile020.com |
URL |
http[:]//overseeby.com/list.php?f=%COMPUTERNAME%.txt |
http[:]//drvcast.com/list.php?f=%COMPUTERNAME%.txt |
http[:]//drvism.com/list.php?f=%COMPUTERNAME%.txt |
http[:]//breezyhost.net/list.php?q=%COMPUTERNAME%.txt |
http[:]//centhosting.net/list.php?q=%COMPUTERNAME%.txt |
http[:]//elinline.com/list.php?f=%COMPUTERNAME%.txt |
http[:]//headsity.com/list.php?f=%COMPUTERNAME%.txt |
https[:]//naver.cloudfiles001.com/v2/read/get.php?hs=ln3&fj=bv8702 |
https[:]//naver.down001.com/v2/read/get.php?nr=ln3&ps=xu6502 |
https[:]//naver.files001.com/v2/read/get.php?fe=ln3^&mp=xu6501 |
https[:]//naver.drive001.com/v2/read/get.php?ra=ln3^&zw=xu6501 |
https[:]//cachecast001.com/v2/read/get.php?vw=ln3&nv=xu6502 |
https[:]//naver.bigfile020.com/v2/read/get.php?si=ln3&fq=xu6502 |
http[:]//overseeby.com/upload.php |
http[:]//drvcast.com/upload.php |
http[:]//drvism.com/upload.php |
http[:]//breezyhost.net/upload.php |
http[:]//centhosting.net/upload.php |
https[:]//seriaerwo.com/uld17/upload.php |
http[:]//elinline.com/upload.php |
http[:]//headsity.com/upload.php |