CikaBika Bot:Rust 远控借 Discord 当 C2,靠假 Word 快捷方式投递

一份“法文商业提案”的磁盘镜像,点开里面的 Word 图标,屏幕上弹出的是 PDF,后台跑起来的是远控。Darktrace 10 月中旬披露的 CikaBika Bot,用 Rust 编写、拿 Discord 频道当 C2、借 Ngrok 传文件,把一串合法服务拼成完整的攻击基础设施。

事件概述

Darktrace 团队在分析一起 Windows 入侵时提取到该样本,10 月 17 日至 18 日公开分析。投递物是名为 Proposition_Projet.img 的磁盘镜像,内含一份法语、主题为“如何写摘要”的 PDF,以及一个伪装成 Word 文档的快捷方式。打开快捷方式后,隐藏的 PowerShell 进程在后台启动,PDF 弹到前台吸引注意力。

整条链路含 Nim 加载器、Rust DLL 与 PowerShell 脚本三个组件,最终形成每台受害机器一个 Discord 频道的控制通道。研究者提醒,DLL 侧加载并非在所有主机上都成立。

技术细节

各阶段手法如下:

  • 载荷隐藏:PowerShell 把那份假 PDF 当原始数据读取,取出文件内隐藏的数值作为密钥,解密并释放 Nim 加载器到临时目录;
  • 侧加载落位:加载器带出 Rust DLL 和一段 PowerShell 脚本,脚本把 DLL 复制进 Microsoft Edge 安装目录并命名为 dbghelp.dll,正是 Edge 会正常加载的调试库名;
  • 绕过提权提示:为写入受保护目录,脚本修改注册表并滥用 computerdefaults.exe 绕过 UAC;Darktrace 将这一手法归类为 DLL 搜索顺序劫持;
  • 上线注册:木马收集主机信息,执行 tasklist 与 ipconfig,截屏,然后向 Discord 注册这台设备,新建一个专属频道;
  • 指令通道:命令集覆盖远程 shell、进程列举与结束、文件上传下载、摄像头访问、屏幕串流,大文件传输走 Ngrok 隧道。

研究者指出一处技术保留:植入的 DLL 未导出 Edge 延迟导入表中的全部函数,侧加载在部分主机上可能失败。公开材料证明的是攻击者搭好了这条路径,而非 Edge 一定成功加载。

影响评估

Discord 流量在多数企业网络默认放行,端点工具也不会把聊天消息当指令解析,攻击者因此不需要注册可疑域名或租服务器。账号被封的代价很低;Ngrok 承担文件传输,也留了备用通道。

Nim 与 Rust 在商品化恶意软件中都不常见,签名与启发式覆盖偏薄。磁盘镜像能绕过多数邮件网关的附件类型过滤,法语诱饵说明当前投放有人群指向,但工具链与语言无关,换语种只是重做一份诱饵文档。

修复建议

检测应当按行为而不是签名来做,可先落这几条:

  • 邮件与 Web 网关阻断 .img、.dmg 等磁盘镜像附件;
  • 对不应使用 Discord 的终端限制出站,保留时监控其 WebSocket 连接;
  • 监控 Edge 安装目录内出现的 dbghelp.dll,正常环境不应由该目录提供;
  • 监控 HKCU\Software\Classes\ms-settings\Shell\Open\command 的异常写入;
  • 监控向 *.ngrok.io、*.ngrok-free.app 的出站连接;
  • 启用 Defender ASR 规则,UAC 调到最高,关闭非管理员静默提权。
dir "C:\Program Files (x86)\Microsoft\Edge\Application" /b | findstr /i dbghelp

命中后按入侵处理:隔离主机、导出 Discord 与 Ngrok 连接记录、重置该机保存的凭据,再重装系统。

参考来源