CyberStrikeLab-lab10 全网首发
字数 3325
更新时间 2026-03-07 12:16:32

Zabbix 5.0.18 渗透测试与内网横向移动综合靶场实战教学文档

1. 靶场背景与目标

本教学文档基于一篇关于“CyberStrikeLab-lab10”靶场实战的公开文章。该靶场环境模拟了一个包含多个漏洞节点的内部网络,旨在通过综合运用漏洞利用、权限提升和内网横向移动技术,获取多个Flag(目标文件)。核心攻击路径涉及对Zabbix监控系统的利用、Linux系统提权以及针对Windows域环境的攻击。

2. Flag1 获取:Zabbix 攻击链

2.1 信息收集与漏洞发现

  • 目标http://172.2.3.13/
  • 识别服务:访问目标发现是Zabbix监控系统。
  • 漏洞探测:使用工具扫描,发现存在api_jsonrpc.php接口信息泄露漏洞。此接口未正确实施访问控制,允许未经认证的用户调用部分API方法。

2.2 API 交互与认证绕过

  1. 探测API版本

    • /api_jsonrpc.php 发送POST请求,调用 apiinfo.version 方法。
    • 请求载荷示例
      {"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}
      
    • 结果:成功返回Zabbix版本号为 5.0.18,确认API接口可访问。
  2. 暴力破解/弱口令攻击

    • 调用 user.login 方法尝试登录。
    • 经过多次尝试,成功使用弱口令 Admin/cslab 获得认证。
    • 成功登录请求载荷示例
      {
       "jsonrpc": "2.0",
       "method": "user.login",
       "params": {
         "user": "Admin",
         "password": "cslab"
       },
       "id": 1,
       "auth": null
      }
      
    • 返回的 auth 字段值即为后续API调用的会话令牌。

2.3 后台RCE与初始立足

  • Zabbix后台提供了脚本创建与执行功能(例如,用于监控的“脚本”功能)。攻击者在获得管理员(Admin)权限后,可利用此功能执行系统命令。
  • 操作步骤
    1. 在Zabbix管理界面的“脚本”功能中,创建一个新的脚本。
    2. 脚本内容为系统命令,例如 whoamiid 或文件读取命令 cat /flag1
    3. 在主机上执行该脚本。测试成功,但发现当前权限为普通用户,无法直接读取Flag。
  • 获取反向Shell
    1. 在脚本中写入反向Shell命令(例如,使用bashpythonnc)。
    2. 在攻击机上启动监听。
    3. 在Zabbix中执行该脚本,成功获得一个反向Shell连接,权限为普通用户。

2.4 本地权限提升 (Privilege Escalation)

获得初始Shell后,需要将权限提升至root。

  1. 信息收集

    • 查找当前用户具有写权限的脚本或服务文件,这是常见的提权入口。
    • 关键命令:
      # 查找可写的.sh脚本
      find / -writable -type f -name "*.sh" 2>/dev/null
      # 查找可写的systemd服务文件
      find /etc/systemd/system/ -writable -type f 2>/dev/null
      
    • 发现:找到可写文件 /usr/src/setIp.sh,这是一个网络配置脚本。
  2. 利用计划

    • setIp.sh 脚本末尾追加提权命令。目标是让/bin/bash获得SUID权限,这样任何用户执行bash -p时都会以文件所有者(root)权限运行。
    • 追加命令:echo "chmod +s /bin/bash" >> /usr/src/setIp.sh
  3. 触发机制分析

    • 查找该脚本的调用者:grep -r "setIp.sh" /etc/systemd/system/ /etc/cron*
    • 发现:该脚本被一个名为 set-ip-mine.service 的systemd服务调用。
    • 问题:该服务仅在系统重启时执行。攻击者当前权限无法重启系统。
  4. 组合利用漏洞触发重启 (CVE-2024-1086)

    • 为了触发系统重启以执行篡改后的setIp.sh,攻击者利用了Linux内核本地提权漏洞 CVE-2024-1086
    • 注意:在该特定靶场环境中,直接利用该EXP提权会导致系统卡住并重启。这是一个非预期的副作用,但在此被利用为触发器。
    • 操作要点
      • setIp.sh中除了添加chmod +s /bin/bash,还应添加反向Shell命令,以便在系统重启后能重新连接。
      • 在攻击机上持续监听。
      • 在靶机Shell中后台运行 CVE-2024-1086 的EXP。系统随后会崩溃重启。
      • 系统重启过程中,set-ip-mine.service 会执行被篡改的setIp.sh,完成两件事:
        1. 赋予 /bin/bash SUID 权限。
        2. 向攻击机反弹一个新的Shell。
    • 备选方案:如果重启后Web服务(Zabbix)仍正常,可直接通过Zabbix脚本功能执行 /bin/bash -p 获得root shell。
  5. 获取Root权限

    • 系统重启后,等待反向Shell连接。连接成功后,执行 id 命令确认已是root用户。
    • 或者,直接在获得的任何一个Shell中执行 /bin/bash -p,即可获得root权限的shell。
    • 最终成功读取 flag1

3. Flag2 与 Flag3 获取:内网横向移动

在获得第一台主机(Zabbix服务器)的root权限后,进行内网横向移动,攻击域内其他主机。

3.1 网络探测与代理搭建

  • 在已控的Zabbix服务器上进行内网网段扫描(例如 172.2.4.0/24),发现新的目标。
  • 通常需要搭建代理(如使用frp, ew, nps等)将内网流量转发到攻击机,以便进行进一步渗透。

3.2 域内信息收集与漏洞利用

  1. 发现目标:扫描发现域控制器(Domain Controller)及其他主机。
  2. 识别漏洞:信息收集过程中,发现域控制器存在 Zerologon (CVE-2020-1472) 漏洞。这是一个严重的Netlogon特权提升漏洞,允许攻击者在未经验证的情况下,将域控的计算机账户密码置空,从而获取域控权限。
  3. 漏洞验证与利用
    • 使用公开的Zerologon漏洞扫描脚本(如 zerologon_tester.py)验证漏洞存在。
    • 使用利用脚本(如 zerologon_exploit.py)攻击域控制器,将其计算机账户密码重置为空。
  4. 导出凭据
    • 利用获得的空密码,通过 secretsdump.py (Impacket套件) 等工具从域控制器导出所有的哈希值(NTLM Hashes),包括域管理员(Administrator)的哈希。
  5. 横向移动
    • 使用导出的域管理员(Administrator)的NTLM哈希,通过Pass-the-Hash (PtH) 攻击,即可登录域内的任何主机。
    • 分别登录存有 flag2flag3 的主机,读取目标文件,完成整个攻击链。

4. 关键漏洞与技术点总结

  1. Zabbix API 未授权访问/信息泄露:允许攻击者探测版本和尝试认证。
  2. 弱口令Admin/cslab
  3. Zabbix 后台脚本功能RCE:拥有后台权限即可通过脚本功能执行操作系统命令。
  4. 不安全的文件权限:普通用户可修改系统启动脚本 (/usr/src/setIp.sh)。
  5. 特权服务滥用:利用可写的启动脚本,结合触发系统重启的漏洞,实现权限提升。
  6. Linux 内核本地提权漏洞 (CVE-2024-1086):被用作触发系统重启的“扳机”。
  7. Zerologon 漏洞 (CVE-2020-1472):攻击域控制器的关键,可获取域内最高权限。
  8. Pass-the-Hash (PtH):利用获取的哈希进行横向移动,无需破解明文密码。

5. 防御建议

  • Zabbix
    • 强化API接口访问控制,禁止未授权访问。
    • 强制使用强密码策略,禁用或重命名默认账户。
    • 严格控制脚本功能的使用范围和权限,遵循最小权限原则。
  • 操作系统
    • 定期更新系统与内核,及时修补已知漏洞(如CVE-2024-1086)。
    • 审计系统内关键脚本和服务的文件权限,确保非特权用户无可写权限。
    • 最小化systemd服务,并严格控制其配置文件的权限。
  • 域环境
    • 立即安装并确认已修复 Zerologon 漏洞(微软2020年8月补丁)。
    • 启用强制认证机制,防止Netlogon特权提升。
    • 实施网络分段,限制关键服务器(如域控)的访问来源。
    • 监控异常的身份验证和账户行为(如计算机账户密码被重置)。
相似文章
相似文章
 全屏