2025年10月,思科Talos团队在日常威胁狩猎中注意到一组异常流量。攻击者用RAR和7-Zip压缩包当诱饵,目标锁定台湾的非政府组织和疑似高校机构。这不是普通的钓鱼——他们塞进了一个叫LucidRook的恶意程序,内核嵌着完整的Lua 5.4.8解释器,用Rust编译的库当骨架,专门下载执行加密的Lua字节码。
Ashley Shen是Talos的研究员,她形容LucidRook是个"复杂的stager(阶段式加载器)"。翻译成人话:它像个遥控木偶,本身不干活,只负责拉取真正的攻击代码。这种设计让防守方很难一次性抓全——你 dissect(解剖)了样本,看到的只是一层壳。
攻击链条有两条分支。第一条走Windows快捷方式(LNK)路线:受害者收到带PDF图标的文件,双击后触发PowerShell脚本,启动压缩包里的"index.exe"——这是个合法Windows程序,但被用来侧载恶意DLL(LucidPawn)。LucidPawn再侧载一次,才把LucidRook送进内存。
第二条更隐蔽。攻击者伪造了趋势科技的杀毒软件"Cleanup.exe",塞进7-Zip包里。受害者运行后,程序弹窗提示"清理完成",后台已经用DLL侧载把LucidRook部署到位。两条路的终点相同,只是入口不同——这种冗余设计说明攻击者在A/B测试哪种伪装更有效。
LucidRook本体是个64位Windows DLL,做了重度混淆。它的任务分两步:先收集系统信息外传到C2服务器,再接收加密的Lua字节码 payload(有效载荷),本地解密执行。Talos发现,攻击者把OAST服务(带外应用安全测试服务)和沦陷的FTP服务器混着用当指挥基础设施,这种"混搭"增加了追踪难度。
LucidPawn有个细节值得玩味:它会检查系统UI语言,只有匹配"zh-TW"(繁体中文台湾区域设置)才继续执行。地理围栏(geofencing)这招一举两得——既确保 payload 落在目标人群机器上,又能绕过大部分沙箱环境。国际厂商的自动化分析平台通常跑英文系统,这一步直接让它们看不见。
更奇怪的是,Talos在某个LucidPawn变体里发现了另一个DLL:LucidKnight。它的功能更单一,只负责把系统信息通过Gmail发到临时邮箱。侦察工具和主武器同时出现,暗示攻击者在分阶段评估目标价值——先派轻量级的LucidKnight踩点,高价值目标再喂LucidRook。
思科把幕后团伙编号为UAT-10362,"UAT"是"未知攻击者"的缩写。2025年10月至今,他们的活动周期恰好3个月,工具链从dropper到stager再到侦察模块,完整度不像新手作品。Lua解释器嵌入恶意软件不算首创,但和Rust库、DLL侧载、地理围栏组合使用,这套技术栈在针对华语区的攻击里相对少见。
台湾NGO成为靶子,背景不难猜。这类组织常涉及敏感议题,成员安全意识参差,邮件往来频繁且附件多——钓鱼的性价比极高。高校侧的目标"疑似"出现,Talos没给确切证据,但学术机构历来是情报收集的软目标:开放网络、大量访客设备、研究数据价值高。
LucidRook的技术选型透露了攻击者的工程思维。Lua轻量、可热更新、字节码容易混淆;Rust编译的库内存安全、逆向工程难度大;DLL侧载借合法程序签名过白名单。每一层都不是尖端技术,但叠在一起,防御方的检测成本指数级上升。
Talos的披露没提归因,没指认国家背景。这种克制在威胁情报报告里越来越常见——证据到哪说到哪,剩下的留给读者。UAT-10362的命名方式也说明思科没把它和任何已知APT(高级持续性威胁)团伙挂钩,这是个"新面孔"。
对防守方来说,这条攻击链的突破口在哪?LNK文件执行PowerShell、.NET程序做dropper、DLL侧载——这些行为都有检测点,但窗口期极短。地理围栏让自动化分析失效,意味着人工狩猎的价值上升。Talos能发现,靠的是"日常威胁狩猎"而非特征码告警,这本身就是个信号。
一个悬而未决的问题:Lua字节码 payload 的具体内容是什么?Talos没拿到解密后的样本。是键盘记录、文件窃取、还是横向移动工具?攻击者的第二阶段能力仍是黑箱。这或许是UAT-10362最棘手的部分——你知道他们进来了,但不知道他们还能做什么。
热门跟贴