makhansingh2026/vulnhub-CTF-pentest
GitHub: makhansingh2026/vulnhub-CTF-pentest
一份针对四个VulnHub CTF靶机的完整黑盒渗透测试报告,记录从侦察到权限提升的全流程,并将所有发现映射到CVE和CWE漏洞分类标准。
Stars: 0 | Forks: 0
# CTF 渗透测试报告
这是一份黑盒渗透测试报告,作为 Seneca Polytechnic **RIS430 — 漏洞与威胁分析** 课程的一部分,在受控实验室环境中对四个目标进行了黑盒渗透测试。本报告记录了针对四台 intentionally vulnerable(故意存在漏洞的)虚拟机的完整攻击生命周期(侦察 → 枚举 → 利用 → 权限提升),并将每个发现映射到相关的 CVE 或 CWE 分类,同时提供了命令行证据和截图支持。

## 概览
| 指标 | 值 |
| --- | --- |
| 已攻陷目标 | 4 / 4 |
| 获取 Root 或管理员权限比例 | 100% |
| 利用的 CVE 数量 | 5 |
| 演示的 CWE 漏洞数 | 11 |
| 方法论 | 侦察 → 枚举 → 漏洞利用 → 权限提升 |
## 目标
| # | 目标 | IP | 初始访问 | 权限提升 |
| --- | --- | --- | --- | --- |
| 1 | [NOOB: 1](writeups/01-noob.md) | 10.0.0.176/24 | 匿名 FTP → Base64 凭据 → Web 登录 → 隐写术 → ROT13 → SSH | 无限制 sudo |
| 2 | [Empire: Breakout](writeups/02-empire-breakout.md) | 10.0.0.38/24 | HTML 中的 Brainfuck 编码密码 + SMB 用户枚举 → Usermin | tar `cap_dac_read_search` → root 密码泄露 |
| 3 | [Hack Me Please: 1](writeups/03-hack-me-please.md) | 10.0.0.97/24 | 隐藏的 SeedDMS 路径 → 暴露的 `settings.xml` → MySQL → SQL 管理员密码重置 | CVE-2019-12744 SeedDMS 认证后 RCE |
| 4 | [Empire: LupinOne](writeups/04-lupinone.md) | 10.0.0.154/24 | robots.txt → ffuf → Base58 编码的 SSH 密钥 → John (fasttrack) | Sudo Python 模块劫持 → arsene; sudo pip → root |
## 发现的 CVE 和漏洞
**利用的 CVE**
- CVE-1999-0497 — 启用了匿名 FTP 访问
- CVE-2022-22719 → CVE-2022-23943 — Apache 2.4.x < 2.4.53 多个漏洞
- CVE-2020-11022 / CVE-2020-11023 — 过期 jQuery 中的 XSS 漏洞
- CVE-2019-12744 — SeedDMS ≤ 5.1.10 认证后 RCE(CWE-434 无限制文件上传)
**发现的 CWE 漏洞**
- CWE-200 — 敏感信息暴露
- CWE-266 — 权限分配不当
- CWE-312 — 敏感信息明文存储
- CWE-319 — 敏感信息明文传输
- CWE-434 — 危险类型文件无限制上传
- CWE-521 — 弱密码要求
- CWE-538 — 将敏感信息插入外部可访问的文件或目录
- CWE-540 — 源代码中包含敏感信息
- CWE-615 — 源代码注释中包含敏感信息
- CWE-732 — 关键资源权限分配不当
- CWE-798 — 使用硬编码凭据
## 仓库结构
```
CTF-Penetration-Test-Report/
├── README.md <- this file
├── full-report.md <- single-document version of the entire report
├── writeups/ <- per-target writeups
│ ├── 00-introduction.md
│ ├── 01-noob.md
│ ├── 02-empire-breakout.md
│ ├── 03-hack-me-please.md
│ ├── 04-lupinone.md
│ ├── 05-conclusions.md
│ ├── 06-references.md
│ └── 07-appendices.md
├── images/
│ ├── cover.png
│ ├── network-diagram.png
│ ├── noob/
│ ├── empire-breakout/
│ ├── hack-me-please/
│ ├── lupinone/
│ └── appendices/
├── LICENSE <- MIT
└── .gitignore
```
## 方法论
每次测试均遵循相同的严格四阶段方法论:
1. **侦察** — 主机发现(`netdiscover`、ARP 扫描)、Nmap 版本与脚本扫描、识别暴露的服务。
2. **枚举** — 针对特定协议的探测(FTP 列表、SMB 用户枚举、通过 Gobuster/ffuf 进行 Web 内容发现、源代码审查、robots.txt 分析)。
3. **漏洞利用** — 凭据恢复(Base64/Base58 解码、ROT13、John the Ripper)、认证后 RCE(通过 Metasploit php/meterpreter/reverse_tcp 利用 CVE-2019-12744)、凭据复用。
4. **权限提升** — sudoers 审查(`sudo -l`)、Linux capabilities 滥用(tar 上的 `cap_dac_read_search`)、Python 模块劫持(将 `os.system("/bin/bash")` 写入系统级的 `webbrowser.py`)、通过 `setup.py` 以 root 身份调用 `pip install`。
## 工具
Nmap, netdiscover, FTP, SMB (smbclient, enum4linux), Gobuster, ffuf, steghide, John the Ripper (`ssh2john`), Metasploit (msfconsole, multi/handler, php/meterpreter/reverse_tcp), SearchSploit, MySQL CLI, LinPEAS, wget, Python (`http.server`, `pty.spawn`), pip, base58/base64 工具。
## 阅读顺序
若要快速阅读单个目标的渗透过程,可以直接跳转到上方表格中链接的 writeup。若要按连贯的顺序阅读,请从 [`writeups/00-introduction.md`](writeups/00-introduction.md) 开始,依次阅读 `01-noob.md` → `02-empire-breakout.md` → `03-hack-me-please.md` → `04-lupinone.md` → `05-conclusions.md`。完整报告也可在单文件 [`full-report.md`](full-report.md) 中查看。
## 作者
**Makhan Singh** — 网络安全技术学士(多伦多 Seneca Polytechnic)
RIS430 — 漏洞与威胁分析,Hamed Haddadpajouh 教授
学号 129224234 · `msingh827@myseneca.ca`
## 免责声明
所有测试均针对发布在 [VulnHub](https://www.vulnhub.com/) 上的故意设置漏洞的虚拟机进行,并在隔离的实验室网络中运行。在此次测试中,未针对任何生产系统进行攻击,也未访问任何生产数据。本材料仅出于教育目的发布。
## 许可证
本仓库基于 [MIT License](LICENSE) 发布。
标签:CTI, CVE, VulnHub, Web安全, Web报告查看器, 信息安全管理, 协议分析, 反取证, 安全报告, 安全评估, 安全课程设计, 插件系统, 攻击模拟, 数字签名, 数据展示, 权限提升, 漏洞分析, 红队, 网络安全, 网络安全审计, 网络安全教学, 蓝队分析, 路径探测, 逆向工具, 隐私保护, 驱动签名利用, 黑盒测试