OSCP Forgotten Write-up

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

一、靶场详情

靶场名称:

Forgotten

靶场地址:

https://app.hackthebox.com/machines/Forgotten

靶场环境连接说明:

演示为 HackTheBox 平台在线靶机,需通过 OpenVPN 客户端连接平台提供的 VPN 环境才能访问靶机。注意:平台新发布的靶机可以免费练习,而历史靶机则需要开通会员才能使用。还需要注意连接 HackTheBox 平台 VPN 需要挂载代理,具体方式可参考之前的历史文章或留言。

二、思路总结

突破边界(获取用户旗帜):

本地创建 mysql 数据库 –> 初始化靶机 LimeSurvey 应用(设置后台密码) –> LimeSurvey 后台添加恶意插件 –> 容器 limesvc 用户权限 –> 容器环境变量泄漏 limesvc 用户密码 –> 容器 root 用户权限,宿主机 limesvc 用户权限 –> 用户旗帜

权限提升(获取管理员旗帜):

容器与宿主机目录映射配置 –> 容器内复制 /bin/bash 至映射目录,赋予程序 suid 权限 –> 宿主机 root 权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

使用 nmap 对靶机进行端口扫描。

TCP 端口扫描:

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

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

UDP 端口扫描:未发现可利用的端口。

继续使用 nmap 对已开放端口的服务进行信息收集。

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
sudo nmap -p22,80 -sCV 10.129.144.59

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 28:c7:f1:96:f9:53:64:11:f8:70:55:68:0b:e5:3c:22 (ECDSA)
|_ 256 02:43:d2:ba:4e:87:de:77:72:ce:5a:fa:86:5c:0d:f4 (ED25519)
80/tcp open http Apache httpd 2.4.56
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: Host: 172.17.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel

由此得出结论:

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

3.2 渗透测试突破边界

3.2.1 本地构建数据库初始化靶机 LimeSurvey 应用

靶机 HTTP 80 服务状态码默认为 403,尝试目录枚举,可得到 survey 目录。

访问 survey 目录会重定向至 LimeSurvey 安装页面,安装过程会卡到配置数据库页面,多次尝试均无法跳过,尝试在本地部署 mysql 应用供靶机访问。

参考链接:

1
https://hub.docker.com/_/mysql

1
sudo docker pull mysql

1
2
3
sudo docker run -itd --rm --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -e MYSQL_USER=test -e MYSQL_PASSWORD=test123 -e MYSQL_DATABASE=test mysql

# 注意:root密码必须设置

继续进行靶机 LimeSurvey 应用初始化,在安装页面配置 kali 数据库可完成后续安装。

设置管理员账号密码。

使用设置的密码可登录 LimeSurvey 应用后台。

3.2.2 LimeSurvey 应用后台上传恶意插件 RCE

LimeSurvey 应用后台可上传恶意插件获取系统反弹 shell。

参考链接:

1
https://github.com/Y1LD1R1M-1337/Limesurvey-RCE

下载 GitHub 漏洞利用源码,由于当前 LimeSurvey 应用为 6.3.7 版本,需修改 config.xml 和 PHP 反弹 shell 文件。

将修改后的文件压缩为 Y1LD1R1M.zip。

1
zip Y1LD1R1M.zip config.xml php-rev.php

配置-插件 上传 zip 压缩包。

在 kali 使用 nc 监听 80 端口,访问上传的 shell 文件,得到系统 limesvc 用户权限。

1
2
nc -lvnp 80
curl http://10.129.144.59/survey/upload/plugins/Y1LD1R1M/php-rev.php

升级 shell 为交互式,注意: 系统没有 python 环境,需要借助 /usr/bin/script 工具。

3.2.3 容器环境变量泄漏 limesvc 用户密码

当前 shell IP 地址属于 172.17 段,并在根目录发现 .dockerenv 文件,说明系统属于容器环境。

容器 limesvc 用户属于 sudo 组,在 Linux 环境变量可得到用户密码,使用该密码可切换至容器 root 用户,也可利用该密码 ssh 登录宿主机。

1
env

容器环境变量

容器 root 权限

宿主机 limesvc 用户权限

3.2.4 用户旗帜获取

3.3 提权获取系统最高权限

3.3.1 容器、宿主机目录映射滥用,得到系统 root 用户权限

宿主机 /opt/limesurvey 目录文件与容器 /var/www/html/limesurvey 相同,怀疑容器与宿主机目录存在映射关系,尝试在容器 /var/www/html/limesurvey 创建文件并添加用户属性,宿主机 /opt/limesurvey 目录也会同步该文件以及文件属性。

容器目录

宿主机目录

容器测试创建文件

宿主机文件

在容器复制 /bin/bash 文件至 /var/www/html/limesurvey 目录,并赋予 SUID 权限,然后在宿主机执行该文件,可得到宿主机 root 用户权限。

容器

宿主机

通过 SUID 权限的 bash 提权至系统 root 用户权限。

3.3.2 管理员旗帜获取

Thanks

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

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


OSCP Forgotten Write-up
https://www.f0nesec.top/2025/10/21/oscp-forgotten/
作者
F0ne
发布于
2025年10月21日
许可协议