最新消息:

安装OpenClaw 后 Telegram 账号被劫持:一次价值5000美金的真实诈骗事件复盘

佳软 yeeach 451浏览 0评论

最近亲身经历了一起安装OpenClaw后 Telegram 账号被未知设备接管导致被诈骗的事件。

昨天早上5点左右起床后,看到一个关系很亲近的朋友在Telegram打招呼,回复了他。7点左右朋友上线后正常闲聊了几句,然后找我借钱,由于关系很近,也未发现什么异常,因此转了5000U。朋友并未答复,也没在意。中午时候也未答复,觉得有点怪,因此在微信里面问朋友,将聊天记录截图发给他,他的手机上看不到发送的聊天记录,聊天历史还是几天前的。

朋友回顾了最近的主要操作:在Windows 11 上安装了龙虾助手,平常用Telegram也主要在那台Windows上,已知的情况汇总:

  • Windows 安装了龙虾助手 clawaide.com 后,Telegram 账号被未知设备登陆
  • 在Settings->Privacy and Security->Active sessions 能看到一台未知的华为设备
  • 未知设备和我聊天是在在以往的聊天历史中进行,并不是新的私密聊天
  • 朋友的其他设备(手机)同一账号的Telegram未收到新设备登陆消息
  • 朋友在自己Telegram聊天记录看不到今天和我的聊天记录
  • Telegram 账号添加了邮箱作为辅助验证
  • 龙虾助手(OpenClaw)忘记了具体安装了哪些Skills(发现问题后,立即卸载掉了,因此无法再查询)

和Claude/ChatGPT/Grok/Gemini聊天半天后,搞清楚了Telegram被劫持的技术原理:

龙虾助手是 OpenClaw 的 Windows 一键安装工具,OpenClaw要接入 Telegram 时,主要有两种方案:

  • OpenClaw推荐方案:通过 @BotFather 创建 Bot 并获取 HTTP API Token,OpenClaw官方版本不支持以普通用户账号登录(userbot / MTProto),也不推荐自行添加该功能
  • MTProto接入:ClawHub 上 有一些Skills 支持直接使用 MTProto 会话进行更深度的集成(自动化回复、读取历史、主动发消息)。

MTProto接入集成需要极高的权限:读取消息、发送消息、访问会话数据等。一旦 OpenClaw 或其安装的插件、Skills 出现权限配置不当、提示注入、WebSocket 暴露、ClawHub 恶意技能等问题,就会导致Telegram 会话被本地工具克隆或接管。

刚好这两天又爆出了 Axios npm 供应链投毒事件, OpenClaw 也受影响,风险无处不在啊。

 

此次攻击事件分析:

分析1:tdata 文件夹被窃取

Telegram Desktop 在 Windows 上将登录凭证完整地存储在本地:C:\Users\<用户名>\AppData\Roaming\Telegram Desktop\tdata\

这个文件夹是Telegram已经完成验证的会话令牌(session token)的完整快照。任何人只要拿到这个文件夹,就可以在另一台设备上直接还原你的 Telegram 登录状态,无需你的手机号、无需验证码、无需任何二次验证。

OpenClaw 安装后拥有电脑的完整权限,具备读取任意本地文件的能力,如果安装了恶意的插件或Skill,可以在用户无感知的情况下,将 tdata 文件夹打包上传给了攻击者控制的服务器。

 

分析2:为什么邮箱验证没有触发?

明明设置了邮箱辅助验证,为什么没有收到任何登录验证通知?

答案在于 Telegram 的登录机制:邮箱辅助验证(以及短信验证码)只在创建新 session 时触发。

攻击者拿到 tdata 之后,并不是”重新登录”,攻击者把已有的 session 整体复制到另一台设备上运行,对 Telegram 的服务器来说,这个 session 本来就是合法存在的,不是”新登录”,因此:

  • 不触发邮箱验证
  • 不触发短信验证码
  • 其他设备不收到登录提醒

也就是:对于 tdata 被盗这种攻击方式,邮箱/2FA作为验证手段几乎是无效的。

 

分析3:为什么聊天记录在自己的设备上消失了?

由于聊天是在原有的历史记录中进行,因此不是私密聊天。Telegram 的秘密聊天必须单独发起,不能直接把现有的普通聊天切换成秘密聊天。

朋友在自己控制的设备上看不到聊天历史,最有可能的情况:

攻击者通过 MTProto API 直接调用 messages.deleteMessages,在服务器端单向删除掉聊天记录,因此朋友在自己控制的设备上看不到聊天记录。

通过Telegram 的官方客户端(Windows/APP)执行”仅为我删除”时,本质上是删除本地缓存,消息仍存在于服务器。但通过 MTProto API 直接调用 messages.deleteMessages,将参数 revoke 设为 false,是在服务器端将消息从发送方的历史记录中移除,但接收方的历史记录完整保留。

 

因此攻击者的完整操作流程因此是:

  • 攻击者从 tdata 中提取 session,用 MTProto 库建立会话连接
  • 发送消息
  • 立即调用 delete_messages(revoke=False),在服务器端抹除发送方历史
  • 接收方已收到并本地存储消息,此后无论攻击者会话是否存活,接收方的聊天记录永久存在
  • 账号所有人的所有设备从服务器同步时,这条消息在自己侧已不存在,永远不会出现

 

防范措施:

  • Telegram/X/微信等IM、社交媒体,一定要启用二次验证2FA或Passkey
  • 不要迷信启用了各种安全措施就万无一失,各种API、AI工具绕过的途径很多,尤其是Axios/LiteLLM 这样的供应链投毒事件基本上很难避免
  • 安装 OpenClaw 类AI工具时,一定要遵循“最小权限”的原则。只在虚拟机或隔离环境运行,不要和日常使用的 Telegram 等放在同一台物理机
  • 安装第三方 Skill / 插件时候一定要谨慎小心,建议用 https://github.com/slowmist/slowmist-agent-security 扫描一下
  • 各种IM上的借钱,一定要打电话和真人确认,没想到我这样行业老司机竟然翻船了

 

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址