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 | |
UDP 端口扫描:未发现可利用的端口。
继续使用 nmap 对已开放端口的服务进行信息收集。
TCP 服务信息搜集:
1 | |
由此得出结论:
系统为 Linux 环境,开放有 HTTP 和 SSH 服务。
3.2 渗透测试突破边界
3.2.1 本地构建数据库初始化靶机 LimeSurvey 应用
靶机 HTTP 80 服务状态码默认为 403,尝试目录枚举,可得到 survey 目录。


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


参考链接:
1 | |

1 | |

1 | |


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


设置管理员账号密码。


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


3.2.2 LimeSurvey 应用后台上传恶意插件 RCE
LimeSurvey 应用后台可上传恶意插件获取系统反弹 shell。
参考链接:
1 | |

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


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

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




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

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

3.2.3 容器环境变量泄漏 limesvc 用户密码
当前 shell IP 地址属于 172.17 段,并在根目录发现 .dockerenv 文件,说明系统属于容器环境。

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

1 | |



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 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡
最后,祝您生活愉快!🌞✨