不同渠道不同安装包
4.1.2.3 用户环境请求云控配置时,客户端会上报环境检测数据,包括:sr(杀毒软件)、vm(虚拟机)、vip(会员状态)、advance(360 广告弹窗开关与弹窗拦截开关)、dev(技术人员检测)等信息,服务端据此动态下发差异化的推广配置。
sr(杀毒软件):
检查 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 注册表路径中 DisplayIcon 与 InstallLocation 键值中是否存在以下杀软程序名,如果存在,则将其收集到 sr 键值中。
杀毒软件程序名
vm(虚拟机):
检测 HKEY_CLASSES_ROOT\Applications\VMwareHostOpen.exe\shell\open\command 是否存在且默认值有效则会判断为虚拟机。
检测虚拟机
vip(会员):
VIP数据通过读取本地配置文件或注册表获取。例如,检测 %APPDATA%\TabXExplorer\config.ini 文件中 settings 节的 level 值是否大于等于0,或检测注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\LDSGameMaster\User 中 level 键值是否存在且小于100。
检测会员状态
除了云控请求时会附带会员状态,在部分 Lua 脚本中也会检测是否为会员或充值,若充值过鲁大师尊享版会员则会在配置文件 ComputerZ.set 中设置 rc_flag 键值为 1,随后在 Lua 脚本中检测会员状态从而规避。
规避鲁大师尊享版会员
除此之外还会规避小鸟(360)壁纸(IsBizhiVip)、Halo壁纸(HaloVip)、TabX Explorer 资源管理器(IsTabXVip)、手机模拟大师(GameMasterVip)等会员用户。
规避各类相关软件会员
advance(360 广告弹窗开关与 360 弹窗拦截开关):
检测 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\360Safe\stat 项中 noadpop 与 advtool_PopWndTracker 的键值是否为 1,后者的值表明是否开启 360 弹窗过滤器的强力模式。
检测是否开启 360 弹窗过滤器的强力模式
dev(技术人员):通过以下程序是否运行来判断当前用户是否为开发者等技术人员,从而使 dev 字段设置为 1。
检测进程
4.2 进一步的规避手段规避代码不止在推广模块中执行,也在 Lua 脚本中执行,且不同公司和软件拥有不同的规避手段。下面将介绍分析过程中发现的规避手段。
4.2.1 虚拟机检测在规避虚拟机环境时,推广模块会调用 Basic.tpi(Lua 解释模块)中的 LuaSystemFactory.VirturalMachineName 函数进行检测。该函数通过 CPUID 指令实现虚拟机识别:首先传入 EAX=1,检查返回值的第 31 位是否为 1,若为 1 则表明运行在 Hypervisor(虚拟机监控程序)环境中;随后传入 EAX=0x40000000 读取虚拟机厂商标识,从而精确识别虚拟机类型。
虚拟机检测
4.2.2 浏览器历史记录检测多数软件中的推广模块及 Lua 推广脚本会检测浏览器历史记录,以规避特定人群。检测内容包括历史记录中的页面标题和访问网址。
标题:系统会匹配历史记录中的页面标题,检测是否包含"劫持"、"捆绑"、"流氓软件"、"自动打开"等关键词,一旦发现则停止向该用户推广,以规避曾搜索过此类内容的用户。
访问网址:匹配历史记录中访问网址中是否存在以下内容,若存在则会选择不推广。
· 值得注意的是,在劫持浏览器的过程中,会对用户是否访问过周鸿祎的微博进行检测,若检测结果为已访问,则不会进行推广。
检测历史记录
需规避的标题或链接
部分脚本会运用反向规避策略,对用户是否存在玩游戏、观看视频、使用搜索引擎、下载软件等正常浏览行为进行检测。若用户的历史记录中缺乏这些常规活动的痕迹,便会将其判定为非正常用户(例如处于安全分析环境中的用户、测试账号等),并停止推广操作。
标题列表和链接列表
4.2.3 安装软件检测安装软件检测:
通过遍历 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 注册表路径检测当前电脑已安装的软件。
杀毒软件检测:
系统会检测杀毒软件的安装情况,包括火绒、卡巴斯基、360安全卫士等。检测结果在不同脚本中会触发不同的处理逻辑。例如,主页防护模块的更新脚本采用反向逻辑:只有检测到杀毒软件时才会继续更新,若未检测到则不更新。
规避杀毒软件
技术软件检测:
系统会检测是否安装了 IDA、Visual Studio、Fiddler 等技术分析和开发工具,若检测到则停止推广,以规避技术人员和安全研究人员。
技术软件列表
4.2.4 进程检测检测进程名:
通过进程名检测是否运行开发、调试、分析软件等技术性程序。
检测进程名
检测窗口类名:
系统通过检测窗口类名来识别控制面板并进行规避。该窗口检测逻辑与 DirectX 强力修复软件中的 wsadd.pln 模块实现方式一致。(文章《流氓联盟欺软怕硬,多链路恶意推广》中检测控制面板窗口的逻辑,相关链接见文末。)
检测窗口类名
4.2.5 任务栏图标个数检测系统会检测任务栏图标数量是否大于等于5个,以此规避常驻进程较少的测试环境或虚假用户。
右下角任务栏图标个数检测
4.2.6 冷却时间浏览器插件安装脚本采用延迟触发机制:脚本每天尝试执行一次,但需要在软件安装7天后才会真正执行安装操作,且每次成功安装后还有180天的冷却期。
冷却时间
任务栏图标推广脚本,会根据软件安装时长设置不同的冷却期。以鲁大师为例:其官网渠道需等待24小时后才会进行推广,而 lx_store(联想应用商店)渠道则无冷却期,安装后会立即推广。
不同渠道不同冷却时间
4.2.7 浏览器插件检测利用浏览器插件清理模块进行插件检测:
系统会检测浏览器中是否安装了淘客助手类插件,若检测到有则会停止推广,避免向推广从业者投放。
需要规避的浏览器插件 ID
4.2.8 其他系统检测、随机概率、控量:
系统、概率、控量
规避屏蔽广告设置:
规避设置了屏蔽广告弹窗选项的用户。
规避设置
付费用户与反馈用户检测:
付费用户与反馈用户
浏览器 F12 开发者工具检测:
开发者工具检测
4.3 推广手段主要的推广手段:
1. 根据云控配置下载 Lua 脚本执行:
Lua 推广脚本的主要功能包括:下载并加载"浏览器插件安装模块"、通过任务栏图标闪烁推广"传奇"页游、下载并更新自身组件。
2. 根据云控配置浏览器网页劫持:
根据测试中获取到的云控配置,推广模块会进行多种流量劫持操作。例如,识别到用户访问京东链接时会额外跳转至红包领取页面以获取推广佣金;识别百度搜索链接时会在URL中添加 tn 渠道标识参数以获取搜索推广分成;以及其他类似的流量劫持变现行为。
浏览器静默劫持(京粉佣金静默推广)
3. 根据云控配置弹窗安装软件:
根据测试中获取到的云控配置下载 LionProtect、SecretCipher 等软件。
4. 根据云控配置浏览器弹出百度搜索框与"传奇"页游框:
若用该百度搜索框搜索内容会带有渠道标识。
5. 浏览器弹窗安装:
测试中发现弹窗出现在浏览器右下角,点击则会立即安装。
6. 其他:
锁定浏览器主页、推广自身小工具。
下文将与之前发布的 DirectX 强力修复分析报告《流氓联盟欺软怕硬,多链路恶意推广》进行对比分析。
4.3.1 Lua 脚本执行RunExtention.tpi 为 Lua 脚本执行器,利用 Basic.tpi 模块导出函数 GetLuaExplain 获取 Lua 解释器进行解释执行。
其与 DirectX 强力修复分析报告中的 runext.pln 插件类似,都是通过 0x1401 和 0x1402 消息数据传输,也同样拥有 EventId(控制脚本执行方式) 、缓存和下载以及执行的机制。(详见《流氓联盟欺软怕硬,多链路恶意推广》文章中 runext.pln 脚本执行模块章节,相关链接见文末。)
原先 DirectX 强力修复中脚本种类主要有弹窗推广与任务栏闪烁推广,但在此次鲁大师分析中发现还有 Dll 下载与加载和组件更新类脚本。
4.3.1.1 DLL 下载与加载该类样本具备下载并加载任意DLL的能力。本次发现的云控配置即利用该功能分发浏览器插件安装模块,目前仅在鲁大师环境中观测到此类脚本。
该浏览器插件安装模块支持 Chrome、Edge、Firefox、360安全浏览器等主流平台。所安装插件多为日历、记事助手等日常工具,但其中暗藏篡改URL参数及页面重定向功能。
浏览器支持列表
该脚本会先通过 80% 随机概率、冷却检测、付费用户检测、技术程序检测、虚拟机检测、杀毒软件检测、控量、浏览器支持检测、历史记录检测、浏览器插件等检测,若全部通过则开始安装插件。
其中浏览器插件的检测是通过脚本中插件清理模块(bp_clean)中的 CheckPluginExist 函数进行检测,其中原理是遍历上述浏览器支持列表中所有 extensions 插件文件夹,检测其中是否有指定插件 ID,本次所规避的是淘客助手类浏览器插件(aokheaddinafdmjphkjlnachkejgleao)。
规避浏览器插件 Lua 脚本
检查浏览器插件是否存在
随后开始安装插件,利用的是插件安装模块(bp_deploy)中 install 导出函数,随后传入参数 hvsLi6Wy|118.190.130.219,以获取插件数据,随后发现该域名与小鸟壁纸相关。
域名信息
插件数据
随后开始下载并将插件安装完成后,其background.js作为推广脚本,会在用户访问网页时执行参数添加或页面重定向等操作,以实现推广目的。
百度搜索时设置渠道标识
云控配置
获取重定向链接
4.3.1.2 任务栏闪烁推广该类脚本经常用于推广"传奇"微端,以闪烁图标诱导用户点击,随后规避软件并进行网页弹窗或静默下载安装"传奇"微端。该类脚本在 DirectX 强力修复中就已存在。(详见《流氓联盟欺软怕硬,多链路恶意推广》文章中传奇微端推广章节,相关链接见文末。)
4.3.1.3 弹窗假关闭按钮安装该类脚本通过设置虚假关闭按钮诱导用户交互,无论用户点击关闭按钮或触发超时机制,均会执行推广软件的下载安装流程。该行为模式与DirectX 强力修复"工具类似,而后者在用户点击"不再提示"时会执行卸载操作,点击关闭按钮则会默认保持安装状态。(详见《流氓联盟欺软怕硬,多链路恶意推广》文章中夸克弹窗推广章节,相关链接见文末。)推广软件会存于云控配置的 push_soft_slow 字段中,系统会自动选择最高价格的软件进行安装。但在测试环境中该配置字段为空值,推测是由于条件未触发或服务端暂未下发有效配置。
手动关闭与自动关闭都会下载安装
4.3.2 弹窗安装软件该插件为鲁大师特有插件,其行为与上述"弹窗假关闭按钮安装Lua脚本"一致,均通过虚假关闭按钮和超时机制触发静默安装。其主要推送SecretCipher、LionProtect等软件(注:DirectX强力修复未包含此插件)。安装时,通过添加静默参数及隐藏开始菜单之类参数实现隐蔽执行,使用户点击关闭按钮时无法感知安装进程的启动。安装完成后,SecretCipher等软件将根据云控配置执行推广任务,其通过任务栏闪烁等方式诱导用户点击"传奇"游戏微端等推广内容。
原理:程序通过调用 carry_flow.tpi 的 CreateTrayClient 初始化托盘客户端,随后加载 traffic_common.dll 并执行 CreateInterface 函数完成模块初始化;随后拉取云控配置并选择推广软件,当用户交互触发后,无论点击关闭或安装,均会进入安装软件流程,最终执行安装流程。
获取安装包列表(云控配置)
云控配置:下图为整体云控配置中的弹窗安装相关配置,其中包含 close_install、timeout_install 之类的安装开关,分别为是否允许点击关闭按钮安装和超时安装。
整体云控配置中的弹窗安装相关配置
以下是出现的弹窗,这里点击以下内容会被安装:
1. 关闭按钮:当云控配置为 close_install 为 1 的时候会被安装。
2. 超时:{duration_time} 秒后判定超时,且 timeout_install 为 1 的时候会被安装。
3. 立即优化:直接安装。
安装前先随机选择目标软件,并下载该安装包(动态链接库)并调用导出函数 Start4RunDll,以实现安装。安装时会附加静默参数 --delay-pop-hp=18000 --channel=ludashi_ludashi --from=ludashi_popguide --silent --no-desktop-shortcut --no-start-menu-shortcut,此时安装是静默的、没有托盘图标、开始菜单、桌面快捷方式等显式安装效果。
调用导出函数
以下软件组,分别为数据加密、浏览器保护、清理文件等软件。
软件组
4.3.3 浏览器弹出百度搜索框云控配置触发冷却时间检测:从 ConfigCenter 获取到云控配置后,其会发送 0x8100 消息以触发检测冷却时间,随后通过 SetTimer 设置 ID 为 0x64 的计时器等待冷却结束,最后执行环境规避检测。
云控配置触发冷却时间检测
接收浏览器消息:每次切换至浏览器窗口时,BrowserBasic.tpi 会将数据传输至 master_ai_ext.tpi 模块。该数据随后被封装为 0x8001 消息发送至主窗口处理函数,随后利用 FindWindowW 寻找类名为 master_ai_client_wnd_class,窗口名为 master_ai_client_wnd_name 的窗口,以检查是否已存在对应搜索框。
接收浏览器窗口改变事件
最终会调用 "C:\Program Files (x86)\LuDaShi\SuperApp\master_ai\master_ai_main.exe" --pop_type=attach_opened_doc --attach_wnd=921496 以实现指定窗口弹出搜索框的操作。其调用 js_basic.dll 时,会传入 JSON 数据,从该数据可以看出,将会加载 master_ai_main.dat 文件中的 index.html。
JSON 数据
而在 index.html 文件加载的 JavaScript 脚本中实现了该搜索框的细节,其中可以看到点击搜索按钮时会利用百度搜索附加渠道标识参数进行跳转。
搜索框代码细节
点击《百度一下》按钮后搜索时会添加 tn 渠道标识。
搜索框及跳转
4.3.4 浏览器弹出"传奇"页游框云控,推广机制:该插件WndPlugin由computercenter.exe进程加载,其行为受云控配置wnd_plugin_v2_slow字段控制,其插件利用BrowserBasic模块以获取浏览器事件,最终触发"传奇"推广弹窗,并引导用户点击跳转至click_url字段指定的"传奇"页游链接。
多种规避方法:进程检测、安装软件检测、历史记录检测、VIP检测、反馈人群检测、浏览器 F12 开发者工具检测。
下图为云控配置中出现的 black_url 与 black_title 字段,根据其命名及所列网址和标题内容,推测是禁止弹窗的页面。且云控配置中的 pop_ids 为允许弹窗的ID列表,与 pop_info 中的 pop_id 相对应。
下图为测试过程中的推广效果图。
推广效果图
4.3.5 其他浏览器弹窗安装:在测试过程中,浏览器弹出《推荐-安装幻笔 AI》窗口,经交互验证,点击该弹窗将触发安装流程。
浏览器弹窗安装
锁定浏览器主页:测试时发现 Utils 目录中 guardhp.exe 程序会弹出浏览器主页锁定操作,弹出时将浏览器锁定为 hao.360.cn。
弹窗图
推广自身小工具:接收整体云控配置中 universal_popup_rec_slow 与 popmgr_slow,分别是弹窗软件数据和弹窗规则,其含有 intercept_bs 类似的工具,本身用于推广自身小工具,通常存放于 SuperApp 文件夹中。
弹窗软件数据和弹窗规则
弹窗图
【五】 火绒安全提醒目前,火绒安全软件已实现对此类云控推广模块的识别、拦截及查杀。为保障您的设备安全与使用体验,远离流量劫持、强制弹窗、静默安装等不良行为的侵扰,建议广大用户将火绒安全软件更新至最新版本,随后启动全盘查杀功能对设备进行全面扫描,及时清除潜在风险。火绒也将持续追踪,为用户构建持续、可靠的安全防护屏障。
检查更新
全盘查杀
文中相关链接:https://www.huorong.cn/document/tech/vir_report/1839