saqib-butt2/blackbox-pentesting-infsecos
GitHub: saqib-butt2/blackbox-pentesting-infsecos
针对VulnHub SecOS:1靶机的完整黑盒渗透测试报告,涵盖CSRF利用、内核提权及后渗透全流程。
Stars: 0 | Forks: 0
# 黑盒渗透测试 — SecOS:1 (VulnHub)
## 概述
针对 **SecOS:1**(来自 [VulnHub](https://www.vulnhub.com/entry/secos-1,88/) 的一台故意设计的易受攻击 CTF 机器)进行的全面黑盒渗透测试。目标:模拟一个零 prior knowledge(先验知识)的真实攻击者,并实现 root 级别的权限攻陷,以获取 `/root/flag.txt` 作为证据。
所有测试均在受控的虚拟实验室环境 内进行,作为大学课程的一部分。未针对任何真实系统进行测试。
## 实验环境
| 机器 | 角色 | IP |
|----------------------|-------------------|-----------------|
| Kali Linux (saqib85) | 攻击者 | 192.168.122.186 |
| SecOS:1 (InfoSecOS) | 主要目标 | 192.168.122.202 |
| Ubuntu DVWA | 附加目标 | 192.168.122.51 |
| Windows XP | 附加目标 | 192.168.122.6 |
- **网络:** NAT — `192.168.122.0/24`
- **平台:** Apporto Cloud Lab
## 方法论
遵循 **Hacking Exposed** 框架 (McClure, Scambray & Kurtz, 2003):
1. 信息收集 (Footprinting)
2. 扫描与映射
3. 枚举
4. 漏洞评估
5. 获取访问权限
6. 权限提升
7. 后渗透
-> 窃取
-> 清除痕迹
-> 后门创建
## 攻击链
| 步骤 | 行动 | 详情 |
|------|--------|--------|
| 1 | 网络发现 | Nmap · Netdiscover 识别出 192.168.122.202 为目标 |
| 2 | 端口扫描 | 端口 22 (OpenSSH 6.6p1) · 端口 8081 (Node.js/Express) |
| 3 | Web 枚举 | Gobuster · Dirb · Nikto → 发现 /hint, /change-password, /users, /messages |
| 4 | CSRF 利用 | 构造 holidays.html → 发送给管理员 spiderman → 密码被修改为 abc123 |
| 5 | 凭证发现 | Spiderman 收件箱中包含 SSH 密码:CrazyPassword! |
| 6 | SSH 访问 | 在端口 22 上以 spiderman 身份获取 shell |
| 7 | 权限提升 | LinPEAS → 内核 3.13.0-24 → CVE-2015-1328 (OverlayFS) → root shell |
| 8 | 攻陷证明 | 获取 /root/flag.txt |
| 9 | 后渗透 | 导出 /etc/passwd 和 /etc/shadow · 提取 MongoDB 记录 · 破解 SHA-256 哈希 · 清除日志 · 创建后门用户 + 端口 4444 上的 cron 反向 shell |
## 发现的漏洞 — 共 22 个
| 漏洞 | 严重程度 | CVSS | CVE |
|---------------|----------|------|-----|
| Ubuntu 14.04 LTS — 生命周期结束 | 严重 | 10.0 | — |
| OverlayFS 权限提升 | 严重 | — | CVE-2015-1328 |
| OpenSSH 6.6p1 — 过时 / 用户名枚举 | 高 | 7.8 | CVE-2018-15473 |
| Node.js 通过 node-serialize 实现 RCE | 高 | 7.5 | — |
| /change-password endpoint 上的 CSRF | 高 | — | — |
| MongoDB — 无身份验证 | 高 | — | — |
| SHA-256 哈希未加盐 | 高 | — | — |
| Slowloris DoS | 中 | 5.0 | CVE-2007-6750 |
| 缺少 HTTP 安全标头 | 低 | — | — |
| ICMP 时间戳泄露 | 低 | 2.1 | — |
## 使用的工具
| 类别 | 工具 |
|---|---|
| 发现 | Nmap, Netdiscover |
| Web 枚举 | Gobuster, Dirb, Nikto |
| 漏洞评估 | Nessus Essentials, Searchsploit |
| 利用 | Burp Suite, Metasploit |
| 权限提升 | LinPEAS, GCC, Exploit-DB 37292.c |
| 后渗透 | John the Ripper, Netcat, SSH |
| 基础设施 | Apache2 (payload 托管) |
## 仓库文件
| 文件 | 描述 |
|---|---|
| `README.md` | 此文件 |
| `exploit-commands.sh` | 每个阶段的所有命令 |
| `csrf-exploit.html` | 修改 spiderman 密码的 CSRF payload |
| `user-creation.sh` | 在 Kali 上设置攻击者用户 |
## 建议
1. 在所有更改状态的 endpoint 上添加 **CSRF tokens**;更改密码时需要验证当前密码
2. **修补操作系统和服务** — 升级 Ubuntu、OpenSSH 和 Node.js;应用内核补丁
3. **MongoDB 身份验证** — 强制使用凭证;切勿保持未认证状态
4. **密码哈希** — 将 SHA-256 替换为 Argon2 或带加盐的 bcrypt
5. **SSH 加固** — 禁用密码认证;仅使用基于密钥的认证
6. **HTTP 安全标头** — 添加 X-Frame-Options、X-Content-Type-Options、CSP
## 证据
### CSRF — 提示页面源码

### CSRF — 确认 spiderman 访问了该链接的 Apache 日志

### 使用 abc123 登录 spiderman

### 以 spiderman 身份进行 SSH 访问

### 提取的 MongoDB 记录

### 创建的后门用户

### 已配置的 cron job 反向 shell

### 已确认 cron job 连接到 Kali

## 参考文献
- McClure, S., Scambray, J. and Kurtz, G. (2003) *Hacking Exposed*. McGraw-Hill/Osborne.
- VulnHub — https://www.vulnhub.com/entry/secos-1,88/
- Exploit-DB 37292 — https://www.exploit-db.com/exploits/37292
- PEASS-ng LinPEAS — https://github.com/peass-ng/PEASS-ng
标签:AES-256, CISA项目, CSRF利用, CTI, CVE-2015-1328, Dirb, Express, GNU通用公共许可证, LinPEAS, meg, Nikto, Nmap, Node.js, OpenSSH, OverlayFS, SecOS, VulnHub, Web报告查看器, Web渗透, 信息安全, 协议分析, 子域名变形, 密码管理, 插件系统, 攻击链, 本地提权, 权限提升, 渗透测试报告, 漏洞评估, 网络安全, 网络安全审计, 网络枚举, 虚拟驱动器, 跨站请求伪造, 隐私保护, 黑盒渗透测试