wkt21/vaultbreaker

GitHub: wkt21/vaultbreaker

一款 HTB 风格的漏洞练习靶机,通过三段式 Flag 提权链帮助安全学习者实践 LFI、密码破解与权限提升等渗透技术。

Stars: 2 | Forks: 0

# VaultBreaker — HTB 风格挑战靶机 IMG_3015 一个刻意设计的包含三 Flag 提权链的 **Hack-The-Box 风格** 漏洞挑战靶机。提供两种可互换的格式: - **Docker** — `docker compose up`(最快,适合快速尝试) - **VirtualBox/VMware OVA** — 基于源码构建的完整可引导 VM ## 目标 | # | 目标 | 获取方式 | |---|-----------|-----------------| | 1 | **访问 VM 并找到 Flag** | 利用文档查看器中的本地文件包含 (LFI) 漏洞读取 `flag1.txt`。 | | 2 | **找到管理员凭据** | 通过 LFI 泄漏应用配置和 SQLite DB,破解管理员密码哈希,认证并登录管理控制台。 | | 3 | **创建一个 reverse shell** | 滥用管理员上传功能部署一个 PHP reverse shell,然后提权至 `root` 获取最终 Flag。 | Flag 格式:`HTB{...}`。完整的解题方案见 [`docs/SOLUTION.md`](docs/SOLUTION.md)。 ## 快速开始 — Docker ``` git clone https://github.com//vaultbreaker.git cd vaultbreaker ./start.sh # or: docker compose up -d --build ``` 目标地址:**http://localhost:8080** ## 快速开始 — OVA (VirtualBox) 从源码构建镜像(需要 Linux 宿主机): ``` sudo apt-get install -y qemu-utils debootstrap grub-pc-bin grub2-common mtools parted e2fsprogs cd ova-build sudo ./build-ova.sh # -> ova-build/vaultbreaker.ova ``` 然后在 VirtualBox 中:**文件 → 导入虚拟电脑 → vaultbreaker.ova**。 控制台登录:`root` / `vaultbreaker`。攻击面:**TCP/80** (Web) + **TCP/22** (SSH)。请确保在关闭 EFI 的状态下导入(传统的 BIOS/MBR 镜像)。详细信息见 [`docs/OVA-USAGE.md`](docs/OVA-USAGE.md)。 ## 仓库结构 ``` vaultbreaker/ ├── html/ # vulnerable PHP web app (shared by Docker + OVA) │ ├── view.php # [vuln] LFI via ?file= │ ├── login.php # admin login (SHA-256 auth) │ ├── admin.php # admin console (shows Flag 2) │ ├── upload.php # [vuln] MIME-only upload check │ ├── config.php # app config / DB path │ └── pages/ # public docs + hints ├── flags/ # flag1.txt (www-data) + flag3.txt (root-only) ├── payloads/ # pentestmonkey php-reverse-shell.php ├── ova-build/ # OVA build from source │ ├── build-ova.sh # one-shot: debootstrap -> grub -> vmdk -> .ova │ └── vaultbreaker.ovf # committed OVF descriptor (size patched at build) ├── docs/ │ ├── SOLUTION.md # full writeup + commands │ └── OVA-USAGE.md # OVA import / networking / caveats ├── Dockerfile # Docker variant ├── docker-compose.yml # exposes :8080 ├── docker-entrypoint.sh # seeds SQLite DB + perms on container start ├── start.sh # convenience launcher ├── LICENSE └── README.md ``` ## Flag 与密钥汇总(供讲师参考) | 项目 | 值 | 位置 | |------|-------|----------| | Flag 1 | `HTB{lf1_g4v3_y0u_th3_f00th0ld}` | `/var/www/flag1.txt` (www-data 可读) | | Flag 2 | `HTB{cr4ck3d_th3_4dm1n_p4ssw0rd}` | Apache 运行时环境 `VAULT_FLAG2` (SetEnv) | | Flag 3 | `HTB{r00t_v1a_sud0_f1nd_r3vsh3ll}` | `/root/flag3.txt` (权限模式 0600,仅限 root) | | 管理员密码 | `letmein123` (SHA-256,包含在 rockyou 中) | SQLite `users.db` | | 控制台 / SSH | `root` / `vaultbreaker` | VM 登录凭据 | Flag 2 被刻意**不**存储在任何源代码文件中 —— 它被注入到了 Apache 运行时环境中,因此预期路径(破解凭据 → 登录)是常规通关方式;高级的 LFI 漏洞仍然可以从 `/proc/self/environ` 中将其恢复。 ## 漏洞概览 | 步骤 | 漏洞 | CWE | |------|-----|-----| | Flag 1 | 未过滤的 `include($_GET['file'])` 导致 LFI | CWE-98 | | Flag 2 | LFI 泄漏了 DB 路径;管理员密码脆弱且易被破解 | CWE-547 / CWE-798 | | Flag 3 | 上传仅校验 MIME 类型;PHP 可在 `/uploads/` 中执行 | CWE-434 | | Flag 3 | `find` 命令的 `sudo` 授权范围过大 | CWE-250 / CWE-269 | ## ⚠️ 安全提示 这是一个刻意设计的漏洞培训镜像。请在隔离环境中运行;切勿将其端口暴露给不受信任的网络。为了实验方便,OVA 的 SSH 允许 root 密码登录(`root`/`vaultbreaker`)—— 在更广泛的使用之前,请先对其进行安全加固。仅供教育用途。
标签:CISA项目, Cutter, Docker, ffuf, HTTP工具, OpenVAS, PHP, VirtualBox, Web报告查看器, 安全, 安全防御评估, 数据展示, 红队, 请求拦截, 超时处理