GetWindowsIEEE8021x(SSID)命令注入漏洞CVE-2024-56334
Systeminformation是一个轻量级的 Node.js 库,旨在提供跨平台的系统信息获取功能,支持Windows、macOS 和 Linux等各种操作系统。
自2015年发布以来,Systeminformation已经成为开发者们获取系统信息的首选工具之一,提供一致的接口来获取系统的硬件和软件信息。
一、基本情况
Systeminformation是一个轻量级的 Node.js 库,其提供了超过 50 种函数来获取详尽的硬件系统和操作系统信息,因此易于集成进项目中。
这个库覆盖包括 Linux、macOS(部分)、Windows(部分)、FreeBSD、OpenBSD、NetBSD、SunOS 及 Android 等多个平台的支持。
无论需要全面了解系统状况还是仅仅想获取特定的数据,Systeminformation 都可以满足需求,帮助用户在各个平台上轻松获取系统信息。
栋科技漏洞库关注到Systeminformation中GetWindowsIEEE8021x(SSID)函数命令注入漏洞,追踪CVE-2024-56334,CVSS评分7.8。
二、漏洞分析
Systeminformation是node.js的系统和操作系统信息库,SSIDs作为“getWindowsIEEE8021x”函数中的参数传递给cmd.exe前不会被清理。
这意味着SSID中的恶意内容可作为操作系统命令执行,根据包的使用方式,该漏洞可能使攻击者能够执行远程代码执行或本地权限提升。
攻击者可以使用该模块版本 5.22.11 的 Windows 服务中,通过利用该漏洞来提升权限,常规情况下,攻击者是有权执行此操作的环境中。
代码中看到,漏洞代码存在于 master 分支中,位于network.js 的第 403/404行:
SSID 从netsh wlan show interface ...in获取getWindowsWirelessIfaceSSID,
然后传递到cmd.exe /d /s /c "netsh wlan show profiles ...in getWindowsIEEE8021x,无需清理。
三、POC概念验证
1、首先,命令注入有效负载应包含在连接的 Wi-Fi SSID 中。
例如,在手机或其他笔记本电脑上创建热点,将 SSID 设置为有效负载,然后使用受害 Windows 系统连接到它。
下面是两个用于演示利用的 SSID 示例。
无限期运行 ping 命令的演示:
a" | ping /t 127.0.0.1 &
使用执行易受攻击函数的用户的权限运行可执行文件。选择的可执行文件应放置在(假设系统驱动器是 C):C:\a\a.exe。
a" | %SystemDrive%\a\a.exe &
然后,可以在受害系统上执行易受攻击的函数,例如使用:
const si = require('systeminformation');
si.networkInterfaces((net) => { console.log(net) });
现在选择的命令,PING.exe或a.exe将通过cmd.exe命令行运行。
2、影响 :根据包的使用方式,此漏洞可能使攻击者能够执行远程代码执行或本地权限提升。
四、影响范围
Sebhildepandt Systeminformation <= 5.23.6
五、修复建议
Sebhildepandt Systeminformation ><= 5.23.7
六、参考链接