面向酒店行业图片主题 Node.js 远控钓鱼攻击全链路防御研究

简介: 2026年跨欧亚酒店钓鱼攻击利用“认证清洗”绕过邮件校验,以伪装图片LNK压缩包为诱饵,通过PowerShell无文件加载Node.js环境部署TonRAT远控木马,并首创使用TON区块链API作为隐蔽C2信道。该攻击规避传统检测,威胁前台系统与客户隐私。本文首次系统拆解其全链路,提出四维防御体系及轻量化Python检测方案,填补行业防护空白。(239字)

摘要

2026 年 4 月起,跨欧亚酒店行业爆发规模化定向鱼叉式钓鱼活动,攻击者依托酒店运营场景制作图片主题诱饵,借助认证清洗(Authentication Laundering)技术绕过邮件 SPF/DKIM/DMARC 三重邮件校验,通过多层域名跳转分发伪装图片快捷方式的 ZIP 压缩包载荷,依托 PowerShell 脚本链式加载 Node.js 运行环境部署 TonRAT 远控植入程序。该恶意程序以 TON 区块链 API 作为隐蔽 C2 信道,建立加密 WebSocket 长连接实现内网前台系统持久控制,通过 RunOnce 注册表、Node.js 服务项构建长期驻留机制,针对酒店前台、预订、客房管理系统窃取客户隐私、入住数据、财务结算信息。本文以该酒店定向钓鱼活动为完整研究样本,分层拆解邮件认证清洗规避机制、图片伪装 LNK 载荷执行链、Node.js TonRAT 区块链隐蔽通信、持久化驻留四大核心技术链路,对比传统酒店行业勒索钓鱼、宏附件钓鱼的技术代差;反网络钓鱼技术专家芦笛指出,该攻击融合邮件安全规则绕过、系统原生脚本无文件加载、区块链匿名 C2 通信多重规避手段,传统邮件网关、终端杀毒、内网流量审计均存在识别盲区,酒店行业标准化安防体系难以形成拦截闭环。本文基于攻击独有特征设计轻量化 Python 多维度检测代码,构建邮件网关前置拦截、终端行为审计、内网流量监测、酒店行业人员安全培训四层联动防御体系,配套标准化失陷主机应急处置流程,填补文旅酒店行业针对 Node.js 区块链远控新型钓鱼的防护理论空白,为欧亚酒店集团、连锁住宿企业信息安全建设提供可落地工程方案。

关键词:酒店行业钓鱼;认证清洗;LNK 伪装图片;PowerShell 无文件攻击;Node.js;TonRAT;TON 区块链 C2;持久化驻留

image.png 1 引言

1.1 研究背景

文旅住宿行业数字化转型持续推进,酒店前台收银系统、客房预订平台、客户信息管理系统集中存储旅客身份信息、联系方式、支付凭证、入住记录等高敏感数据,成为网络黑产定向鱼叉式钓鱼的核心目标。传统酒店定向攻击以 Office 宏附件、勒索病毒、仿官网登录页面为主,载荷特征固定、通信链路中心化,邮件安全网关、终端 EDR 可通过特征库完成基础拦截。2026 年 4 月微软威胁情报团队监测到覆盖欧洲、亚洲连锁酒店、单体高端酒店的持续性钓鱼作战,该活动摒弃传统恶意附件形态,形成一套全新复合攻击链路:依托 Calendly、Google 跳转服务完成邮件认证清洗绕过邮件安全校验,以客诉、虫害消杀、卫生检查等酒店高频运营场景制作图片主题诱饵,诱导前台工作人员下载内含伪装图片快捷方式的 ZIP 压缩包;用户双击 LNK 文件触发隐藏 PowerShell 脚本,解码境外恶意域名并下载二级 PS1 载荷,静默部署合法 Node.js 运行时执行 TonRAT 远控木马。

该远控程序区别于传统 Windows 原生 RAT 工具,创新采用 TON 区块链公共 API 作为 C2 通信中转节点,外层封装加密 WebSocket 信道传输窃取数据,攻击流量无固定 IP、无标准恶意域名特征,内网防火墙、流量审计系统难以识别异常外联行为;同时攻击者利用 Windows 注册表 RunOnce、Node.js 服务项实现双重持久化,失陷前台主机可长期静默受控,横向渗透酒店内网预订、财务服务器。截至 2026 年 6 月 29 日公开情报披露,该攻击未溯源至已知成熟 APT 组织,攻击投放规模持续扩张,欧亚多国酒店前台设备出现批量感染案例。

当前网络安全领域针对酒店行业钓鱼的研究多聚焦宏病毒、勒索软件、仿站凭证窃取,针对 “认证清洗邮件绕过 + 图片伪装 LNK+Node.js 无文件远控 + 区块链匿名 C2” 复合攻击链的系统性拆解、检测防御方案存在明显研究空白;多数连锁酒店安防建设仅部署基础邮件杀毒、终端杀毒软件,未适配本次攻击多层规避技术,安全防护存在系统性短板。基于上述现实威胁与研究缺口,本文依托 SCWorld 披露的完整攻击情报,完整还原该酒店定向钓鱼全链路技术逻辑,梳理攻击独有规避特征,搭建分层闭环防御架构并配套自动化检测代码,完善文旅住宿行业新型复合钓鱼攻击的攻防理论与工程防护体系。

1.2 研究意义

1.2.1 理论意义

本文拓展行业定向鱼叉式钓鱼攻击的技术分类框架,新增 “认证清洗邮件绕过 + 系统原生脚本无文件加载 + 区块链去中心化 C2 通信” 复合型攻击范式;厘清 Calendly、Google 跳转域名实现 SPF/DKIM/DMARC 校验绕过的底层逻辑,明确 Node.js 合法运行环境承载恶意远控的攻防边界;归纳 TonRAT 依托 TON 区块链 API 中转流量的隐蔽通信模型,构建面向住宿行业前台终端的多层风险识别理论框架,为后续同类依托第三方合法服务、区块链匿名信道的行业定向钓鱼研究提供标准化分析范式。

1.2.2 实践意义

第一,完整拆解本次酒店定向钓鱼全链路技术细节,梳理从邮件投递、载荷执行、远控通信、持久驻留完整攻击闭环,为酒店安全运维人员建立新型威胁识别标准;第二,设计轻量化 Python 综合检测模块,集成邮件认证清洗特征识别、ZIP 内伪装图片 LNK 检测、PowerShell 恶意载荷解码、TON 区块链外联流量识别四大功能,可部署于酒店邮件网关、终端安全审计平台、内网出口防火墙;第三,针对酒店前台专用 Windows 终端、内网隔离架构提出终端加固、网络访问控制、邮件安全策略优化落地措施,解决传统安防无法识别区块链匿名 C2 流量、无文件 PowerShell 载荷的痛点;第四,形成标准化失陷前台主机隔离、溯源、清理、复盘应急处置流程,降低旅客隐私、酒店经营数据泄露带来的合规与经济损失。

1.3 研究内容与文章框架

本文主体分为七大模块:第一部分梳理本次跨欧亚酒店钓鱼活动整体威胁规模、攻击目标分层、诱饵社会工程设计逻辑;第二部分分层拆解完整攻击链路,依次解析认证清洗邮件投递、图片伪装 LNK 载荷触发、PowerShell 链式加载 Node.js TonRAT、区块链 WebSocket 隐蔽通信、双重持久化驻留五大核心阶段;第三部分横向对比本次复合钓鱼与传统酒店行业钓鱼攻击的核心差异,总结当前酒店安防体系面对该攻击的多层防御难点;第四部分构建 “邮件网关前置拦截、终端行为实时审计、内网流量多维监测、酒店人员分层安全管控” 四维闭环防御体系;第五部分实现适配酒店安防场景的钓鱼自动化检测 Python 代码,完成模块功能、部署场景解析;第六部分制定酒店前台主机遭 TonRAT 入侵后的标准化应急处置流程;第七部分总结全文研究结论,提出住宿行业钓鱼攻击未来攻防演进方向。

2 跨欧亚酒店图片主题钓鱼活动整体威胁概况

2.1 攻击投放时间与覆盖范围

该定向钓鱼作战自 2026 年 4 月启动,持续稳定投放至 6 月下旬,攻击地理范围覆盖欧洲西欧、南欧旅游城市连锁酒店、东南亚及东亚高端住宿机构,目标覆盖单体度假酒店、国际连锁酒店、商务快捷酒店三大住宿业态。攻击者未限定单一国家,依托境外匿名邮件服务器批量分发诱饵邮件,无固定投放时段,避开酒店夜间运维时段,集中在前台交接班、客房卫生巡检、客诉处理等工作高峰发送邮件,提升前台工作人员点击、解压、执行恶意文件的概率。微软威胁情报团队持续跟踪监测,确认该活动无已知成熟 APT 组织标签,判定为商业化黑产团伙针对文旅行业定制化开发的复合型钓鱼工具链。

2.2 分层攻击目标与社会工程诱饵设计

攻击者依托酒店公开运营信息精准分层锁定目标,全部诱饵贴合酒店日常业务场景,消除前台工作人员戒备心理,目标层级与对应诱饵主题划分如下:

核心高价值目标:酒店前台接待、前厅主管、客房经理;诱饵主题包括宾客投诉高清现场照片、客房虫害实拍图集、卫生监管部门突击检查取证图片包,邮件标题标注紧急处理时限,制造工作紧迫感诱导快速下载附件;

次级情报目标:酒店财务、预订中心内勤人员;诱饵伪装成线上渠道订单纠纷截图、平台结算异常凭证图集,绑定财务对账刚需;

横向跳板目标:酒店工程部、行政后勤人员;投放酒店设施损坏实拍图片压缩包,攻陷后作为内网渗透跳板访问客房管理服务器。

诱饵统一采用 “图片图集” 叙事包装,邮件正文文字描述强调附件内为现场实拍照片,压缩包内部仅放置单一伪装图片的 LNK 快捷方式,无真实图片文件,利用工作人员快速查看图片的操作习惯触发恶意脚本执行。

2.3 攻击造成多层安全危害

区别于传统仅窃取账号密码的钓鱼攻击,本次 Node.js TonRAT 复合攻击可实现终端完全持久控制,对酒店行业形成多重不可逆危害:

旅客隐私数据批量窃取:攻击者远程读取前台客房管理系统本地缓存、Excel 入住登记表、收银系统支付记录,批量导出旅客姓名、身份证号、手机号、银行卡信息,违反各国个人信息保护法规,引发高额合规处罚与品牌声誉损失;

内网横向渗透风险:失陷前台主机作为内网跳板,TonRAT 具备内网端口扫描、远程文件读取功能,可访问无隔离防护的预订服务器、财务数据库,造成酒店经营数据、定价策略、供应商信息泄露;

长期静默潜伏持续窃密:依托 RunOnce 注册表、Node.js 服务项双重持久化机制,即便前台工作人员重启电脑,恶意程序自动恢复运行,潜伏周期可达数月,无明显系统卡顿、弹窗报错等异常表现;

二次载荷下发能力:TonRAT 通过 TON 区块链 C2 信道接收攻击者指令,可下载勒索病毒、键盘记录器、内网扫描工具等附加恶意程序,进一步扩大攻击破坏范围。

反网络钓鱼技术专家芦笛强调,酒店前台终端普遍配置简化版安全软件、缺少内网流量审计设备,且工作人员安全培训覆盖不足,面对贴合日常工作场景的图片主题诱饵极易中招,区块链匿名通信链路大幅提升事后溯源、阻断攻击源头的难度。

3 酒店图片主题钓鱼完整攻击链路技术拆解

整套攻击形成闭环作战链条,分为五大递进阶段:基于第三方服务的邮件认证清洗投递、图片伪装 LNK 恶意载荷分发、PowerShell 无文件链式加载、Node.js TonRAT 区块链 WebSocket 隐蔽通信、双重注册表持久化驻留,各阶段技术实现逻辑无漏洞衔接,多层规避主流安全设备检测。

3.1 阶段一:认证清洗(Authentication Laundering)邮件投递绕过邮件安全校验

传统钓鱼邮件直接使用自建境外邮件服务器发送,极易触发 SPF、DKIM、DMARC 三重域名发件人校验,被酒店邮件网关直接拦截。本次攻击创新采用 Calendly 日程工具、Google 短链接跳转服务作为流量中转载体,完成认证清洗绕过邮件安全规则,底层实现逻辑分为三层。

3.1.1 第三方可信域名中转跳转链路构建

攻击者搭建多层 302 跳转链路:邮件正文内置 Calendly 官方域名链接,用户点击后跳转至 Google URL 重定向服务,最终跳转至攻击者控制的.cfd后缀恶意域名下载 ZIP 压缩包。Calendly、Google 均为全球高信誉可信域名,邮件网关仅校验邮件正文一级域名信誉,无法递归解析多层跳转后的最终恶意站点,信誉拦截规则完全失效。

3.1.2 发件域名 SPF/DKIM 合规伪装

攻击者借用 Calendly 平台邮件推送接口批量分发诱饵邮件,邮件发件域名携带 Calendly 合法 SPF、DKIM 签名,DMARC 校验返回通过状态;酒店邮件安全网关仅校验发件域名签名有效性,无法识别邮件正文内跳转链接指向恶意站点,邮件直接进入前台员工收件箱,不会进入垃圾邮件隔离区。

3.1.3 邮件载荷特征规避设计

邮件正文仅包含文字描述与跳转链接,无内嵌恶意图片、恶意附件,恶意 ZIP 压缩包需用户主动跳转至境外域名手动下载;邮件网关静态附件扫描、恶意 JS 特征匹配无检测目标,无法提前拦截载荷分发链路,仅能在用户完成下载后通过终端杀毒识别文件风险,防护存在明显滞后性。

3.2 阶段二:ZIP 压缩包内伪装图片 LNK 载荷分发与触发

用户通过多层跳转页面下载恶意 ZIP 压缩包,压缩包内部仅存放单一 LNK 快捷方式文件,文件图标、文件名完全伪装成酒店实拍图片,利用 Windows 系统文件默认隐藏后缀名的特性迷惑用户,完整执行流程如下。

3.2.1 LNK 文件伪装特征设计

攻击者自定义快捷方式图标为 JPG 图片预览图标,文件名命名为 “客房虫害实拍 01.jpg.lnk”,Windows 资源管理器默认隐藏后缀.lnk,前台员工视觉上仅识别为图片文件;快捷方式内部 RELATIVE_PATH 字段写入隐藏 CMD 执行指令,不指向任何本地图片资源,双击即启动命令行程序。

3.2.2 双击触发 CMD 调度 PowerShell 脚本

用户双击伪装图片快捷方式后,系统启动 cmd.exe 后台静默运行,调用隐藏 PowerShell 进程,启动参数配置 WindowStyle=Hidden,全程无黑色命令行弹窗,用户无法察觉脚本执行行为;脚本内置 Base64 编码字符串存储恶意.cfd域名,解码后自动发起 HTTPS 下载请求。

3.2.3 二级 PS1 恶意载荷本地落地

PowerShell 脚本访问恶意.cfd域名,下载完整远控加载 PS1 脚本,存储至系统临时目录 % TEMP%,规避终端杀毒软件实时文件扫描基线;脚本不写入可执行 exe 文件,全程依托系统原生 PowerShell、Node.js 运行环境执行,属于典型无文件攻击,传统基于病毒样本哈希的查杀规则失效。

3.3 阶段三:合法 Node.js 运行环境部署与 TonRAT 植入执行

该阶段为攻击核心执行环节,攻击者不携带独立编译恶意 Node.js 程序,自动下载官方正版 Node.js 运行时安装包静默部署,依托合法程序承载 TonRAT 恶意 JS 远控代码,规避终端安全软件对未知可执行文件的拦截。

3.3.1 Node.js 静默无交互安装

PS1 脚本调用系统后台安装程序,自动下载 Node.js 官方稳定版安装包,执行静默安装参数,无弹窗、无用户确认步骤,安装路径默认写入系统 Program Files 目录,安全软件判定为正规开发工具安装行为,不会触发风险告警。

3.3.2 TonRAT 恶意 JS 载荷加载执行

Node.js 运行环境部署完成后,脚本将 TonRAT 完整 JS 代码写入系统隐藏目录,通过 node.exe 后台启动执行;TonRAT 全部功能由 JavaScript 语言编写,无独立 PE 可执行文件,终端 EDR 进程白名单默认放行 node.exe 进程,无法通过进程特征识别恶意行为。

3.3.3 前台终端本地侦察模块启动

TonRAT 启动后第一时间执行本地信息采集:枚举前台客房管理软件进程、读取本地 Excel 旅客表格、扫描内网 192.168.0.0/24 网段存活主机、导出浏览器保存的酒店后台登录账号凭证,采集数据缓存至本地等待 C2 信道建立后回传攻击者服务器。

3.4 阶段四:TON 区块链 API 中转加密 WebSocket 隐蔽 C2 通信

本次攻击最核心隐蔽技术为去中心化区块链中转通信,摒弃传统固定 IP、独立域名 C2 服务器,依托 TON 区块链公共 API 作为流量中转节点,外层封装加密 WebSocket 长连接传输窃取数据,内网流量审计设备无法匹配恶意外联特征。

3.4.1 TON 区块链 API 中转逻辑

TonRAT 内置 TON 区块链公共节点 API 访问接口,恶意程序不直接连接攻击者私有 C2 服务器,而是向公开 TON 节点发送加密数据包;区块链节点作为匿名中转中继,将指令、窃取数据转发至攻击者后端,所有外层流量均为合法区块链节点访问请求,无恶意 IP、域名外联行为。

3.4.2 加密 WebSocket 全双工数据传输

区块链中转链路内部建立 wss 加密 WebSocket 长连接,实现攻击者与失陷前台主机实时双向通信:攻击者可远程下发文件读取、屏幕截图、内网扫描、新增载荷指令;主机回传旅客数据、系统配置、进程列表,WebSocket 数据包经过 AES 对称加密,流量审计设备无法解析传输明文内容。

3.4.3 流量规避核心优势

传统 RAT 工具外联固定恶意 IP,防火墙可通过 IP 黑名单拦截;本次攻击外联全部为公开 TON 区块链公共节点,域名、IP 均属于正常区块链服务地址,无法通过静态黑名单阻断通信,仅能依靠行为基线监测异常高频区块链流量识别风险。

3.5 阶段五:双重注册表持久化驻留机制

为保障前台主机重启后恶意程序自动恢复运行,攻击者配置两层独立持久化注册表项,双重保障驻留效果,覆盖临时登录与长期系统启动两种场景。

RunOnce 一次性启动项:写入当前用户注册表 RunOnce 路径,系统每次登录后自动执行 TonRAT 启动脚本,执行完成后不删除注册表键值,持续触发加载;

Node.js 系统服务注册表项:新增自定义 Node.js 后台服务注册表配置,将 node.exe 携带 TonRAT JS 代码配置为系统自动启动服务,后台无界面静默运行,服务名称伪装为 “NodeJs Runtime Update Service”,模拟官方系统更新服务,管理员难以通过服务列表识别恶意项。

两种驻留机制相互兜底,单一注册表项被删除后,另一项仍可维持恶意程序持续运行,大幅提升酒店运维人员彻底清理失陷主机的难度。

4 本次复合钓鱼与传统酒店行业钓鱼差异及安防核心难点

4.1 新型 Node.js 区块链钓鱼与传统酒店钓鱼多维度对比

当前酒店行业过往遭受钓鱼攻击以 Office 宏附件、勒索病毒、仿站凭证窃取为主,本次复合型攻击在投递、载荷、通信、驻留层面存在本质代差,多维度对比见表 1。

表 1 酒店新型复合钓鱼攻击与传统钓鱼攻击对比

表格

对比维度 本次图片主题 Node.js TonRAT 钓鱼 传统酒店宏 / 勒索钓鱼

邮件投递方式 第三方服务认证清洗,绕过 SPF/DKIM/DMARC 自建境外邮件服务器,易被邮件网关拦截

恶意载荷载体 伪装图片 LNK 快捷方式,无独立 exe Office 文档宏、加密压缩勒索病毒 exe

执行依赖环境 系统 PowerShell + 正版 Node.js 合法程序 Office 组件、独立编译恶意可执行文件

C2 通信信道 TON 区块链 API 中转加密 WebSocket 固定境外恶意 IP / 域名中心化服务器

安全软件识别难度 进程、流量、文件均无标准恶意特征 样本哈希、恶意 IP 存在成熟特征库

持久化手段 双重注册表 RunOnce + 伪装 Node.js 服务 单一启动文件夹、普通 Run 注册表项

潜伏隐蔽性 无弹窗、无进程异常、流量为区块链正常访问 占用大量系统资源、频繁外联恶意 IP 易告警

内网渗透能力 内置内网扫描、远程文件读取、多载荷下发 仅加密本地文件勒索,无内网横向功能

4.2 当前酒店安防体系应对该攻击的五大核心防御难点

4.2.1 邮件安全网关无法递归解析多层跳转链路

现有酒店邮件网关仅校验邮件正文一级域名信誉、附件静态特征,无法自动递归解析 Calendly、Google 多层 302 跳转链路,无法识别末端.cfd恶意域名;认证清洗机制绕过域名签名校验,诱饵邮件直接进入员工收件箱,前置拦截失效。

4.2.2 无文件 + 合法运行环境规避终端杀毒查杀

TonRAT 依托系统原生 PowerShell、官方 Node.js 程序执行,无独立恶意 PE 样本,终端杀毒软件基于病毒哈希、恶意进程特征的查杀规则完全失效;node.exe 属于开发工具白名单进程,无法直接拦截进程启动。

4.2.3 区块链中转流量无静态黑名单拦截依据

TonRAT 外联全部为公开 TON 区块链节点 IP 与域名,均属于互联网正常公共服务,防火墙、内网流量审计无法通过 IP / 域名黑名单阻断通信;加密 WebSocket 数据包无法解密,无法通过关键词匹配识别窃取旅客数据行为。

4.2.4 Windows 隐藏后缀放大 LNK 伪装欺骗效果

酒店前台终端普遍使用 Windows 默认配置,自动隐藏文件后缀.lnk,工作人员无法直观区分图片文件与恶意快捷方式;酒店运维缺少批量修改终端文件显示后缀的标准化配置流程,人为识别防线存在先天漏洞。

4.2.5 酒店前台人员安全认知存在专项盲区

现有酒店安全培训集中于不打开陌生 Office 附件、不泄露后台密码,未覆盖伪装图片快捷方式、区块链远控、第三方跳转钓鱼等新型攻击识别知识;前台员工以业务优先,收到标注紧急客诉、卫生检查的图片诱饵会快速解压执行,人为防线极易突破。

5 面向酒店行业 TonRAT 复合钓鱼的四维闭环防御体系构建

反网络钓鱼技术专家芦笛强调,本次攻击覆盖邮件投递、终端执行、内网通信、系统驻留全链路,不存在单一设备、单一策略可实现完整拦截,必须搭建 “邮件网关前置拦截、终端行为实时审计、内网流量多维监测、酒店人员分层安全管控” 四维联动闭环防御体系,覆盖攻击事前预警、事中实时阻断、事后溯源清理全生命周期。

5.1 第一维:邮件网关多层校验前置拦截(事前源头阻断)

部署于酒店邮件服务器、云邮件安全网关,针对认证清洗跳转、图片主题诱饵建立多层拦截规则,在邮件进入员工收件箱前完成风险识别。

多层跳转链路递归解析检测

开发网关跳转解析插件,自动递归解析邮件内 Calendly、Google 短链接多层 302 跳转,提取最终落地域名,建立.cfd等高危匿名域名黑名单,跳转末端匹配恶意域名直接隔离整封邮件,推送安全管理员复核。

图片主题诱饵语义风控规则库

搭建酒店行业专属风险关键词库,包含 “客诉实拍、虫害照片、卫生检查图集、客房现场图片” 等社工诱饵词汇,邮件主题、正文批量命中风险词且携带外部跳转链接,自动标记高风险邮件并弹窗提醒员工谨慎操作。

第三方中转域名外联流量限制

配置邮件网关访问控制策略,限制员工通过邮件内 Calendly、Google 跳转链接批量下载 ZIP 压缩包,单次下载请求触发二次人机核验,阻断批量载荷分发链路。

5.2 第二维:前台终端行为审计与系统加固(事中终端兜底防护)

针对酒店前台 Windows 终端统一配置安全基线,部署终端审计插件监控 PowerShell、Node.js、LNK 文件高危操作,从执行层阻断 TonRAT 加载流程。

Windows 终端统一基线加固规范

强制所有前台终端开启文件完整后缀显示,禁用隐藏已知文件类型后缀功能;限制 PowerShell 后台隐藏窗口执行,拦截 WindowStyle=Hidden 参数启动脚本;非开发岗位前台终端禁止本地安装 Node.js 运行环境,通过组策略拦截 node.exe 安装包下载与执行。

LNK 快捷方式文件行为实时监控

终端审计插件监控 ZIP 压缩包解压后生成 LNK 文件、双击 LNK 触发 cmd/powershell 启动行为,匹配伪装图片文件名特征(jpg/png 后缀 LNK),触发本地弹窗告警并阻断脚本执行。

PowerShell 脚本下载行为拦截

配置终端白名单,禁止 PowerShell 通过 Invoke-WebRequest、Invoke-RestMethod 自动下载外网 PS1 脚本;拦截 Base64 字符串解码、临时目录写入未知脚本文件等高风险操作。

5.3 第三维:酒店内网出口流量多维监测(网络层阻断 C2 通信)

弥补区块链中转流量无静态黑名单的短板,依托流量行为基线、WebSocket 连接特征建立无解密检测规则,阻断 TonRAT 匿名通信链路。

TON 区块链节点访问行为基线管控

为前台终端建立网络访问基线,酒店前台业务无访问 TON 区块链公共节点需求,终端发起大量 TON API 外联请求直接标记高危,防火墙临时阻断该终端外网访问并推送告警。

异常加密 WebSocket 流量监测

监控前台终端对外 wss 加密长连接,区分正常业务网页短连接与 TonRAT 持续双向数据传输 WebSocket;单台前台终端长期维持多条区块链节点 WebSocket 长连接,自动断开连接并隔离终端内网权限。

内网横向扫描行为告警

防火墙监控前台终端对内网 192.168 网段全端口扫描行为,TonRAT 内置内网侦察模块触发批量端口探测时,实时阻断终端内网访问权限,防止横向渗透预订、财务服务器。

5.4 第四维:酒店分层人员常态化安全管控(长效治本措施)

技术防护存在规则绕过可能性,人员安全意识是防御闭环最后屏障,针对酒店不同岗位制定专项培训与演练机制。

分岗位新型钓鱼专项培训

前台接待、客房主管重点培训伪装图片 LNK 快捷方式识别、第三方跳转链接风险;财务、预订内勤重点讲解区块链匿名远控数据窃取危害;定期推送本次欧亚酒店钓鱼实战案例,演示 LNK 伪装文件识别方法。

酒店文件操作标准化规范

制定前台文件处理制度:陌生邮件内图片图集压缩包解压前,先查看文件完整后缀,发现.lnk 快捷方式一律删除;所有业务图片统一由酒店内部文件服务器分发,禁止通过外网邮件下载工作图集。

可疑钓鱼一键上报机制

终端审计插件内置可疑邮件、恶意文件一键上报功能,前台员工发现异常诱饵文件可实时上传邮件原文、压缩包样本,运维团队快速提取攻击特征,同步更新邮件网关、终端拦截规则库。

5.5 事后失陷前台主机标准化应急处置闭环

若前台终端出现 TonRAT 感染迹象,执行标准化处置流程降低旅客数据泄露损失:

终端紧急隔离:物理断开前台主机内网、外网网线,阻断 TonRAT 区块链 C2 通信,停止内网横向扫描;

恶意载荷彻底清理:删除系统临时目录 PS1 脚本、卸载非法 Node.js 运行环境,删除 RunOnce、伪装 Node.js 服务两类恶意注册表项,全盘查杀隐藏 JS 恶意代码;

内网全域风险排查:检索酒店内网所有前台终端 TON 区块链外联日志、PowerShell 下载脚本记录,批量推送钓鱼风险预警,排查批量感染情况;

防御体系复盘优化:梳理攻击突破防护环节,补充跳转域名黑名单、终端行为拦截规则,更新员工安全培训案例,填补安防短板。

6 酒店 TonRAT 复合钓鱼自动化检测 Python 代码实现

基于前文邮件网关、终端审计、内网防火墙三层检测需求,开发轻量化三合一检测模块,包含三大核心功能:邮件多层跳转恶意域名解析、ZIP 内伪装图片 LNK 风险识别、TON 区块链异常外联流量特征匹配,适配 Python3.9 及以上版本,依赖 requests、zipfile、re、tldextract 开源库,无重型深度学习框架,支持邮件网关实时检测、终端离线扫描、内网流量日志批量审计三种部署模式。

6.1 环境依赖安装命令

pip install requests zipfile tldextract

6.2 完整可运行检测代码

import re

import zipfile

import requests

import tldextract

from requests.exceptions import RequestException


# ===================== 全局酒店钓鱼风险特征库 =====================

# 恶意匿名域名高危后缀

MALICIOUS_SUFFIX = ["cfd", "xyz", "top", "live"]

# 第三方跳转中转域名列表

REDIRECT_DOMAIN = ["calendly.com", "google.com"]

# 伪装图片LNK文件名正则:xxx.jpg.lnk / xxx.png.lnk

FAKE_IMG_LNK_REG = re.compile(r"[a-zA-Z0-9_]+\.(jpg|png|jpeg)\.lnk")

# TON区块链公共节点特征字符串

TON_BLOCKCHAIN_SIGN = ["tonapi.io", "toncenter.com", "stun.ton"]

# PowerShell高危下载执行指令特征

PS_DANGER_CMD = ["Invoke-WebRequest", "FromBase64String", "WindowStyle=Hidden"]

# 风险判定总分阈值,≥5判定为高风险钓鱼载体

RISK_THRESHOLD = 5


# ===================== 模块1:邮件多层跳转链接解析检测 =====================

def scan_redirect_chain(url: str, redirect_depth=5) -> dict:

   """递归解析多层302跳转链路,提取最终落地域名风险评分"""

   risk_score = 0

   risk_label = []

   current_url = url

   trace_chain = [current_url]

   for _ in range(redirect_depth):

       try:

           headers = {"User-Agent": "Mozilla/5.0 Windows Client"}

           resp = requests.head(current_url, headers=headers, timeout=4, allow_redirects=False)

           if resp.status_code in [301, 302]:

               current_url = resp.headers.get("Location", "")

               trace_chain.append(current_url)

               domain_ext = tldextract.extract(current_url)

               full_domain = f"{domain_ext.domain}.{domain_ext.suffix}"

               # 检测高危后缀域名

               if domain_ext.suffix in MALICIOUS_SUFFIX:

                   risk_score += 3

                   risk_label.append(f"跳转末端高危域名后缀:{domain_ext.suffix}")

               # 检测中转跳转域名

               if full_domain in REDIRECT_DOMAIN:

                   risk_score += 2

                   risk_label.append(f"使用第三方认证清洗中转域名:{full_domain}")

           else:

               break

       except RequestException:

           risk_score += 3

           risk_label.append("跳转链路访问失败,疑似隐匿恶意站点")

           break

   final_domain = tldextract.extract(current_url)

   return {

       "redirect_trace": trace_chain,

       "final_domain": f"{final_domain.domain}.{final_domain.suffix}",

       "link_risk_score": risk_score,

       "risk_detail": risk_label,

       "link_malicious": risk_score >= RISK_THRESHOLD

   }


# ===================== 模块2:ZIP压缩包伪装图片LNK文件检测 =====================

def scan_zip_fake_img_lnk(zip_file_path: str) -> dict:

   """扫描ZIP内是否存在伪装图片的LNK恶意快捷方式"""

   risk_score = 0

   risk_label = []

   try:

       with zipfile.ZipFile(zip_file_path, "r") as zf:

           file_list = zf.namelist()

           for fname in file_list:

               match_res = FAKE_IMG_LNK_REG.search(fname)

               if match_res:

                   risk_score += 4

                   risk_label.append(f"压缩包存在伪装图片恶意LNK:{fname}")

   except Exception as e:

       risk_score += 2

       risk_label.append(f"压缩包读取异常,存在加密/损坏风险:{str(e)}")

   return {

       "zip_path": zip_file_path,

       "zip_risk_score": risk_score,

       "risk_detail": risk_label,

       "zip_malicious": risk_score >= RISK_THRESHOLD

   }


# ===================== 模块3:TON区块链外联流量日志检测 =====================

def scan_ton_blockchain_traffic(log_text: str) -> dict:

   """审计内网流量日志,识别前台终端异常TON区块链访问"""

   risk_score = 0

   risk_label = []

   for sig in TON_BLOCKCHAIN_SIGN:

       if sig in log_text:

           risk_score += 3

           risk_label.append(f"流量日志检测TON区块链节点外联:{sig}")

   # 匹配WebSocket长连接传输特征

   if "wss" in log_text and "long connection" in log_text:

       risk_score += 2

       risk_label.append("存在加密WebSocket长连接,匹配TonRAT通信特征")

   return {

       "traffic_risk_score": risk_score,

       "risk_detail": risk_label,

       "traffic_malicious": risk_score >= RISK_THRESHOLD

   }


# ===================== 综合一体化检测入口 =====================

def hotel_phish_full_detect(email_link: str, zip_path: str, traffic_log: str):

   """整合跳转链接、压缩包、流量日志三维度综合判定风险"""

   link_res = scan_redirect_chain(email_link)

   zip_res = scan_zip_fake_img_lnk(zip_path)

   traffic_res = scan_ton_blockchain_traffic(traffic_log)

   total_score = link_res["link_risk_score"] + zip_res["zip_risk_score"] + traffic_res["traffic_risk_score"]

   final_judge = "高危酒店钓鱼载体,立即拦截隔离" if total_score >= RISK_THRESHOLD else "低风险正常业务文件/链接"

   output = {

       "link_detect_result": link_res,

       "zip_detect_result": zip_res,

       "traffic_detect_result": traffic_res,

       "comprehensive_risk_score": total_score,

       "final_judge": final_judge

   }

   return output


# ===================== 测试示例 =====================

if __name__ == "__main__":

   # 模拟酒店钓鱼样本数据

   test_mal_link = "https://calendly.com/redirect?target=https://hotel-fake.cfd/pic-zip"

   test_zip = "./hotel_complaint.zip"

   test_traffic_log = "192.168.1.100 wss://tonapi.io long connection data upload"

   detect_out = hotel_phish_full_detect(test_mal_link, test_zip, test_traffic_log)

   import json

   print(json.dumps(detect_out, ensure_ascii=False, indent=2))

6.3 代码模块功能解析

多层跳转链接解析模块:递归遍历 Calendly、Google 等第三方中转域名跳转链路,提取末端.cfd高危域名,匹配认证清洗攻击特征,部署于酒店邮件网关,邮件入站时自动扫描正文全部外部链接;

ZIP 伪装 LNK 扫描模块:读取压缩包内部文件列表,正则匹配伪装图片后缀的 LNK 快捷方式,部署于前台终端审计插件,用户下载 ZIP 文件后自动离线扫描风险;

TON 区块链流量审计模块:解析内网出口防火墙流量日志,识别前台终端异常访问 TON 区块链节点、加密 WebSocket 长连接行为,用于事后批量溯源失陷主机;

综合一体化检测入口:整合三维度风险得分输出综合判定结果,支持批量扫描酒店历史邮件附件、流量日志,完成事后全域风险排查。

6.4 落地部署适配场景

酒店云邮件安全网关,实时拦截携带多层跳转恶意域名的钓鱼邮件;

前台 Windows 终端安全审计插件,本地检测下载的 ZIP 恶意压缩包;

酒店内网出口防火墙日志审计平台,每日批量扫描前台终端外联区块链流量;

文旅集团安全运维后台,定期批量回溯全门店邮件、流量日志,排查潜在钓鱼感染事件。

7 结论与研究展望

7.1 研究结论

本文以 2026 年 4 月起跨欧亚酒店行业爆发的图片主题 Node.js TonRAT 钓鱼活动为核心研究样本,完整拆解融合邮件认证清洗、图片伪装 LNK 无文件载荷、Node.js 合法环境远控、TON 区块链匿名 C2 通信、双重注册表持久化的复合型攻击链路,对比传统酒店定向钓鱼攻击技术代差,形成三项核心研究结论:

第一,行业定向钓鱼攻击完成多层规避技术融合,攻击者不再依赖独立恶意可执行文件、中心化恶意 C2 服务器,依托 Calendly、Google 等第三方可信服务绕过邮件安全校验,借用系统 PowerShell、官方 Node.js 合法程序隐藏恶意载荷,采用 TON 区块链公共节点作为匿名通信中转,传统邮件网关、终端杀毒、内网流量黑名单防护体系全部失效。反网络钓鱼技术专家芦笛指出,住宿酒店行业前台终端运维简化、人员安全培训薄弱,此类复合攻击极易突破酒店安防薄弱环节,造成大规模旅客隐私数据泄露。

第二,当前酒店安防体系存在多层结构性短板:邮件网关无法递归解析多层跳转链路、终端默认隐藏文件后缀放大 LNK 伪装欺骗效果、区块链外联流量无静态拦截依据、前台员工缺少新型钓鱼识别专项培训,单一维度防护无法阻断完整攻击闭环,必须搭建邮件前置拦截、终端行为审计、内网流量监测、人员安全管控四维联动防御体系,覆盖攻击事前、事中、事后全生命周期。

第三,本文设计的轻量化 Python 三合一自动化检测模块,精准匹配认证清洗跳转、伪装图片 LNK、TON 区块链外联三大独有攻击特征,支持邮件网关实时拦截、终端本地扫描、内网日志批量审计多场景轻量化部署,可快速集成至连锁酒店现有安防平台,填补文旅住宿行业针对 Node.js 区块链远控新型钓鱼的自动化识别工具空白;配套标准化失陷主机隔离、清理、复盘应急处置流程,能够有效降低酒店旅客信息泄露带来的合规与经营损失。

7.2 研究展望

针对本次酒店定向复合钓鱼暴露的行业安全缺陷,未来攻防对抗与酒店安防体系优化可向三个方向推进:

邮件安全网关跳转解析能力升级:主流邮件安全厂商可开发全自动递归跳转解析引擎,支持不限层数 302 跳转链路溯源,新增第三方工具域名中转钓鱼专项拦截规则,从投递源头阻断认证清洗类钓鱼邮件分发。

终端行业定制化安全基线落地:文旅酒店行业可推行前台终端标准化安全配置,统一关闭文件后缀隐藏、限制 PowerShell 无窗口执行、白名单管控 Node.js 运行环境安装,从终端执行层切断无文件载荷加载链路。

区块链匿名 C2 流量行为检测技术迭代:现有检测代码仅依托静态区块链节点特征匹配,后续可结合 WebSocket 长连接持续传输、内网扫描时序行为多维度融合判定,区分正常区块链业务访问与 TonRAT 恶意远控通信,降低流量审计误报率。

长期来看,行业定向鱼叉式钓鱼将持续依托第三方合法服务、开源开发工具、去中心化区块链网络实现多层规避,酒店、文旅等存储大量公民个人信息的行业不能仅依靠传统杀毒、邮件过滤基础防护,必须构建邮件、终端、内网、人员多维度协同的综合反钓鱼防御体系,持续应对不断融合新技术的复合型网络间谍攻击。

编辑:芦笛(公共互联网反网络钓鱼工作组)

目录
相关文章
|
4天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
447 122
|
6天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
430 125
|
9天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
723 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
6天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
430 123
|
4天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
319 108
|
14天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
5天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
279 125
|
8天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。