相关栏目
    资讯热点

    关于“魔盗”窃密木马大规模传播的风险提示

    发布时间:2022年09月13日 来源: 信息与网络中心 字体大小:

    本报告由国家互联网应急中心(CNCERT)与安天科技集团股份有限公司(安天)共同发布。

    概述

    近期,CNCERT和安天联合监测到一批伪装成CorelDraw、Notepad++、IDA Pro、WinHex等多款实用软件进行传播的窃密木马。通过跟踪监测发现其每日上线境内肉鸡数(以IP数计算)最多已超过1.3万,由于该窃密木马会收集浏览器书签、邮箱账户等信息,故我们将命名为“魔盗”。攻击者利用“cdr[.]jyxwlkj.cn”及“cdrnb[.]jyxwlkj.cn”域名建立多个软件下载页面,用于投放伪装成实用软件的“魔盗”窃密木马。窃密木马运行后会收集受害者主机中已安装的软件列表与多款浏览器的历史记录、书签数据和邮件客户端邮箱账户信息,并加密回传至攻击者服务器。由于部分恶意程序具备在线升级能力,因此攻击者可随时更改攻击载荷(如勒索、挖矿、窃密等不同目的的攻击载荷),给受害者造成更大损失。

    “魔盗”窃密木马分析

    (一)传播方式分析

    攻击者利用“cdr[.]jyxwlkj.cn”域名建立软件下载页面,将伪装为“破解版CorelDraw”绘图工具的压缩包投放至该页面进行大范围传播。用户一旦执行压缩包中的恶意程序便会在主机中创建服务并添加注册表启动项,实现持久化驻留,随后从攻击者服务器中下载窃密组件进行数据窃取并回传。

    1  攻击流程图

    (二)相关样本分析

    “魔盗”窃密木马整体执行流程可分为3个阶段:诱导执行阶段、执行阶段与窃密阶段。组件调用关系图如下:

    2  组件调用关系图

    1、诱导阶段

    为了诱导受害者执行恶意程序,攻击者在压缩包中提供了4个配套文件,具体文件信息见下表:

    其中“安装教程.docx”以“杀毒软件会误报盗版软件”为由,诱导用户关闭杀毒软件,后通过文字+配图的方式诱导受害者执行“安装程序”与“激活工具”。其中,安装程序是包含恶意模块的NSIS安装包,激活工具仅用于关闭UAC账户控制并无实际激活功能。

    3 安装教程文档部分内容

    2、执行阶段本阶段以NSIS安装程序“coreldraw.exe”作为初始载荷,通过其释放的多个组件间的协同作业保证恶意程序的持续运行。这些组件包括“服务管理组件”、“启动器组件”、“插件加载组件”和“杀软对抗组件”。

    2.1初始载荷

    压缩包中的“coreldraw.exe”为执行阶段的初始载荷。该程序运行后会创建“%appdata%\Microsoft\Network”、“SysWow64\security”两个目录并向其中释放多个恶意载荷及大量C++运行库文件。释放的恶意载荷信息见下表:

    文件释放完毕后会执行 “NetworkService.exe”与“SystemSecurityService.exe”。且分别携带启动参数“nsis winhex.exe”、“start”。

    2.2服务管理

    “SystemSecurityService.exe”为服务管理组件,其主要功能为通过创建系统服务实现持久化驻留并确保“NetworkService.exe”进程的持续执行。该组件的样本标签如下:

    该组件执行后会根据创建名为“SystemSecurityService”的服务实现自身的持久化驻留。通过不同的启动参数控制服务的启动与停止。服务的参数如下表:

    该组件以服务启动后会持续监视“NetworkService.exe”进程是否存在,若不存在则以管理员方式运行“system_laungher.exe”。除此之外,当服务停止或崩溃时还会在自身文件所在目录创建一个自身文件副本并执行,新进程会重复上文操作以实现自身进程的持续运行。

    4 崩溃或停止后的再启动

    2.3启动器

    “system_laungher.exe”为启动器组件,该组件仅负责运行“NetworkService.exe”。攻击者疑似误将该组件文件名中的 “launcher”(发射器)写为“laungher”。该组件的样本标签如下:

    该组件运行后会判断“%appdata%\NetworkService\”路径下是否存在“NetworkService.exe”文件,此处与初始载荷释放文件的路径不同,因此在该组件首次运行时文件并不存在。若文件存在则通过“open”或“rundll32 shell32,OpenAs_RunDLL”命令启动“%appdata%\NetworkService\NetworkService.exe”。

    5 利用命令行启动目标程序

    若文件不存在,则会将自身运行目录下的“NetworkService”目录完整复制到“%appdata%”中。随后以上文相同方式启动复制后的“NetworkService”目录下的“NetworkService.exe”。

    6 拷贝NetworkService目录

    2.4插件加载

    “NetworkService.exe”组件用于实现插件加载。该组件根据运行参数的不同分为三个模式:“完整模式”、“简易模式”与“看门狗模式”,三个模式的具体功能见下文。该组件的样本标签如下:

    该组件也是所有组件中唯一标注了版本号的组件。

    7 样本中标注的版本号

    完整模式当运行参数为“nsis”、随机数或为空时,组件执行该模式。在该模式下,组件会在注册表“HKCU\Software\Microsoft\Windows\CurrentVersion\Run”及“HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run”两处位置添加名为“NetworkService”的启动项实现自身的持久化驻留。

    8 添加注册表启动项

    组件使用“dog”加随机数作为运行参数创建看门狗模式下的自身进程。

    9 启动看门狗模式

    随后向攻击者服务器发起5次网络请求:第一次请求:服务器响应数据中会包含DLL插件列表及版本号。若插件列表中的文件在“plugin”目录中不存在,或当前版本与响应数据中的版本号不同,则会从攻击者服务器下载列表中的所有插件。随后加载“plugin”目录下的所有DLL并执行其导出函数“PlugIn_Create”。第二次请求:获取受害者主机的CPUID、处理器签名、系统盘卷号、GUID,将拼接后计算出的MD5值,经AES加密+Base64编码后回传至攻击者服务器。第三次请求:获取注册表“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall”及“HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall”下保存的所有已安装的程序列表,经AES加密+Base64编码后回传至攻击者服务器。第四次请求:将初始载荷的文件名(即“coreldraw”)经AES加密+Base64编码后回传至攻击者服务器。第五次请求:通过执行“whoami”及“netsh wlan show profiles”命令获取受害者主机名、用户名、wifi列表信息,经AES加密+Base64编码后回传至攻击者服务器。最后循环判断“SearchIndexerService.exe”进程是否存在,若不存在则运行。

    10 监视SearchIndexerService.exe进程

    简易模式

    当运行参数包含“vs”时执行该模式。该模式相比完整模式仅舍弃了“看门狗创建”与“注册表启动项添加”功能,其余功能均一致。

    看门狗模式

    当运行参数包含“dog”时执行该模式。该模式的功能为持续判断“完整模式”下的“NetworkService.exe”进程是否存在。若进程不存在,则以随机数作为运行参数启动自身进程(即“完整模式”)。

    11 监视完整模式下的NetworkService.exe进程

    2.5杀软对抗

    “SearchIndexerService.exe”为杀软对抗组件。该组件通过断开杀毒软件进程的TCP连接防止自身样本被上传至云端。该组件的样本标签如下:

    该组件运行后会循环遍历受害者主机上的TCP连接,若某个连接的发起进程为“360safe”、“360tray.exe”、“360sd”、“360rp”、“qqpctray.exe”或“hipsmain.exe”则将该TCP连接中断。

    12 中断杀毒软件TCP连接

    3、窃密阶段

    攻击者在本阶段使用的窃密载荷通过初始载荷释放或插件加载组件进行下载,由插件加载组件负责加载执行。窃密插件加载后会创建三个线程,功能分别为:弹出虚假盗版提示、伪造盗版崩溃及窃取用户数据。窃密插件的样本标签如下:

    窃密插件通过插件加载组件进行下载,且必然包含名为“PlugIn_Create”的导出函数供插件加载组件调用,因此未来攻击者可在不更改执行阶段中的组件的前提下投放不同功能的恶意载荷。

    13 插件入口

    线程1:虚假盗版提示

    线程1的主要功能为通过运行“System_Warning.exe”向受害者展示一个包含盗版提示的窗口以此让受害者误认为盗版软件已成功安装。此进程仅用于展示盗版提示,无实质恶意行为。该线程会访问攻击者服务器获取进程列表,只有当进程列表中的进程正在受害者主机上运行时才会展示盗版提示。盗版提示窗口如下图:

    14 盗版提示程序界面

    线程2:伪造崩溃提示

    为了防止受害者意识到软件并未成功破解,攻击者伪造了进程崩溃的提示。线程2运行后会再次访问攻击者服务器获取另一份进程列表。若进程列表中的进程正在受害者主机运行,则会结束该进程并弹出一个崩溃提示以欺骗受害者。提示内容如下图:

    15 伪造进程崩溃提示

    为了使崩溃提示看上去更加真实,该线程还会访问攻击者服务器来获取不同进程对应的不同的提示内容。

    16 获取崩溃提示信息的接口地址

    线程3:数据窃取及回传

    线程3用于窃取受害者主机的系统信息与隐私数据并经AES加密+Base64编码后回传至攻击者服务器。目前攻击者窃取的目标为受害者的网卡信息、网页浏览记录、书签列表及邮箱地址。具体窃取数据及软件信息见下表:

    (三)样本关联分析

    在对上述样本的关联分析中,我们发现攻击者除“CorelDraw”外,还伪装了IDA Pro、WinHex等众多热门软件的盗版下载。攻击者正在持续更新木马组件,近一月内国内已有近65000台设备受其感染,整体感染量呈上升趋势。1、攻击者伪装多款软件的盗版下载攻击者除“CorelDraw”外,还伪造了其他软件的盗版下载。这些伪造的盗版软件均投放到“cdr[.]jyxwlkj.cn”及“cdrnb[.]jyxwlkj.cn”域名中,且传播流程、恶意载荷功能与上文一致。具体伪造的软件列表如下:

    这些样本的PDB路径中均包含字符串“APS”。

    17 样本PDB中均包含APS字符串

    2、攻击者正持续更新木马组件根据样本中标注的版本号及编译时间可知攻击者正在持续更新木马组件。具体信息见下表:

    以上三个版本之间并无功能上的差异。通过对比代码结构发现,相比于1.1.3版本,1.1.1和1.1.2版本的代码中多出大量无意义且未调用的函数。攻击者在1.1.3版本中进行了优化编译,可见攻击者还在持续更新恶意代码。

    18 1.1.2与1.1.3版本对比

    感染规模

    通过监测分析发现,国内于2022年8月3日至8月23日期间“魔盗”木马日上线肉鸡数最高达到1.3万台,累计已有约6.5万台设备受其感染。每日境内上线肉鸡数情况如下。

    19  每日上线境内肉鸡数

    防范建议

    请广大网民强化风险意识,加强安全防范,避免不必要的经济损失,主要建议包括:

    1、建议通过官方网站统一采购、下载正版软件。如无官方网站建议使用可信来源进行下载,下载后使用反病毒软件进行扫描并校验文件HASH。

    2、尽量不打开来历不明的网页链接,不要安装来源不明软件。

    3、加强口令强度,避免使用弱口令,密码设置要符合安全要求,并定期更换。建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令。

    4、梳理已有资产列表,及时修复相关系统漏洞。

    5、安装终端防护软件,定期进行全盘杀毒。

    6、当发现主机感染僵尸木马程序后,立即核实主机受控情况和入侵途径,并对受害主机进行清理。