01
概述
近日,安天CERT监测到CNC组织对我国某单位发起的基于鱼叉式钓鱼邮件的定向窃取信息攻击活动。CNC组织最早于2019年被发现,依据其使用的远程控制木马的PDB路径信息中包含的”cnc_client”,该组织被命名为CNC。该组织主要针对军工、科研、教育等行业进行攻击。
此次攻击活动中,攻击者向目标群发鱼叉式钓鱼攻击邮件,附件投递的恶意程序伪装成“国家科技成果登记系统”程序,诱导目标点击执行触发后续组件的下载、执行,实现对受害者主机的远程控制、敏感文件窃取、浏览器凭证窃取等恶意行为,以及通过可移动存储介质复制木马的传播。
从整个鱼叉攻击邮件、能力组件、载荷托管、控制通讯、网络资产等层面梳理分析来看,此次攻击事件与2022年CNC组织的攻击活动手法基本一致,与CNC组织存在多方面的的高度重叠。
02
攻击流程分析
此次攻击活动涉及的钓鱼邮件主题为“关于开展2022年度科技成果登记统计工作的通知”,正文如下图所示,附件中包含伪装成为“国家科技成果登记系统[V11.0].exe”的木马程序及其他正常文件,部分邮件正文中会嵌入远程图片链接,链接资源由攻击者服务器提供,攻击者可以此知晓受害者是否阅读过邮件。
图2‑1 鱼叉邮件示例
当收件人点击运行附件木马程序后,会开始下载释放一系列恶意的功能组件,后期落地的组件主要通过攻击者下发的Powershell命令来执行启动,依据落地时间排序如下:
表2‑1 后续落地恶意组件
组件落地路径
功能描述
C:ProgramDataUSOSharedYoudaoDictsrv.exe
下载器,疑似下载ZotUpdater.exe
%AppData%LocalTempZotUpdater.exe
解密资源节载荷,建立远程CMD Shell
%AppData%LocalTslGameTslwmc.exe
文件窃取信息器,搜集价值性文件并建立列表
C:Users*用户名*.sshknown_hosts
SSH连接远程C2控制受害主机
%AppData%LocalTslGameSumatraPDFUpdate.exe
上传器,将价值性文件通过FTP上传
%AppData%Roamingimagedrvhost.exe
搜集进程列表,联网时下载后续载荷,断网时复制自身至接入的外部移动存储设备
%AppData%LocalTempsess.exe
窃取受害者浏览器缓存的邮箱访问记录
基于目前掌握的信息,我们推测整个攻击流程的执行关系如图所示,由于部分组件信息相对缺失,猜测的流程部分通过虚线表示:
图2‑2 推测攻击流程图
03
样本分析
3.1 “国家科技成果登记系统[V11.0].exe”
表3‑1 YoudaoDictsrv样本标签
原始文件名
国家科技成果登记系统[V11.0].exe
文件大小
832,000字节
文件格式
Win64 EXE
时间戳
2023:01:10 13:14:24 UTC+8
国家科技成果登记系统[V11.0].exe作为最初的恶意程序,被受害人点击运行后首先获取受害机的进程列表,将其同“FTFY3779-”字符拼接后进行base64编码,最后将编码结果向https://149.154.***.***/setlocale-utf8.php?modload作为上线包发送:
图3‑1 上线包发送到指定的URL
图3‑2 编码前的进程列表
然后样本寻找C:ProgramDataUSOshared目录,若未找到则创建该目录。
图3‑3 判断C:ProgramDataUSOshared目录是否存在
随后拼接IP链接字符串,从指定的URL下载恶意组件YoudaoDictsrv.exe,并根据连接状态选择后续操作。
图3‑4 下载恶意组件
若链接可连接,则判断返回的数据中是否包含Not Found,若包含“Not Found”会在睡眠60s后会重新请求该URL下载恶意组件。
图3‑5 字符串比较
图3‑6 睡眠60s后重新下载
如果不包含“Not Found”将下载的文件复制到C:ProgramDataUSOsharedYoudaoDictsrv.exe。
图3‑7 复制文件
若IP链接已经不可连接,则拼接Github链接,从Github存储库中下载恶意组件,具体操作同上。
图3‑8 从Github存储库内下载恶意组件
如果上述YoudaoDictsrv.exe文件下载成功,则创建计划任务用于执行YoudaoDictsrv.exe,每隔15分钟执行一次,并根据下载和创建计划任务的结果构建回传信息:DD3656774YS代表下载成功,DD3656774NS代表下载失败;T636779AD代表计划任务创建成功,T636779ND代表计划任务创建失败。
图3‑9 受害机中的计划任务
运行附件plugin目录下的UpdateHelper.exe,该程序为合法的国家科技成果登记系统安装包:
图3‑10 运行安装程序
图3‑11 安装程序截图
如果上述的计划任务创建失败,则通过调用CreateProcessA执行上述文件(C:ProgramDataUSOsharedYoudaoDictsrv.exe)。根据静态分析推测,如果YoudaoDictsrv.exe启动失败,则会删除该文件后会重新从上述Github存储库中获取恶意载荷,以此确保YoudaoDictsrv.exe被正常部署:
图3‑12 获取恶意组件
3.2 YoudaoDictsrv.exe
表3‑1 YoudaoDictsrv样本标签
原始文件名
YoudaoDictsrv.exe
文件大小
4,675,584字节
文件格式
Win64 EXE
时间戳
2022:12:21 14:06:20 UTC+8
YoudaoDictsrv运行后首先判断执行主机C盘可用空间大小,可能用以规避沙箱分析。随后解码一个Windows系统hosts文件路径,判断hosts文件中是否存在指定项“en.haozip.com”:
图 3‑13 判断hosts中是否存在en.haozip.com
然后解密和拼接链接地址获取后续载荷,访问的地址有以下三个,截至分析时链接都已失效:
https://172.86.***.***/banner-logo/KTTbMbYcJTJEYCU/jquery-cn.js
https://raw.githubusercontent.com/***/mainid/main/license-plate
https://raw.githubusercontent.com/***/mainid/main/license-plate
载荷保存于临时目录下的“TM4358834”文件,最终落地文件名根据响应内容中的“icons.favicon.ico@”或“ttfontsid=”指定,此次疑似下载对象是以下的ZotUpdater.exe程序。
3.3 ZotUpdater.exe
表 3‑2 ZotUpdater样本标签
原始文件名
ZotUpdater.exe
文件大小
4,953,600字节
文件格式
Win64 EXE
时间戳
2023:01:03 15:20:08 UTC+8
ZotUpdater程序的功能为提取资源中的文件解密执行,资源中文件通过自定义的base64算法加密,解密后为可执行文件:
表 3‑3资源节载荷样本标签
原始文件名
无
MD5
AF4857E07EFD35D8FCAA200DF24DD416
文件大小
57,672,228字节
文件格式
Win64 EXE
时间戳
2022:12:26 18:49:57 UTC+8
解密后的可执行文件运行后,首先连接解密后的C2地址(88.119.***.***:443):
图3‑14 解密C2地址
然后创建管道,向C2地址反弹CMD远程Shell:
图3‑15 反弹远程CMD Shell
当C2响应内容为“bgn”时,样本通过访问https://raw.githubusercontent.com/***/service/main/data,获取文件数据,解密出另一个C2地址以供切换:
图3‑16 Github托管的备用地址数据
分析过程中解密出的另一个C2地址为:151.236.***.***:443。根据攻击者后续通过下发Powershell命令操作组件和实现功能来看,这里ZotUpdater程序建立的远程Shell可能被用于基于Powershell的远程管理。
3.4 Tslwmc.exe
表 3‑4 Tslwmc样本标签
原始文件名
Tslwmc.exe
文件大小
3,899,392 字节
文件格式
Win64 EXE
时间戳
2022:11:30 12:21:59 UTC+8
Tslwmc被Powershell命令调用执行,运行后首先判断执行主机C盘可用空间大小是否大于97GB,可能用以规避沙箱分析。随后解码C2地址194.36.***.***,并获取“最近使用的文件”路径,检查该路径是否为以下后缀类型的文件(docpptxlstxt)并回传:
图3‑17 根据快捷方式找到文件路径
图3‑18 搜寻指定后缀名的文件
然后将已经回传成功的文件路径写入到%temp%TMP48838.txt中,并将本机的用户名信息发送到C2:
图3‑19 发送本机用户名至C2
3.5 SumatraPDFUpdate.exe
表3‑5 SumatraPDFUpdate样本标签
原始文件名
SumatraPDFUpdate.exe
文件大小
4,811,264字节
文件格式
Win64 EXE
时间戳
2023:01:17 20:26:27 UTC+8
SumatraPDFUpdate被Powershell命令调用执行,功能上是一个硬编码了窃取信息路径的定制化文件窃取信息器,运行后会建立待窃取信息目录和临时缓存目录的对应关系,临时缓存目录在TEMP目录下以fxnshn%dzxnshn%d.txt格式命名,待上传文件被打包并以%d.zip格式命名:
图 3‑20 临时目录下的窃取信息缓存目录
最后SumatraPDFUpdate通过ftp的方式加密通信传输到地址:
ftp://u1:[email protected].***.***:49032/T6re7ty5y34dy/
3.6 imagedrvhost.exe
表 3‑6 imagedrvhost样本标签
原始文件名
imagedrvhost.exe
文件大小
1,416,192 字节
文件格式
Win64 EXE
时间戳
2023:03:21 14:00:15 UTC+8
imagedrvhost被Powershell命令调用执行,执行后先检查C盘空间总量是否大于97GB,若小于则会跳过恶意功能并结束执行,可能也是用于规避沙箱分析:
图3‑21 检查C盘空间总量
获取互联网的连接状态。
图3‑22 获取互联网的连接状态
判断当前文件是否处于%appdata%目录下。
图3‑23 判断文件所处目录
若不在%appdata%目录下,从资源中提取图片并打开。
图3‑24 从资源中提取图片并打开
图3‑25 诱饵图片
检查%AppData%Roamingimagedrvhost.exe文件是否存在,若存在则退出当前进程。若不存在,且未连接到互联网,则退出当前进程;若已连接到互联网,则会从“https[:]//146.59.***.***/solution-basic/gecko/SangSupport”中下载恶意组件,将其复制到%appdata%SangSupport.exe并删除%temp%目录下的文件,截至分析时SangSupport链接已失效。
图3‑26 从指定的URL处下载文件
图3‑27 复制及删除操作
如果%appdata%SangSupport.exe文件存在,则会创建计划任务用于执行SangSupport.exe。每隔5分钟执行一次。并根据下载和创建计划任务的结果构建回传信息:7668979XXFGG代表下载成功,7668979NXFGG代表下载失败;658FFTTDD7676代表计划任务创建成功,658FFTTND7676代表计划任务创建失败。
图3‑28 创建计划任务启动SangSupport.exe
图3‑29 创建计划任务
获取进程列表,随后将base64编码的数据附加到URL后作为上线包发送。
图3‑30 获取进程列表
如果imagedrvhost.exe在%appdata%目录下,则会判断是否有新设备的接入。通过判断前一次的驱动器字符串与本次获取到的驱动器字符串是否相同,来确定是否有新设备接入。
图3‑31 获取驱动字符串
图3‑32 字符串比较
若存在新接入的移动存储设备,则将imagedrvhost.exe文件移动到新设备中,疑似以此实现U盘摆渡传播:
图3‑33 将文件移动到新设备中
如果此时连接互联网,则将会将设备信息回传。
图3‑34 回传信息
3.7 sess.exe
表 3‑7 sess样本标签
原始文件名
sess.exe
文件大小
38,357,664 字节
文件格式
Win64 EXE
时间戳
2023:03:07 15:15:18 UTC+8
sess.exe疑似被Powershell命令指向的BAT脚本调用执行,运行后会在%Temp%目录下创建一个名为“_MEIXXXXX”的文件夹,文件名后五位为随机数字,文件夹中内容为pyinstaller工具信息,可以选择带参数执行,参数中包括edge和chrome浏览器,收集这两个浏览器中的history文件复制到当前目录,将参数结果释放到样本当前目录下,以tmpses.txt文本形式存放,工具参数具体功能如下:
图 3‑35 sess.exe工具
表3‑8 参数说明
参数
功能
-b
该参数后面接浏览器名,有三种,edge,chrome和all
-u
该参数后面接用户名
-m
该参数后面接月份
-d
该参数后面接日期
-e
该参数后面接邮箱地址
浏览器收集信息位置如下:
表3‑9 收集信息位置
浏览器
位置
edge
C:\Users\用户名\AppData\Local\Microsoft\Edge\User Data\Default\History
chrome
C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\History
04
归因溯源
通过对鱼叉邮件、能力组件、载荷托管、控制通讯、网络资产等层面进行归因分析,安天CERT发现本次网络攻击事件与CNC组织存在多方面的的技战术重叠:
表4‑1 与CNC组织的同源性
攻击阶段
本次事件
CNC组织历史攻击
受害目标
国内某单位
国内高校、军工、科研院所等
鱼叉邮件投送
自行搭建邮件服务器:
邮服域名:sqqmail.com
邮服IP:185.141.**.**
自行搭建邮件服务器:
邮服域名:webcoremail.com
邮服IP:185.141.24.19
攻击能力
组件的下发与执行:
方式:通过执行Powershell命令
组件的下发与执行:
方式:通过执行Powershell命令
浏览器窃取信息组件:
由Python语言编写后打包,窃取浏览器的邮箱访问历史和凭证等信息
浏览器窃取信息组件:
由Python语言编写后打包,窃取浏览器的历史和凭证等信息
敏感文件窃取组件:
搜集对象:doc、ppt、xls、txt
回传方式:每个文件单独打包,通过FTP上传,打包名为%d.zip
敏感文件窃取组件:
搜集对象:doc、docx、xls、xlsx、ppt
回传方式:每个文件单独打包,通过FTP上,打包名为%d.zip
远程控制能力:
控制方式:
1. 通过SSH与被控主机连接;
2. 通过创建CMD管道;
远程控制能力:
控制方式:通过SSH与被控主机连接
移动介质传播:
通过复制自身至新接入U盘
移动介质传播:
通过复制自身至新接入U盘
屏幕截取能力:
通过Powershell命令截取
屏幕截取能力:
通过.Net截屏木马实现
网络资产
滥用合法托管服务:
创建账号Github托管恶意载荷
滥用合法托管服务:
创建账号Github托管恶意载荷
数字证书加密通讯:
通信过程使用不可信证书,证书颁发对象伪装成国内企事单位
数字证书加密通讯:
通信过程使用不可信证书,证书颁发对象伪装成国内企事单位
意图目的
窃取信息、控制
窃取信息、控制
本次鱼叉邮件的发件IP:185.141.**.**,对应攻击者利用Dovecot开源邮件系统自行搭建的邮件服务器,该IP曾绑定域名webcoremail.com,该域名为2022年已知的CNC组织历史域名资产,且同样曾被用于鱼叉邮件投递阶段的网络基础设施。
图4‑1 发件IP曾绑定CNC历史邮服域名
攻击过程中使用的多个木马组件与已知的CNC组织历史工具存在代码同源性,以本次事件中伪装成“中秋快乐”的图片伪装木马为例对比如下,可以看出属于同一家族:
表4‑2 图片伪装马同源性
同源要点
本次事件的图片伪装马
CNC组织的图片伪装马
文件名伪装
????.png *超长空格* .exe
PrivateImage.png *超长空格* .exe
释放掩饰图片
释放“中秋快乐”图片
释放Happy New year图片
网络连通检查
访问https://www.163.com
访问https://www.baidu.com
复制文件名
imagedrvhost.exe
ImageEditor.exe
载荷保存路径
USOsharedYoudaoDictsrv.exe
usosharedyodaocloudmgr.exe
回传链接
http://146.59.***.***/solution-basic/gecko/SangSupport
http://185.25.51.41/control/utility
/YodaoCloudMgr
通信证书伪装
证书Issuer:
C=CN,ST=Sichuan,L=Zigong
O=Camera Solutions
OU=Service,CN=Xiu Fu
证书Issuer:
C=CN,ST=Fujian,L=Nanping
,O=Animations-Ltd
OU=Technical,CN=Yang bin
本次涉及的载荷分发过程滥用Github代码仓托管服务,C2基础设施大都使用不可信数字证书实现通信加密,这些证书的颁发对象与已知的CNC伪装方法十分类似,都是以我国省市地区、企业名、国内免费邮箱账号的模式命名,例如:
Issuer: C=CN,ST=省份,L=城市,O=企业名称,OU=行业类型,CN=城市,emailAddress=*@163.com
图4‑2 C2通讯不可信证书伪装成国内企事业单位
此外,窃取信息日志文件TMP48838.txt的编码方案被攻击者被指定为“zh_TW.utf8”,根据最终归因结果来看攻击者背景与中国台湾地区无关,该操作意图可能为制造栽赃假旗。
图4‑3 日志文件编码指定为zh_TW.utf8
05
威胁框架映射
本次活动共涉及ATT&CK框架中10个阶段的19个技术点,具体行为描述如下表:
ATT&CK阶段
具体行为
注释
资源开发
获取基础设施
通过Github托管恶意载荷
初始访问
网络钓鱼
通过鱼叉式钓鱼邮件投递至目标机器
执行
利用命令和脚本解释器
通过PowerShell指令执行部分文件
执行
诱导用户执行
伪装成安装包或图片诱导用户执行
执行
利用计划任务/工作
将文件路径添加到计划任务中执行
持久化
利用计划任务/工作
将文件路径添加到计划任务中执行
防御规避
反混淆/解码文件或信息
存在加密的C2字符串等信息,解密后用于后续使用
防御规避
混淆文件或信息
回传的进程信息通过base64编码
防御规避
虚拟化/沙箱逃逸
通过检测C盘大小规避部分沙箱或虚拟机环境
发现
发现浏览器书签
可以获取浏览器的历史记录
发现
发现文件和目录
发现“最近使用的文件”目录中的文件,回传特定后缀(docpptxlstxt)的文件
发现
发现系统信息
发现受害机中的驱动器列表
发现
发现系统网络配置
发现受害机是否联网
横向移动
通过可移动介质复制
检测磁盘列表是否有变动,以便复制到可移动介质中
收集
自动收集
自动收集进程列表、当前用户名、特定文件等
收集
收集本地系统数据
收集进程列表、当前用户名等信息
命令与控制
使用应用层协议
使用应用层协议通信
数据渗出
自动渗出数据
收集到的文件、进程列表等信息自动回传至C2
数据渗出
使用C2信道回传
使用C2信道回传
CNC组织相关攻击活动的行为技术点的ATT&CK框架图谱如下图所示:
06
小结
CNC组织是高度组织化的、专业化的境外国家级黑客组织,自2019年被披露以来,该组织技术手法不断升级变化,持续采用多种传播技术对我方目标进行渗透投放,不断更新对抗技术规避检测达成持久驻留,还利用反分析反溯源技术增加分析师研究的难度。同时该组织的攻击活跃度始终保持不减,目前安天已经发现该组织多起针对我国教育、航天、军工和医疗等行业发起的网络攻击活动,已经成为近年来对我国攻击最为活跃组织之一,安天将会持续跟踪分析与业内同仁共同完善该组织的技战术信息。
参考资料
[1] 针对军工和教育行业的CNC组织“摆渡”木马分析
https://www.antiy.cn/research/notice&report/research_report/20221229.html
往期回顾
攻击流程分析
图2‑1 鱼叉邮件示例
当收件人点击运行附件木马程序后,会开始下载释放一系列恶意的功能组件,后期落地的组件主要通过攻击者下发的Powershell命令来执行启动,依据落地时间排序如下:
组件落地路径 |
功能描述 |
C:ProgramDataUSOSharedYoudaoDictsrv.exe |
下载器,疑似下载ZotUpdater.exe |
%AppData%LocalTempZotUpdater.exe |
解密资源节载荷,建立远程CMD Shell |
%AppData%LocalTslGameTslwmc.exe |
文件窃取信息器,搜集价值性文件并建立列表 |
C:Users*用户名*.sshknown_hosts |
SSH连接远程C2控制受害主机 |
%AppData%LocalTslGameSumatraPDFUpdate.exe |
上传器,将价值性文件通过FTP上传 |
%AppData%Roamingimagedrvhost.exe |
搜集进程列表,联网时下载后续载荷,断网时复制自身至接入的外部移动存储设备 |
%AppData%LocalTempsess.exe |
窃取受害者浏览器缓存的邮箱访问记录 |
图2‑2 推测攻击流程图
样本分析
3.1 “国家科技成果登记系统[V11.0].exe”
表3‑1 YoudaoDictsrv样本标签
原始文件名 |
国家科技成果登记系统[V11.0].exe |
文件大小 |
832,000字节 |
文件格式 |
Win64 EXE |
时间戳 |
2023:01:10 13:14:24 UTC+8 |
国家科技成果登记系统[V11.0].exe作为最初的恶意程序,被受害人点击运行后首先获取受害机的进程列表,将其同“FTFY3779-”字符拼接后进行base64编码,最后将编码结果向https://149.154.***.***/setlocale-utf8.php?modload作为上线包发送:
图3‑1 上线包发送到指定的URL
然后样本寻找C:ProgramDataUSOshared目录,若未找到则创建该目录。
图3‑3 判断C:ProgramDataUSOshared目录是否存在
随后拼接IP链接字符串,从指定的URL下载恶意组件YoudaoDictsrv.exe,并根据连接状态选择后续操作。
图3‑4 下载恶意组件
若链接可连接,则判断返回的数据中是否包含Not Found,若包含“Not Found”会在睡眠60s后会重新请求该URL下载恶意组件。
图3‑5 字符串比较
图3‑6 睡眠60s后重新下载
如果不包含“Not Found”将下载的文件复制到C:ProgramDataUSOsharedYoudaoDictsrv.exe。
图3‑7 复制文件
若IP链接已经不可连接,则拼接Github链接,从Github存储库中下载恶意组件,具体操作同上。
如果上述YoudaoDictsrv.exe文件下载成功,则创建计划任务用于执行YoudaoDictsrv.exe,每隔15分钟执行一次,并根据下载和创建计划任务的结果构建回传信息:DD3656774YS代表下载成功,DD3656774NS代表下载失败;T636779AD代表计划任务创建成功,T636779ND代表计划任务创建失败。
图3‑9 受害机中的计划任务
运行附件plugin目录下的UpdateHelper.exe,该程序为合法的国家科技成果登记系统安装包:
图3‑10 运行安装程序
图3‑11 安装程序截图
如果上述的计划任务创建失败,则通过调用CreateProcessA执行上述文件(C:ProgramDataUSOsharedYoudaoDictsrv.exe)。根据静态分析推测,如果YoudaoDictsrv.exe启动失败,则会删除该文件后会重新从上述Github存储库中获取恶意载荷,以此确保YoudaoDictsrv.exe被正常部署:
图3‑12 获取恶意组件
3.2 YoudaoDictsrv.exe
原始文件名 |
YoudaoDictsrv.exe |
文件大小 |
4,675,584字节 |
文件格式 |
Win64 EXE |
时间戳 |
2022:12:21 14:06:20 UTC+8 |
YoudaoDictsrv运行后首先判断执行主机C盘可用空间大小,可能用以规避沙箱分析。随后解码一个Windows系统hosts文件路径,判断hosts文件中是否存在指定项“en.haozip.com”:
图 3‑13 判断hosts中是否存在en.haozip.com
https://172.86.***.***/banner-logo/KTTbMbYcJTJEYCU/jquery-cn.js
https://raw.githubusercontent.com/***/mainid/main/license-plate
https://raw.githubusercontent.com/***/mainid/main/license-plate
3.3 ZotUpdater.exe
原始文件名 |
ZotUpdater.exe |
文件大小 |
4,953,600字节 |
文件格式 |
Win64 EXE |
时间戳 |
2023:01:03 15:20:08 UTC+8 |
原始文件名 |
无 |
MD5 |
AF4857E07EFD35D8FCAA200DF24DD416 |
文件大小 |
57,672,228字节 |
文件格式 |
Win64 EXE |
时间戳 |
2022:12:26 18:49:57 UTC+8 |
解密后的可执行文件运行后,首先连接解密后的C2地址(88.119.***.***:443):
图3‑14 解密C2地址
然后创建管道,向C2地址反弹CMD远程Shell:
图3‑15 反弹远程CMD Shell
当C2响应内容为“bgn”时,样本通过访问https://raw.githubusercontent.com/***/service/main/data,获取文件数据,解密出另一个C2地址以供切换:
图3‑16 Github托管的备用地址数据
分析过程中解密出的另一个C2地址为:151.236.***.***:443。根据攻击者后续通过下发Powershell命令操作组件和实现功能来看,这里ZotUpdater程序建立的远程Shell可能被用于基于Powershell的远程管理。
3.4 Tslwmc.exe
原始文件名 |
Tslwmc.exe |
文件大小 |
3,899,392 字节 |
文件格式 |
Win64 EXE |
时间戳 |
2022:11:30 12:21:59 UTC+8 |
Tslwmc被Powershell命令调用执行,运行后首先判断执行主机C盘可用空间大小是否大于97GB,可能用以规避沙箱分析。随后解码C2地址194.36.***.***,并获取“最近使用的文件”路径,检查该路径是否为以下后缀类型的文件(docpptxlstxt)并回传:
图3‑17 根据快捷方式找到文件路径
图3‑18 搜寻指定后缀名的文件
然后将已经回传成功的文件路径写入到%temp%TMP48838.txt中,并将本机的用户名信息发送到C2:
图3‑19 发送本机用户名至C2
3.5 SumatraPDFUpdate.exe
原始文件名 |
SumatraPDFUpdate.exe |
文件大小 |
4,811,264字节 |
文件格式 |
Win64 EXE |
时间戳 |
2023:01:17 20:26:27 UTC+8 |
图 3‑20 临时目录下的窃取信息缓存目录
3.6 imagedrvhost.exe
原始文件名 |
imagedrvhost.exe |
文件大小 |
1,416,192 字节 |
文件格式 |
Win64 EXE |
时间戳 |
2023:03:21 14:00:15 UTC+8 |
imagedrvhost被Powershell命令调用执行,执行后先检查C盘空间总量是否大于97GB,若小于则会跳过恶意功能并结束执行,可能也是用于规避沙箱分析:
图3‑21 检查C盘空间总量
获取互联网的连接状态。
图3‑22 获取互联网的连接状态
判断当前文件是否处于%appdata%目录下。
图3‑23 判断文件所处目录
若不在%appdata%目录下,从资源中提取图片并打开。
图3‑24 从资源中提取图片并打开
图3‑25 诱饵图片
检查%AppData%Roamingimagedrvhost.exe文件是否存在,若存在则退出当前进程。若不存在,且未连接到互联网,则退出当前进程;若已连接到互联网,则会从“https[:]//146.59.***.***/solution-basic/gecko/SangSupport”中下载恶意组件,将其复制到%appdata%SangSupport.exe并删除%temp%目录下的文件,截至分析时SangSupport链接已失效。
图3‑26 从指定的URL处下载文件
图3‑27 复制及删除操作
如果%appdata%SangSupport.exe文件存在,则会创建计划任务用于执行SangSupport.exe。每隔5分钟执行一次。并根据下载和创建计划任务的结果构建回传信息:7668979XXFGG代表下载成功,7668979NXFGG代表下载失败;658FFTTDD7676代表计划任务创建成功,658FFTTND7676代表计划任务创建失败。
图3‑28 创建计划任务启动SangSupport.exe
图3‑29 创建计划任务
获取进程列表,随后将base64编码的数据附加到URL后作为上线包发送。
图3‑30 获取进程列表
如果imagedrvhost.exe在%appdata%目录下,则会判断是否有新设备的接入。通过判断前一次的驱动器字符串与本次获取到的驱动器字符串是否相同,来确定是否有新设备接入。
图3‑31 获取驱动字符串
图3‑32 字符串比较
若存在新接入的移动存储设备,则将imagedrvhost.exe文件移动到新设备中,疑似以此实现U盘摆渡传播:
图3‑33 将文件移动到新设备中
如果此时连接互联网,则将会将设备信息回传。
图3‑34 回传信息
3.7 sess.exe
原始文件名 |
sess.exe |
文件大小 |
38,357,664 字节 |
文件格式 |
Win64 EXE |
时间戳 |
2023:03:07 15:15:18 UTC+8 |
sess.exe疑似被Powershell命令指向的BAT脚本调用执行,运行后会在%Temp%目录下创建一个名为“_MEIXXXXX”的文件夹,文件名后五位为随机数字,文件夹中内容为pyinstaller工具信息,可以选择带参数执行,参数中包括edge和chrome浏览器,收集这两个浏览器中的history文件复制到当前目录,将参数结果释放到样本当前目录下,以tmpses.txt文本形式存放,工具参数具体功能如下:
图 3‑35 sess.exe工具
参数 |
功能 |
-b |
该参数后面接浏览器名,有三种,edge,chrome和all |
-u |
该参数后面接用户名 |
-m |
该参数后面接月份 |
-d |
该参数后面接日期 |
-e |
该参数后面接邮箱地址 |
浏览器 |
位置 |
edge |
C:\Users\用户名\AppData\Local\Microsoft\Edge\User Data\Default\History |
chrome |
C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\History |
归因溯源
通过对鱼叉邮件、能力组件、载荷托管、控制通讯、网络资产等层面进行归因分析,安天CERT发现本次网络攻击事件与CNC组织存在多方面的的技战术重叠:
攻击阶段 |
本次事件 |
CNC组织历史攻击 |
受害目标 |
国内某单位 |
国内高校、军工、科研院所等 |
鱼叉邮件投送 |
自行搭建邮件服务器: 邮服域名:sqqmail.com 邮服IP:185.141.**.** |
自行搭建邮件服务器: 邮服域名:webcoremail.com 邮服IP:185.141.24.19 |
攻击能力 |
组件的下发与执行: 方式:通过执行Powershell命令 |
组件的下发与执行: 方式:通过执行Powershell命令 |
浏览器窃取信息组件: 由Python语言编写后打包,窃取浏览器的邮箱访问历史和凭证等信息 |
浏览器窃取信息组件: 由Python语言编写后打包,窃取浏览器的历史和凭证等信息 |
|
敏感文件窃取组件: 搜集对象:doc、ppt、xls、txt 回传方式:每个文件单独打包,通过FTP上传,打包名为%d.zip |
敏感文件窃取组件: 搜集对象:doc、docx、xls、xlsx、ppt 回传方式:每个文件单独打包,通过FTP上,打包名为%d.zip |
|
远程控制能力: 控制方式: 1. 通过SSH与被控主机连接; 2. 通过创建CMD管道; |
远程控制能力: 控制方式:通过SSH与被控主机连接 |
|
移动介质传播: 通过复制自身至新接入U盘 |
移动介质传播: 通过复制自身至新接入U盘 |
|
屏幕截取能力: 通过Powershell命令截取 |
屏幕截取能力: 通过.Net截屏木马实现 |
|
网络资产 |
滥用合法托管服务: 创建账号Github托管恶意载荷 |
滥用合法托管服务: 创建账号Github托管恶意载荷 |
数字证书加密通讯: 通信过程使用不可信证书,证书颁发对象伪装成国内企事单位 |
数字证书加密通讯: 通信过程使用不可信证书,证书颁发对象伪装成国内企事单位 |
|
意图目的 |
窃取信息、控制 |
窃取信息、控制 |
图4‑1 发件IP曾绑定CNC历史邮服域名
同源要点 |
本次事件的图片伪装马 |
CNC组织的图片伪装马 |
文件名伪装 |
????.png *超长空格* .exe |
PrivateImage.png *超长空格* .exe |
释放掩饰图片 |
释放“中秋快乐”图片 |
释放Happy New year图片 |
网络连通检查 |
访问https://www.163.com |
访问https://www.baidu.com |
复制文件名 |
imagedrvhost.exe |
ImageEditor.exe |
载荷保存路径 |
USOsharedYoudaoDictsrv.exe |
usosharedyodaocloudmgr.exe |
回传链接 |
http://146.59.***.***/solution-basic/gecko/SangSupport |
http://185.25.51.41/control/utility /YodaoCloudMgr |
通信证书伪装 |
证书Issuer: C=CN,ST=Sichuan,L=Zigong O=Camera Solutions OU=Service,CN=Xiu Fu |
证书Issuer: C=CN,ST=Fujian,L=Nanping ,O=Animations-Ltd OU=Technical,CN=Yang bin |
本次涉及的载荷分发过程滥用Github代码仓托管服务,C2基础设施大都使用不可信数字证书实现通信加密,这些证书的颁发对象与已知的CNC伪装方法十分类似,都是以我国省市地区、企业名、国内免费邮箱账号的模式命名,例如:
Issuer: C=CN,ST=省份,L=城市,O=企业名称,OU=行业类型,CN=城市,emailAddress=*@163.com
图4‑2 C2通讯不可信证书伪装成国内企事业单位
图4‑3 日志文件编码指定为zh_TW.utf8
本次活动共涉及ATT&CK框架中10个阶段的19个技术点,具体行为描述如下表:
ATT&CK阶段 |
具体行为 |
注释 |
资源开发 |
获取基础设施 |
通过Github托管恶意载荷 |
初始访问 |
网络钓鱼 |
通过鱼叉式钓鱼邮件投递至目标机器 |
执行 |
利用命令和脚本解释器 |
通过PowerShell指令执行部分文件 |
执行 |
诱导用户执行 |
伪装成安装包或图片诱导用户执行 |
执行 |
利用计划任务/工作 |
将文件路径添加到计划任务中执行 |
持久化 |
利用计划任务/工作 |
将文件路径添加到计划任务中执行 |
防御规避 |
反混淆/解码文件或信息 |
存在加密的C2字符串等信息,解密后用于后续使用 |
防御规避 |
混淆文件或信息 |
回传的进程信息通过base64编码 |
防御规避 |
虚拟化/沙箱逃逸 |
通过检测C盘大小规避部分沙箱或虚拟机环境 |
发现 |
发现浏览器书签 |
可以获取浏览器的历史记录 |
发现 |
发现文件和目录 |
发现“最近使用的文件”目录中的文件,回传特定后缀(docpptxlstxt)的文件 |
发现 |
发现系统信息 |
发现受害机中的驱动器列表 |
发现 |
发现系统网络配置 |
发现受害机是否联网 |
横向移动 |
通过可移动介质复制 |
检测磁盘列表是否有变动,以便复制到可移动介质中 |
收集 |
自动收集 |
自动收集进程列表、当前用户名、特定文件等 |
收集 |
收集本地系统数据 |
收集进程列表、当前用户名等信息 |
命令与控制 |
使用应用层协议 |
使用应用层协议通信 |
数据渗出 |
自动渗出数据 |
收集到的文件、进程列表等信息自动回传至C2 |
数据渗出 |
使用C2信道回传 |
使用C2信道回传 |
CNC组织相关攻击活动的行为技术点的ATT&CK框架图谱如下图所示:
CNC组织是高度组织化的、专业化的境外国家级黑客组织,自2019年被披露以来,该组织技术手法不断升级变化,持续采用多种传播技术对我方目标进行渗透投放,不断更新对抗技术规避检测达成持久驻留,还利用反分析反溯源技术增加分析师研究的难度。同时该组织的攻击活跃度始终保持不减,目前安天已经发现该组织多起针对我国教育、航天、军工和医疗等行业发起的网络攻击活动,已经成为近年来对我国攻击最为活跃组织之一,安天将会持续跟踪分析与业内同仁共同完善该组织的技战术信息。
参考资料
原文始发于微信公众号(安天集团):CNC组织针对我国某单位的攻击活动分析